passwordReset.pug 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. extends ../layout-marketing
  2. include ../_mixins/recaptcha
  3. include ../_mixins/material_symbol
  4. block vars
  5. - bootstrap5PageStatus = 'disabled'
  6. block content
  7. - var showCaptcha = settings.recaptcha && settings.recaptcha.siteKey && !(settings.recaptcha.disabled && settings.recaptcha.disabled.passwordReset)
  8. if showCaptcha
  9. script(
  10. type='text/javascript'
  11. nonce=scriptNonce
  12. src='https://www.recaptcha.net/recaptcha/api.js?render=explicit'
  13. )
  14. div(
  15. id='recaptcha'
  16. class='g-recaptcha'
  17. data-sitekey=settings.recaptcha.siteKey
  18. data-size='invisible'
  19. data-badge='inline'
  20. )
  21. main#main-content.content.content-alt(data-ol-captcha-retry-trigger-area='')
  22. .container-custom-sm.mx-auto
  23. .card
  24. form(
  25. name='passwordResetForm'
  26. captcha-action-name=showCaptcha ? 'passwordReset' : false
  27. data-ol-async-form
  28. action='/user/password/reset'
  29. method='POST'
  30. captcha=showCaptcha ? '' : false
  31. )
  32. if error === 'password_reset_token_expired'
  33. h3.mt-0.mb-2 #{translate("sorry_your_token_expired")}
  34. p #{translate('please_request_a_new_password_reset_email_and_follow_the_link')}.
  35. else
  36. h3.mt-0.mb-2(data-ol-not-sent) #{translate("password_reset")}
  37. h3.mt-0.mb-2(hidden data-ol-sent) #{translate("check_your_email")}
  38. p(data-ol-not-sent) #{translate("enter_your_email_address_below_and_we_will_send_you_a_link_to_reset_your_password")}.
  39. div(data-ol-not-sent)
  40. +formMessages
  41. if error && error !== 'password_reset_token_expired'
  42. .alert.alert-danger.mb-2(role='alert' aria-live='assertive')
  43. | #{translate(error)}
  44. div(data-ol-custom-form-message='no-password-allowed-due-to-sso' hidden)
  45. .notification.notification-type-error(
  46. aria-live='polite'
  47. style='margin-bottom: 10px'
  48. )
  49. .notification-icon
  50. +material-symbol-rounded('error')
  51. .notification-content-and-cta
  52. .notification-content
  53. p
  54. | !{translate("you_cant_reset_password_due_to_sso", {}, [{name: 'a', attrs: {href: '/sso-login'}}])}
  55. input(name='_csrf' type='hidden' value=csrfToken)
  56. .form-group.mb-3
  57. label(for='email') #{translate("email")}
  58. input#email.form-control(
  59. name='email'
  60. aria-label='email'
  61. type='email'
  62. placeholder=translate('enter_your_email_address')
  63. required
  64. autocomplete='username'
  65. autofocus
  66. )
  67. .actions
  68. button.btn.btn-primary.w-100(
  69. type='submit'
  70. data-ol-disabled-inflight
  71. aria-label=translate('request_password_reset_to_reconfirm')
  72. )
  73. span(data-ol-inflight='idle')
  74. | #{translate("request_password_reset")}
  75. span(hidden data-ol-inflight='pending')
  76. | #{translate("requesting_password_reset")}…
  77. div(hidden data-ol-sent)
  78. p.mb-4 #{translate('password_reset_email_sent')}
  79. a(href='/login') #{translate('back_to_log_in')}
  80. if showCaptcha
  81. +recaptchaConditions