Reorganize preferences page (#5161)
This commit is contained in:
		
							parent
							
								
									b110cc542f
								
							
						
					
					
						commit
						0b3f1ec62a
					
				| @ -22,6 +22,16 @@ code { | |||||||
|     margin-top: 4px; |     margin-top: 4px; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |   h4 { | ||||||
|  |     text-transform: uppercase; | ||||||
|  |     font-size: 13px; | ||||||
|  |     font-weight: 500; | ||||||
|  |     color: $ui-primary-color; | ||||||
|  |     padding-bottom: 8px; | ||||||
|  |     margin-bottom: 8px; | ||||||
|  |     border-bottom: 1px solid lighten($ui-base-color, 8%); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   p.hint { |   p.hint { | ||||||
|     margin-bottom: 15px; |     margin-bottom: 15px; | ||||||
|     color: $ui-primary-color; |     color: $ui-primary-color; | ||||||
| @ -316,6 +326,7 @@ code { | |||||||
| 
 | 
 | ||||||
|   select { |   select { | ||||||
|     font-size: 16px; |     font-size: 16px; | ||||||
|  |     max-height: 29px; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   .input-with-append { |   .input-with-append { | ||||||
|  | |||||||
| @ -4,30 +4,22 @@ | |||||||
| = simple_form_for current_user, url: settings_preferences_path, html: { method: :put } do |f| | = simple_form_for current_user, url: settings_preferences_path, html: { method: :put } do |f| | ||||||
|   = render 'shared/error_messages', object: current_user |   = render 'shared/error_messages', object: current_user | ||||||
| 
 | 
 | ||||||
|  |   %h4= t 'preferences.languages' | ||||||
|  | 
 | ||||||
|   .fields-group |   .fields-group | ||||||
|     = f.input :setting_theme, collection: Themes.instance.names, label_method: lambda { |theme| safe_join([I18n.t("themes.#{theme}", default: theme)])}, wrapper: :with_label, include_blank: false |     = f.input :locale, collection: I18n.available_locales, wrapper: :with_label, include_blank: false, label_method: lambda { |locale| human_locale(locale) }, selected: I18n.locale | ||||||
| 
 | 
 | ||||||
|     = f.input :locale, |     = f.input :filtered_languages, collection: filterable_languages, wrapper: :with_block_label, include_blank: false, label_method: lambda { |locale| human_locale(locale) }, required: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li' | ||||||
|       collection: I18n.available_locales, |  | ||||||
|       wrapper: :with_label, |  | ||||||
|       include_blank: false, |  | ||||||
|       label_method: lambda { |locale| human_locale(locale) }, |  | ||||||
|       selected: I18n.locale |  | ||||||
| 
 | 
 | ||||||
|     = f.input :filtered_languages, |   %h4= t 'preferences.publishing' | ||||||
|       collection: filterable_languages, |  | ||||||
|       wrapper: :with_block_label, |  | ||||||
|       include_blank: false, |  | ||||||
|       label_method: lambda { |locale| human_locale(locale) }, |  | ||||||
|       required: false, |  | ||||||
|       as: :check_boxes, |  | ||||||
|       collection_wrapper_tag: 'ul', |  | ||||||
|       item_wrapper_tag: 'li' |  | ||||||
| 
 | 
 | ||||||
|  |   .fields-group | ||||||
|     = f.input :setting_default_privacy, collection: Status.visibilities.keys - ['direct'], wrapper: :with_label, include_blank: false, label_method: lambda { |visibility| safe_join([I18n.t("statuses.visibilities.#{visibility}"), content_tag(:span, I18n.t("statuses.visibilities.#{visibility}_long"), class: 'hint')]) }, required: false, as: :radio_buttons, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li' |     = f.input :setting_default_privacy, collection: Status.visibilities.keys - ['direct'], wrapper: :with_label, include_blank: false, label_method: lambda { |visibility| safe_join([I18n.t("statuses.visibilities.#{visibility}"), content_tag(:span, I18n.t("statuses.visibilities.#{visibility}_long"), class: 'hint')]) }, required: false, as: :radio_buttons, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li' | ||||||
| 
 | 
 | ||||||
|     = f.input :setting_default_sensitive, as: :boolean, wrapper: :with_label |     = f.input :setting_default_sensitive, as: :boolean, wrapper: :with_label | ||||||
| 
 | 
 | ||||||
|  |   %h4= t 'preferences.notifications' | ||||||
|  | 
 | ||||||
|   .fields-group |   .fields-group | ||||||
|     = f.simple_fields_for :notification_emails, hash_to_object(current_user.settings.notification_emails) do |ff| |     = f.simple_fields_for :notification_emails, hash_to_object(current_user.settings.notification_emails) do |ff| | ||||||
|       = ff.input :follow, as: :boolean, wrapper: :with_label |       = ff.input :follow, as: :boolean, wrapper: :with_label | ||||||
| @ -35,6 +27,9 @@ | |||||||
|       = ff.input :reblog, as: :boolean, wrapper: :with_label |       = ff.input :reblog, as: :boolean, wrapper: :with_label | ||||||
|       = ff.input :favourite, as: :boolean, wrapper: :with_label |       = ff.input :favourite, as: :boolean, wrapper: :with_label | ||||||
|       = ff.input :mention, as: :boolean, wrapper: :with_label |       = ff.input :mention, as: :boolean, wrapper: :with_label | ||||||
|  | 
 | ||||||
|  |   .fields-group | ||||||
|  |     = f.simple_fields_for :notification_emails, hash_to_object(current_user.settings.notification_emails) do |ff| | ||||||
|       = ff.input :digest, as: :boolean, wrapper: :with_label |       = ff.input :digest, as: :boolean, wrapper: :with_label | ||||||
| 
 | 
 | ||||||
|   .fields-group |   .fields-group | ||||||
| @ -42,10 +37,17 @@ | |||||||
|       = ff.input :must_be_follower, as: :boolean, wrapper: :with_label |       = ff.input :must_be_follower, as: :boolean, wrapper: :with_label | ||||||
|       = ff.input :must_be_following, as: :boolean, wrapper: :with_label |       = ff.input :must_be_following, as: :boolean, wrapper: :with_label | ||||||
| 
 | 
 | ||||||
|  |   %h4= t 'preferences.other' | ||||||
|  | 
 | ||||||
|   .fields-group |   .fields-group | ||||||
|     = f.input :setting_noindex, as: :boolean, wrapper: :with_label |     = f.input :setting_noindex, as: :boolean, wrapper: :with_label | ||||||
| 
 | 
 | ||||||
|  |   %h4= t 'preferences.web' | ||||||
|  | 
 | ||||||
|   .fields-group |   .fields-group | ||||||
|  |     - if Themes.instance.names.size > 1 | ||||||
|  |       = f.input :setting_theme, collection: Themes.instance.names, label_method: lambda { |theme| I18n.t("themes.#{theme}", default: theme) }, wrapper: :with_label, include_blank: false | ||||||
|  | 
 | ||||||
|     = f.input :setting_unfollow_modal, as: :boolean, wrapper: :with_label |     = f.input :setting_unfollow_modal, as: :boolean, wrapper: :with_label | ||||||
|     = f.input :setting_boost_modal, as: :boolean, wrapper: :with_label |     = f.input :setting_boost_modal, as: :boolean, wrapper: :with_label | ||||||
|     = f.input :setting_delete_modal, as: :boolean, wrapper: :with_label |     = f.input :setting_delete_modal, as: :boolean, wrapper: :with_label | ||||||
|  | |||||||
| @ -388,7 +388,6 @@ de: | |||||||
|       private_long: Nur für Folgende sichtbar |       private_long: Nur für Folgende sichtbar | ||||||
|       public: Öffentlich |       public: Öffentlich | ||||||
|       public_long: Für alle sichtbar |       public_long: Für alle sichtbar | ||||||
|       unlisted: Nicht gelistet |  | ||||||
|       unlisted: Für alle sichtbar, aber nicht in öffentlichen Zeitleisten aufgelistet |       unlisted: Für alle sichtbar, aber nicht in öffentlichen Zeitleisten aufgelistet | ||||||
|   stream_entries: |   stream_entries: | ||||||
|     click_to_show: Klicken, um zu zeigen |     click_to_show: Klicken, um zu zeigen | ||||||
|  | |||||||
| @ -8,10 +8,10 @@ de: | |||||||
|     failure: |     failure: | ||||||
|       already_authenticated: Du bist bereits angemeldet. |       already_authenticated: Du bist bereits angemeldet. | ||||||
|       inactive: Dein Konto wurde noch nicht aktiviert. |       inactive: Dein Konto wurde noch nicht aktiviert. | ||||||
|       invalid: '%{authentication_keys} oder Passwort ungültig.' |       invalid: "%{authentication_keys} oder Passwort ungültig." | ||||||
|       last_attempt: Du hast noch einen Versuch, bevor dein Konto gesperrt wird. |       last_attempt: Du hast noch einen Versuch, bevor dein Konto gesperrt wird. | ||||||
|       locked: Dein Konto ist gesperrt. |       locked: Dein Konto ist gesperrt. | ||||||
|       not_found_in_database: '%{authentication_keys} oder Passwort ungültig.' |       not_found_in_database: "%{authentication_keys} oder Passwort ungültig." | ||||||
|       timeout: Deine Sitzung ist abgelaufen. Bitte melde dich erneut an. |       timeout: Deine Sitzung ist abgelaufen. Bitte melde dich erneut an. | ||||||
|       unauthenticated: Du musst dich anmelden oder registrieren, bevor du fortfahren kannst. |       unauthenticated: Du musst dich anmelden oder registrieren, bevor du fortfahren kannst. | ||||||
|       unconfirmed: Du musst deine E-Mail-Adresse bestätigen, bevor du fortfahren kannst. |       unconfirmed: Du musst deine E-Mail-Adresse bestätigen, bevor du fortfahren kannst. | ||||||
|  | |||||||
| @ -393,6 +393,12 @@ en: | |||||||
|     next: Next |     next: Next | ||||||
|     prev: Prev |     prev: Prev | ||||||
|     truncate: "…" |     truncate: "…" | ||||||
|  |   preferences: | ||||||
|  |     languages: Languages | ||||||
|  |     notifications: Notifications | ||||||
|  |     other: Other | ||||||
|  |     publishing: Publishing | ||||||
|  |     web: Web | ||||||
|   push_notifications: |   push_notifications: | ||||||
|     favourite: |     favourite: | ||||||
|       title: "%{name} favourited your status" |       title: "%{name} favourited your status" | ||||||
|  | |||||||
| @ -247,7 +247,7 @@ ja: | |||||||
|     salutation: "%{name} さん" |     salutation: "%{name} さん" | ||||||
|     settings: 'メール設定の変更: %{link}' |     settings: 'メール設定の変更: %{link}' | ||||||
|     signature: Mastodon %{instance} インスタンスからの通知 |     signature: Mastodon %{instance} インスタンスからの通知 | ||||||
|     view: 'リンク' |     view: リンク | ||||||
|   applications: |   applications: | ||||||
|     created: アプリが作成されました |     created: アプリが作成されました | ||||||
|     destroyed: アプリが削除されました |     destroyed: アプリが削除されました | ||||||
|  | |||||||
| @ -93,8 +93,8 @@ oc: | |||||||
|       reset_password: Reïnicializar lo senhal |       reset_password: Reïnicializar lo senhal | ||||||
|       resubscribe: Se tornar abonar |       resubscribe: Se tornar abonar | ||||||
|       salmon_url: URL Salmon |       salmon_url: URL Salmon | ||||||
|       shared_inbox_url: URL de recepcion partejada |  | ||||||
|       search: Cercar |       search: Cercar | ||||||
|  |       shared_inbox_url: URL de recepcion partejada | ||||||
|       show: |       show: | ||||||
|         created_reports: Rapòrts creat per aqueste compte |         created_reports: Rapòrts creat per aqueste compte | ||||||
|         report: rapòrt |         report: rapòrt | ||||||
|  | |||||||
| @ -62,7 +62,7 @@ pl: | |||||||
|       followers: Śledzący |       followers: Śledzący | ||||||
|       followers_url: Adres śledzących |       followers_url: Adres śledzących | ||||||
|       follows: Śledzeni |       follows: Śledzeni | ||||||
|       inbox: Adres skrzynki |       inbox_url: Adres skrzynki | ||||||
|       ip: Adres IP |       ip: Adres IP | ||||||
|       location: |       location: | ||||||
|         all: Wszystkie |         all: Wszystkie | ||||||
|  | |||||||
| @ -4,6 +4,7 @@ en: | |||||||
|     hints: |     hints: | ||||||
|       defaults: |       defaults: | ||||||
|         avatar: PNG, GIF or JPG. At most 2MB. Will be downscaled to 120x120px |         avatar: PNG, GIF or JPG. At most 2MB. Will be downscaled to 120x120px | ||||||
|  |         digest: Sent after a long period of inactivity with a summary of mentions you've received in your absence | ||||||
|         display_name: |         display_name: | ||||||
|           one: <span class="name-counter">1</span> character left |           one: <span class="name-counter">1</span> character left | ||||||
|           other: <span class="name-counter">%{count}</span> characters left |           other: <span class="name-counter">%{count}</span> characters left | ||||||
| @ -19,7 +20,7 @@ en: | |||||||
|       sessions: |       sessions: | ||||||
|         otp: Enter the Two-factor code from your phone or use one of your recovery codes. |         otp: Enter the Two-factor code from your phone or use one of your recovery codes. | ||||||
|       user: |       user: | ||||||
|         filtered_languages: Selected languages will be removed from your public timelines. |         filtered_languages: Checked languages will be filtered from public timelines for you | ||||||
|     labels: |     labels: | ||||||
|       defaults: |       defaults: | ||||||
|         avatar: Avatar |         avatar: Avatar | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user