glitch-soc/mastodon

View on GitHub
app/views/settings/preferences/appearance/show.html.haml

Summary

Maintainability
Test Coverage
- content_for :page_title do
  = t('settings.appearance')

- content_for :heading_actions do
  = button_tag t('generic.save_changes'), class: 'button', form: 'edit_user'

= simple_form_for current_user, url: settings_preferences_appearance_path, html: { id: :edit_user } do |f|
  .fields-row
    .fields-group.fields-row__column.fields-row__column-6
      = f.input :locale,
                collection: ui_languages,
                hint: false,
                include_blank: false,
                label_method: ->(locale) { native_locale_name(locale) },
                selected: I18n.locale,
                wrapper: :with_label
    .fields-group.fields-row__column.fields-row__column-6
      = f.input :time_zone,
                collection: ActiveSupport::TimeZone.all.map { |tz| ["(GMT#{tz.formatted_offset}) #{tz.name}", tz.tzinfo.name] },
                hint: false,
                selected: current_user.time_zone || Time.zone.tzinfo.name,
                wrapper: :with_label

  - unless I18n.locale == :en
    .flash-message.translation-prompt
      #{t 'appearance.localization.body'} #{content_tag(:a, t('appearance.localization.guide_link_text'), href: t('appearance.localization.guide_link'), target: '_blank', rel: 'noopener')}
      = link_to t('appearance.localization.glitch_guide_link'), target: '_blank', rel: 'noopener noreferrer' do
        = t('appearance.localization.glitch_guide_link_text')

  = f.simple_fields_for :settings, current_user.settings do |ff|
    %h4= t 'appearance.advanced_web_interface'

    %p.hint= t 'appearance.advanced_web_interface_hint'

    .fields-group
      = ff.input :'web.advanced_layout',
                 hint: false,
                 label: I18n.t('simple_form.labels.defaults.setting_advanced_layout'),
                 wrapper: :with_label
    %h4= t 'appearance.animations_and_accessibility'

    .fields-group
      = ff.input :'web.use_pending_items',
                 hint: I18n.t('simple_form.hints.defaults.setting_use_pending_items'),
                 label: I18n.t('simple_form.labels.defaults.setting_use_pending_items'),
                 wrapper: :with_label

    .fields-group
      = ff.input :'web.auto_play', wrapper: :with_label, recommended: true, label: I18n.t('simple_form.labels.defaults.setting_auto_play_gif')
      = ff.input :'web.reduce_motion', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_reduce_motion')
      = ff.input :'web.disable_swiping', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_disable_swiping')
      = ff.input :'web.disable_hover_cards', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_disable_hover_cards')
      = ff.input :'web.use_system_font', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_system_font_ui')
      = ff.input :'web.use_system_emoji_font', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_system_emoji_font'), glitch_only: true
      = ff.input :'web.use_system_scrollbars', wrapper: :with_label, hint: I18n.t('simple_form.hints.defaults.setting_system_scrollbars_ui'), label: I18n.t('simple_form.labels.defaults.setting_system_scrollbars_ui')

    %h4= t 'appearance.discovery'

    .fields-group
      = ff.input :'web.trends', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_trends')

    %h4= t 'appearance.confirmation_dialogs'

    .fields-group
      = ff.input :'web.reblog_modal', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_boost_modal')
      = ff.input :'web.favourite_modal', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_favourite_modal'), glitch_only: true
      = ff.input :'web.delete_modal', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_delete_modal')

    %h4= t 'appearance.sensitive_content'

    .fields-group
      = ff.input :'web.display_media',
                 as: :radio_buttons,
                 collection_wrapper_tag: 'ul',
                 collection: %w(default show_all hide_all),
                 hint: false,
                 item_wrapper_tag: 'li',
                 label_method: ->(item) { t("simple_form.hints.defaults.setting_display_media_#{item}") },
                 label: I18n.t('simple_form.labels.defaults.setting_display_media'),
                 wrapper: :with_floating_label

    .fields-group
      = ff.input :'web.use_blurhash',
                 hint: I18n.t('simple_form.hints.defaults.setting_use_blurhash'),
                 label: I18n.t('simple_form.labels.defaults.setting_use_blurhash'),
                 wrapper: :with_label

    .fields-group
      = ff.input :'web.expand_content_warnings', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_expand_spoilers')

  .actions
    = f.button :button, t('generic.save_changes'), type: :submit