- content_for :page_title do = t('settings.preferences') %ul.quick-nav %li= link_to t('preferences.languages'), '#settings_languages' %li= link_to t('preferences.publishing'), '#settings_publishing' %li= link_to t('preferences.other'), '#settings_other' %li= link_to t('preferences.web'), '#settings_web' %li= link_to t('settings.notifications'), settings_notifications_path = simple_form_for current_user, url: settings_preferences_path, html: { method: :put } do |f| = render 'shared/error_messages', object: current_user - if current_user.can_moderate? %hr/ .fields-group = f.input :defanged, as: :boolean, wrapper: :with_label, hint: t('simple_form.hints.defaults.defanged') %hr#settings_publishing/ .fields-group = f.input :setting_default_privacy, collection: Status.selectable_visibilities, wrapper: :with_floating_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' .fields-group .fields-row .fields-group.fields-row__column.fields-row__column-6 = f.input :setting_max_public_history, collection: [1, 3, 6, 7, 14, 30, 60, 90, 180, 365, 730, 1095, 2190], wrapper: :with_label, include_blank: false, label_method: lambda { |item| safe_join([t("simple_form.labels.lifespan.#{item}")]) }, selected: current_user.max_public_history .fields-group.fields-row__column.fields-row__column-6 = f.input :setting_max_public_access, collection: [1, 3, 6, 7, 14, 30, 60, 90, 180, 365, 730, 1095, 2190], wrapper: :with_label, include_blank: false, label_method: lambda { |item| safe_join([t("simple_form.labels.lifespan.#{item}")]) }, selected: current_user.max_public_access .fields-group .fields-row .fields-group.fields-row__column.fields-row__column-6 = f.input :setting_roar_defederate, collection: [0, 1, 3, 6, 7, 14, 30, 60, 90, 180, 365, 730, 1095, 2190], wrapper: :with_label, include_blank: false, label_method: lambda { |item| safe_join([t("simple_form.labels.lifespan.#{item}")]) }, selected: current_user.roar_defederate = f.input :setting_roar_defederate_old, as: :boolean, wrapper: :with_label .fields-group.fields-row__column.fields-row__column-6 = f.input :setting_roar_lifespan, collection: [0, 1, 3, 6, 7, 14, 30, 60, 90, 180, 365, 730, 1095, 2190], wrapper: :with_label, include_blank: false, label_method: lambda { |item| safe_join([t("simple_form.labels.lifespan.#{item}")]) }, selected: current_user.roar_lifespan = f.input :setting_roar_lifespan_old, as: :boolean, wrapper: :with_label .fields-group = f.input :setting_default_sensitive, as: :boolean, wrapper: :with_label = f.input :setting_default_local, as: :boolean, wrapper: :with_label = f.input :setting_always_local, as: :boolean, wrapper: :with_label = f.input :setting_hide_public_profile, as: :boolean, wrapper: :with_label = f.input :setting_hide_public_outbox, as: :boolean, wrapper: :with_label = f.input :setting_allow_rss, as: :boolean, wrapper: :with_label %hr/ .fields-group = f.input :setting_default_content_type, collection: ['text/x-bbcode+markdown', 'text/markdown', 'text/x-bbcode', 'text/html', 'text/plain', 'text/console'], wrapper: :with_floating_label, include_blank: false, label_method: lambda { |item| safe_join([t("simple_form.labels.defaults.setting_default_content_type_#{item.split('/')[1].gsub(/[+-]/, '_')}"), content_tag(:span, t("simple_form.hints.defaults.setting_default_content_type_#{item.split('/')[1].gsub(/[+-]/, '_')}_html"), class: 'hint')]) }, required: false, as: :radio_buttons, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li' %hr/ .fields-group = f.input :setting_delayed_roars, as: :boolean, wrapper: :with_label = f.input :setting_delayed_for, collection: [5, 10, 15, 30, 60, 120, 180, 300, 360, 600, 1800, 3600], wrapper: :with_label, include_blank: false, label_method: lambda { |item| safe_join([t("simple_form.labels.delayed_for.#{item}")]) }, selected: current_user.delayed_for %hr/ .fields-group = f.input :setting_boost_interval, as: :boolean, wrapper: :with_label = f.input :setting_boost_random, as: :boolean, wrapper: :with_label = f.input :setting_boost_interval_from, collection: [1, 2, 3, 4, 5, 6, 10, 15, 30, 60, 120, 180, 300, 360, 720, 1440], wrapper: :with_label, include_blank: false, label_method: lambda { |item| safe_join([t("simple_form.labels.boost_interval.#{item}")]) }, selected: current_user.boost_interval_from = f.input :setting_boost_interval_to, collection: [1, 2, 3, 4, 5, 6, 10, 15, 30, 60, 120, 180, 300, 360, 720, 1440], wrapper: :with_label, include_blank: false, label_method: lambda { |item| safe_join([t("simple_form.labels.boost_interval.#{item}")]) }, selected: current_user.boost_interval_to %hr#settings_other/ .fields-group = f.input :filters_enabled, as: :boolean, wrapper: :with_label = f.input :invert_filters, as: :boolean, wrapper: :with_label = f.input :filter_timelines_only, as: :boolean, wrapper: :with_label = f.input :setting_filter_mentions, as: :boolean, wrapper: :with_label %hr/ .fields-group = f.input :allow_unknown_follows, as: :boolean, wrapper: :with_label %hr/ .fields-group = f.input :only_known, as: :boolean, wrapper: :with_label = f.input :hide_boosts, as: :boolean, wrapper: :with_label = f.input :media_only, as: :boolean, wrapper: :with_label = f.input :filter_undescribed, as: :boolean, wrapper: :with_label = f.input :setting_hide_sensitive_cards, as: :boolean, wrapper: :with_label .fields-group = f.input :setting_rawr_federated, as: :boolean, wrapper: :with_label %hr/ .fields-group = f.input :monsterfork_api, collection: [:vanilla, :basic, :full], wrapper: :with_label, include_blank: false, label_method: lambda { |item| safe_join([t("simple_form.labels.monsterfork_api.#{item}")]) }, selected: current_user.monsterfork_api %hr/ .fields-group = f.input :setting_hide_network, as: :boolean, wrapper: :with_label = f.input :setting_hide_interactions, as: :boolean, wrapper: :with_label = f.input :setting_hide_stats, as: :boolean, wrapper: :with_label = f.input :setting_show_application, as: :boolean, wrapper: :with_label = f.input :setting_noindex, as: :boolean, wrapper: :with_label - unless Setting.hide_followers_count .fields-group = f.input :setting_hide_followers_count, as: :boolean, wrapper: :with_label %hr#settings_web/ .fields-group = f.input :setting_auto_play_gif, as: :boolean, wrapper: :with_label = f.input :setting_reduce_motion, as: :boolean, wrapper: :with_label = f.input :setting_system_font_ui, as: :boolean, wrapper: :with_label = f.input :setting_hide_captions, as: :boolean, wrapper: :with_label = f.input :setting_larger_menus, as: :boolean, wrapper: :with_label = f.input :setting_larger_buttons, as: :boolean, wrapper: :with_label = f.input :setting_larger_drawer, as: :boolean, wrapper: :with_label = f.input :setting_larger_emoji, as: :boolean, wrapper: :with_label = f.input :setting_show_cursor, as: :boolean, wrapper: :with_label = f.input :setting_force_lowercase, as: :boolean, wrapper: :with_label %hr/ .fields-group = f.input :setting_hide_mascot, as: :boolean, wrapper: :with_label = f.input :setting_hide_replies_muted, as: :boolean, wrapper: :with_label = f.input :setting_hide_replies_blocked, as: :boolean, wrapper: :with_label = f.input :setting_hide_replies_blocker, as: :boolean, wrapper: :with_label = f.input :setting_hide_mntions_muted, as: :boolean, wrapper: :with_label = f.input :setting_hide_mntions_blocked, as: :boolean, wrapper: :with_label = f.input :setting_hide_mntions_blocker, as: :boolean, wrapper: :with_label = f.input :setting_hide_mntions_packm8, as: :boolean, wrapper: :with_label %hr/ .fields-group = f.input :setting_aggregate_reblogs, as: :boolean, wrapper: :with_label = f.input :setting_advanced_layout, as: :boolean, wrapper: :with_label %hr/ .fields-group = f.input :setting_unfollow_modal, as: :boolean, wrapper: :with_label = f.input :setting_boost_modal, as: :boolean, wrapper: :with_label = f.input :setting_favourite_modal, as: :boolean, wrapper: :with_label = f.input :setting_delete_modal, as: :boolean, wrapper: :with_label %hr/ .fields-group = f.input :setting_display_media, collection: ['default', 'show_all', 'hide_all'], wrapper: :with_label, include_blank: false, label_method: lambda { |item| safe_join([t("simple_form.labels.defaults.setting_display_media_#{item}"), content_tag(:span, t("simple_form.hints.defaults.setting_display_media_#{item}"), class: 'hint')]) }, required: false, as: :radio_buttons, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li' = f.input :setting_expand_spoilers, as: :boolean, wrapper: :with_label %hr/ .fields-row#settings_languages .fields-group.fields-row__column.fields-row__column-6 = f.input :locale, collection: I18n.available_locales, wrapper: :with_label, include_blank: false, label_method: lambda { |locale| human_locale(locale) }, selected: I18n.locale .fields-group.fields-row__column.fields-row__column-6 = f.input :setting_default_language, collection: [nil] + filterable_languages.sort, wrapper: :with_label, label_method: lambda { |locale| locale.nil? ? I18n.t('statuses.language_detection') : human_locale(locale) }, required: false, include_blank: false .fields-group = f.input :chosen_languages, collection: filterable_languages.sort, 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' %hr/ .actions = f.button :button, t('generic.save_changes'), type: :submit