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
					
				
							
								
								
									
										10
									
								
								app/views/about/_logged_in.html.haml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								app/views/about/_logged_in.html.haml
									
									
									
									
									
										Normal file
									
								
							| @ -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' | ||||
|         = @instance_presenter.closed_registrations_message.html_safe | ||||
|         - if current_account.present? | ||||
|           = t('about.logout_before_registering') | ||||
|         - else | ||||
|           = @instance_presenter.closed_registrations_message.html_safe | ||||
|  | ||||
| @ -46,7 +46,10 @@ | ||||
| 
 | ||||
|     .landing__grid__column.landing__grid__column-login | ||||
|       .box-widget | ||||
|         = render 'login' | ||||
|         - if current_user.present? | ||||
|           = render 'logged_in' | ||||
|         - else | ||||
|           = render 'login' | ||||
| 
 | ||||
|       .hero-widget | ||||
|         .hero-widget__img | ||||
|  | ||||
| @ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user