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. <!--
  23. External authentication provider data.
  24. Provider = Driver to use
  25. Data = JSON encoded blob of data gotten back from auth source
  26. -->
  27. <input type="hidden" id="extAuthProvider" name="extAuthProvider" value=""></input>
  28. <input type="hidden" id="extAuthData" name="extAuthData" value=""></input>
  29. <input type="submit" id="maximumGo" value="<: $btnmsg :>"></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. var loginBits = document.getElementById("matrixLogin");
  38. if(hasusers) {
  39. loginBits.style = "display:block";
  40. const signIn = document.querySelector('matrix-signin')
  41. signIn.addEventListener('success', ({ detail }) => {
  42. let form = document.getElementById("loginForm");
  43. form.querySelector("#extAuthProvider").value = "matrix";
  44. form.querySelector("#extAuthData").value = JSON.stringify(detail.user);
  45. form.submit();
  46. })
  47. } else {
  48. loginBits.remove();
  49. }
  50. </script>
  51. <matrix-signin-button target="signin">
  52. <span style="line-height: 2rem;">
  53. <img style="width: 24px; vertical-align: middle;" src="img/icon/matrix-element.svg"></img>
  54. Sign in with Matrix
  55. </span>
  56. </matrix-signin-button>
  57. </div>
  58. </div>