new.html.haml 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. - content_for :page_title do
  2. = t('auth.register')
  3. - content_for :header_tags do
  4. = render partial: 'shared/og', locals: { description: description_for_sign_up }
  5. = simple_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { novalidate: false }) do |f|
  6. %h1.title= t('auth.sign_up.title', domain: site_hostname)
  7. %p.lead= t('auth.sign_up.preamble')
  8. = render 'shared/error_messages', object: resource
  9. - if @invite.present? && @invite.autofollow?
  10. .fields-group.invited-by
  11. %p.hint= t('invites.invited_by')
  12. = render 'application/card', account: @invite.user.account
  13. .fields-group
  14. = f.simple_fields_for :account do |ff|
  15. = ff.input :display_name, wrapper: :with_label, label: false, required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.display_name'), :autocomplete => 'off', placeholder: t('simple_form.labels.defaults.display_name') }
  16. = ff.input :username, wrapper: :with_label, label: false, required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.username'), :autocomplete => 'off', placeholder: t('simple_form.labels.defaults.username'), pattern: '[a-zA-Z0-9_]+', maxlength: 30 }, append: "@#{site_hostname}", hint: false
  17. = f.input :email, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email'), :autocomplete => 'username' }, hint: false
  18. = f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'new-password', :minlength => User.password_length.first, :maxlength => User.password_length.last }, hint: false
  19. = f.input :password_confirmation, placeholder: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'new-password' }, hint: false
  20. = f.input :confirm_password, as: :string, placeholder: t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), :autocomplete => 'off' }, hint: false
  21. = f.input :website, as: :url, wrapper: :with_label, label: t('simple_form.labels.defaults.honeypot', label: 'Website'), required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.honeypot', label: 'Website'), :autocomplete => 'off' }
  22. - if approved_registrations? && !@invite.present?
  23. .fields-group
  24. = f.simple_fields_for :invite_request, resource.invite_request || resource.build_invite_request do |invite_request_fields|
  25. = invite_request_fields.input :text, as: :text, wrapper: :with_block_label, required: Setting.require_invite_text
  26. = hidden_field_tag :accept, params[:accept]
  27. = f.input :invite_code, as: :hidden
  28. .fields-group
  29. = f.input :agreement, as: :boolean, wrapper: :with_label, label: t('auth.privacy_policy_agreement_html', rules_path: about_more_path, privacy_policy_path: privacy_policy_path), required: true
  30. .actions
  31. = f.button :button, @invite.present? ? t('auth.register') : sign_up_message, type: :submit
  32. .form-footer= render 'auth/shared/links'