login.tx 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <div id="login">
  2. : include "jsalert.tx";
  3. <div>
  4. <img id="logo" src="/img/icon/favicon.svg" style="float:left" /><span style="font-family:courier;font-size:2rem;">CMS Login</span>
  5. </div>
  6. <div id="spacer" style="clear: both;"><br /></div>
  7. <form id="loginForm" method="POST" action="/auth">
  8. <input type="hidden" name="app" value="login" />
  9. <input type="hidden" name="to" value="<: $to :>" />
  10. Username<br />
  11. <div class="input-group">
  12. <label for="username">😎</span></label>
  13. <input required name="username" id="username" placeholder="AzureDiamond" value="" type="text" autofocus></input>
  14. </div>
  15. <br />
  16. Password<br />
  17. <div class="input-group">
  18. <label for="password">🔑</label>
  19. <input required name="password" id="password" placeholder="hunter2" value="" type="password"></input>
  20. </div>
  21. <br />
  22. <input type="submit" id="maximumGo" value="<: $btnmsg :>"></input>
  23. <!--
  24. External authentication provider data.
  25. Provider = Driver to use
  26. Data = JSON encoded blob of data gotten back from auth source
  27. -->
  28. <input type="hidden" id="extAuthProvider" value=""></input>
  29. <input type="hidden" id="extAuthData" value=""></input>
  30. </form>
  31. <br><br>
  32. <div id="matrixLogin" style="display:none;">
  33. <script defer src="/scripts/matrix-login.js"></script>
  34. <matrix-signin id="signin"></matrix-signin>
  35. <script>
  36. var hasusers = <: $hasusers :>;
  37. console.log("Has Users? " + hasusers);
  38. var loginBits = document.getElementById("matrixLogin");
  39. if(hasusers) {
  40. loginBits.style = "display:block";
  41. const signIn = document.querySelector('matrix-signin')
  42. signIn.addEventListener('success', ({ detail }) => {
  43. let form = document.getElementById("loginForm");
  44. form.querySelector("#extAuthProvider").value = "matrix";
  45. form.querySelector("#extAuthData").value = JSON.stringify(detail.user);
  46. form.submit();
  47. })
  48. } else {
  49. loginBits.remove();
  50. }
  51. </script>
  52. <matrix-signin-button target="signin">
  53. <span style="line-height: 2rem;">
  54. <img style="width: 24px; vertical-align: middle;" src="img/icon/matrix-element.svg"></img>
  55. Sign in with Matrix
  56. </span>
  57. </matrix-signin-button>
  58. </div>
  59. </div>