form.hbs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <form id="login-signup" hx-post="/api/auth/login" hx-swap="outerHTML">
  2. <label class="{{#if errors.email}}error{{/if}}">
  3. Email address:
  4. <input
  5. name="email"
  6. id="email"
  7. type="email"
  8. autofocus="true"
  9. placeholder="Email address..."
  10. hx-preserve="true"
  11. />
  12. {{#if errors.email}}<p class="error">{{errors.email}}</p>{{/if}}
  13. </label>
  14. <label class="{{#if errors.password}}error{{/if}}">
  15. Password:
  16. <input
  17. name="password"
  18. id="password"
  19. type="password"
  20. placeholder="Password..."
  21. hx-preserve="true"
  22. />
  23. {{#if errors.password}}<p class="error">{{errors.password}}</p>{{/if}}
  24. </label>
  25. <div class="buttons-wrapper">
  26. <button
  27. type="submit"
  28. class="primary login {{#if disallow_registration}}full{{else}}{{#unless mail_enabled}}full{{/unless}}{{/if}}"
  29. >
  30. <span>{{> icons/login}}</span>
  31. <span>{{> icons/spinner}}</span>
  32. Log in
  33. </button>
  34. {{#unless disallow_registration}}
  35. {{#if mail_enabled}}
  36. <button
  37. type="button"
  38. class="secondary signup"
  39. hx-post="/api/auth/signup"
  40. hx-target="#login-signup"
  41. hx-trigger="click"
  42. hx-indicator="#login-signup"
  43. hx-swap="outerHTML"
  44. hx-sync="closest form"
  45. hx-on:htmx:before-request="htmx.addClass('#login-signup', 'signup')"
  46. hx-on:htmx:after-request="htmx.removeClass('#login-signup', 'signup')"
  47. >
  48. <span>{{> icons/new_user}}</span>
  49. <span>{{> icons/spinner}}</span>
  50. Sign up
  51. </button>
  52. {{/if}}
  53. {{/unless}}
  54. </div>
  55. {{#if mail_enabled}}
  56. <a class="forgot-password" href="/reset-password" title="Reset password">Forgot your password?</a>
  57. {{/if}}
  58. {{#unless errors}}
  59. {{#if error}}
  60. <p class="error">{{error}}</p>
  61. {{/if}}
  62. {{/unless}}
  63. </form>