Redesign /about when already logged in (#17348)
* Redesign /about when already logged in * Fix sign up form still showing when OMNIAUTH_ONLY is set * Fix tests * Change wording based on suggestions Co-authored-by: Eugen Rochko <eugen@zeonfederated.com> Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
This commit is contained in:
parent
ff43e54a49
commit
6d3fa7828e
|
@ -0,0 +1,10 @@
|
|||
.simple_form
|
||||
%p.lead= t('about.logged_in_as_html', username: content_tag(:strong, current_account.username))
|
||||
|
||||
.actions
|
||||
= link_to t('about.continue_to_web'), root_url, class: 'button button-primary'
|
||||
|
||||
.form-footer
|
||||
%ul.no-list
|
||||
%li= link_to t('about.get_apps'), 'https://joinmastodon.org/apps', target: '_blank', rel: 'noopener noreferrer'
|
||||
%li= link_to t('auth.logout'), destroy_user_session_path, data: { method: :delete }
|
|
@ -1,17 +1,20 @@
|
|||
.simple_form__overlay-area{ class: (closed_registrations? && @instance_presenter.closed_registrations_message.present?) ? 'simple_form__overlay-area__blurred' : '' }
|
||||
- disabled = closed_registrations? || omniauth_only? || current_account.present?
|
||||
- show_message = disabled && (current_user.present? || @instance_presenter.closed_registrations_message.present?)
|
||||
|
||||
.simple_form__overlay-area{ class: show_message ? 'simple_form__overlay-area__blurred' : '' }
|
||||
= simple_form_for(new_user, url: user_registration_path, namespace: 'registration', html: { novalidate: false }) do |f|
|
||||
%p.lead= t('about.federation_hint_html', instance: content_tag(:strong, site_hostname))
|
||||
|
||||
.fields-group
|
||||
= f.simple_fields_for :account do |account_fields|
|
||||
= account_fields.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, disabled: closed_registrations?
|
||||
= account_fields.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, disabled: disabled
|
||||
|
||||
= f.input :email, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email'), :autocomplete => 'off' }, hint: false, disabled: closed_registrations?
|
||||
= f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off', :minlength => User.password_length.first, :maxlength => User.password_length.last }, hint: false, disabled: closed_registrations?
|
||||
= 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 => 'off' }, hint: false, disabled: closed_registrations?
|
||||
= f.input :email, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email'), :autocomplete => 'off' }, hint: false, disabled: disabled
|
||||
= f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off', :minlength => User.password_length.first, :maxlength => User.password_length.last }, hint: false, disabled: disabled
|
||||
= 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 => 'off' }, hint: false, disabled: disabled
|
||||
|
||||
= 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, disabled: closed_registrations?
|
||||
= f.input :website, as: :url, placeholder: t('simple_form.labels.defaults.honeypot', label: 'Website'), required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.honeypot', label: 'Website'), :autocomplete => 'off' }, hint: false, disabled: closed_registrations?
|
||||
= 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, disabled: disabled
|
||||
= f.input :website, as: :url, placeholder: t('simple_form.labels.defaults.honeypot', label: 'Website'), required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.honeypot', label: 'Website'), :autocomplete => 'off' }, hint: false, disabled: disabled
|
||||
|
||||
- if approved_registrations?
|
||||
.fields-group
|
||||
|
@ -19,13 +22,16 @@
|
|||
= invite_request_fields.input :text, as: :text, wrapper: :with_block_label, required: Setting.require_invite_text
|
||||
|
||||
.fields-group
|
||||
= f.input :agreement, as: :boolean, wrapper: :with_label, label: t('auth.checkbox_agreement_html', rules_path: about_more_path, terms_path: terms_path), required: true, disabled: closed_registrations?
|
||||
= f.input :agreement, as: :boolean, wrapper: :with_label, label: t('auth.checkbox_agreement_html', rules_path: about_more_path, terms_path: terms_path), required: true, disabled: disabled
|
||||
|
||||
.actions
|
||||
= f.button :button, sign_up_message, type: :submit, class: 'button button-primary', disabled: closed_registrations?
|
||||
= f.button :button, sign_up_message, type: :submit, class: 'button button-primary', disabled: disabled
|
||||
|
||||
- if closed_registrations? && @instance_presenter.closed_registrations_message.present?
|
||||
- if show_message
|
||||
.simple_form__overlay-area__overlay
|
||||
.simple_form__overlay-area__overlay__content.rich-formatting
|
||||
.block-icon= fa_icon 'warning'
|
||||
- if current_account.present?
|
||||
= t('about.logout_before_registering')
|
||||
- else
|
||||
= @instance_presenter.closed_registrations_message.html_safe
|
||||
|
|
|
@ -46,6 +46,9 @@
|
|||
|
||||
.landing__grid__column.landing__grid__column-login
|
||||
.box-widget
|
||||
- if current_user.present?
|
||||
= render 'logged_in'
|
||||
- else
|
||||
= render 'login'
|
||||
|
||||
.hero-widget
|
||||
|
|
|
@ -16,6 +16,7 @@ en:
|
|||
contact: Contact
|
||||
contact_missing: Not set
|
||||
contact_unavailable: N/A
|
||||
continue_to_web: Continue to web app
|
||||
discover_users: Discover users
|
||||
documentation: Documentation
|
||||
federation_hint_html: With an account on %{instance} you'll be able to follow people on any Mastodon server and beyond.
|
||||
|
@ -25,6 +26,8 @@ en:
|
|||
This account is a virtual actor used to represent the server itself and not any individual user.
|
||||
It is used for federation purposes and should not be blocked unless you want to block the whole instance, in which case you should use a domain block.
|
||||
learn_more: Learn more
|
||||
logged_in_as_html: You are currently logged in as %{username}.
|
||||
logout_before_registering: You are already logged in.
|
||||
privacy_policy: Privacy policy
|
||||
rules: Server rules
|
||||
rules_html: 'Below is a summary of rules you need to follow if you want to have an account on this server of Mastodon:'
|
||||
|
|
|
@ -8,6 +8,7 @@ describe 'about/show.html.haml', without_verify_partial_doubles: true do
|
|||
allow(view).to receive(:site_title).and_return('example site')
|
||||
allow(view).to receive(:new_user).and_return(User.new)
|
||||
allow(view).to receive(:use_seamless_external_login?).and_return(false)
|
||||
allow(view).to receive(:current_account).and_return(nil)
|
||||
end
|
||||
|
||||
it 'has valid open graph tags' do
|
||||
|
|
Loading…
Reference in New Issue