passwordResetCiam.pug 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. extends ../layout-website-redesign
  2. include ../_mixins/recaptcha
  3. include ../_mixins/notification
  4. include ../_mixins/ciam_mixins
  5. block vars
  6. - var suppressNavbar = true
  7. - var suppressFooter = true
  8. - var suppressSkipToContent = true
  9. - isWebsiteRedesign = true
  10. block content
  11. - var showCaptcha = settings.recaptcha && settings.recaptcha.siteKey && !(settings.recaptcha.disabled && settings.recaptcha.disabled.passwordReset)
  12. if showCaptcha
  13. script(
  14. type='text/javascript'
  15. nonce=scriptNonce
  16. src='https://www.recaptcha.net/recaptcha/api.js?render=explicit'
  17. )
  18. div(
  19. id='recaptcha'
  20. class='g-recaptcha'
  21. data-sitekey=settings.recaptcha.siteKey
  22. data-size='invisible'
  23. data-badge='inline'
  24. )
  25. .ciam-enabled.ciam-layout.ciam-password-reset(
  26. data-ol-captcha-retry-trigger-area=''
  27. )
  28. +ciamLogo
  29. .ciam-container
  30. main#main-content.ciam-card
  31. form(
  32. name='passwordResetForm'
  33. captcha-action-name=showCaptcha ? 'passwordReset' : false
  34. data-ciam-form
  35. data-ol-async-form
  36. action='/user/password/reset'
  37. method='POST'
  38. captcha=showCaptcha ? '' : false
  39. )
  40. if error === 'password_reset_token_expired'
  41. h1 #{translate("sorry_your_token_expired")}
  42. else
  43. h1(data-ol-not-sent) #{translate("reset_your_password")}
  44. h1(hidden data-ol-sent) #{translate("check_your_inbox")}
  45. div(data-ol-not-sent)
  46. +formMessagesNewStyle
  47. if error && error !== 'password_reset_token_expired'
  48. +ciamErrorNotification
  49. p #{translate(error)}
  50. div(data-ol-custom-form-message='no-password-allowed-due-to-sso' hidden)
  51. +ciamErrorNotification
  52. p !{translate('you_cant_reset_password_due_to_sso', {}, [{ name: 'a', attrs: { href: '/sso-login' } }])}
  53. if error === 'password_reset_token_expired'
  54. p.intro-p(data-ol-not-sent) #{translate('please_request_a_new_password_reset_email_and_follow_the_link')}.
  55. else
  56. p.intro-p(data-ol-not-sent) #{translate("enter_your_email_and_we_will_send_reset_instructions")}
  57. div(data-ol-not-sent)
  58. input(name='_csrf' type='hidden' value=csrfToken)
  59. .form-group.form-group-ds
  60. label.form-label(for='email') #{translate("email")}
  61. input#email.form-control.form-control-ds.form-control-lg(
  62. name='email'
  63. type='email'
  64. required
  65. autocomplete='username'
  66. autofocus
  67. )
  68. .actions
  69. button.btn.btn-ds.btn-lg.btn-primary.w-100(
  70. type='submit'
  71. data-ol-disabled-inflight
  72. data-ol-spinner-inflight
  73. aria-label=translate('send_reset_link')
  74. )
  75. +ciamButtonContentLoading(`${translate('requesting_password_reset')}…`)= translate('send_reset_link')
  76. p.ciam-login-text
  77. a(href='/login') #{translate("back_to_log_in")}
  78. div(hidden data-ol-sent)
  79. p.intro-p !{translate('if_theres_an_account_youll_get_reset_email', {email: '<strong id="sent-email-display">your email</strong>'})}
  80. p.ciam-login-text.text-start
  81. a(href='/login') #{translate('back_to_log_in')}
  82. if showCaptcha
  83. .ciam-disclaimers
  84. +ciamRecaptchaConditions
  85. +ciamCardFooter(true)
  86. // retrieve and display the email used for password reset after form is sent
  87. script(nonce=scriptNonce).
  88. document.querySelector('form[name="passwordResetForm"]').addEventListener('sent', function () {
  89. const email = this.querySelector('input[name="email"]').value
  90. const display = document.getElementById('sent-email-display')
  91. if (display) display.textContent = email
  92. })