glitch-soc/mastodon

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

Summary

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

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

= simple_form_for current_user, url: settings_preferences_other_path, html: { id: :edit_preferences } do |f|
  = render 'shared/error_messages', object: current_user

  = f.simple_fields_for :settings, current_user.settings do |ff|
    .fields-group
      = ff.input :aggregate_reblogs,
                 hint: I18n.t('simple_form.hints.defaults.setting_aggregate_reblogs'),
                 label: I18n.t('simple_form.labels.defaults.setting_aggregate_reblogs'),
                 recommended: true,
                 wrapper: :with_label

    %h4= t 'preferences.posting_defaults'

    .fields-row
      .fields-group.fields-row__column.fields-row__column-6
        = ff.input :default_privacy,
                   collection: Status.selectable_visibilities,
                   hint: false,
                   include_blank: false,
                   label_method: ->(visibility) { safe_join([I18n.t("statuses.visibilities.#{visibility}"), I18n.t("statuses.visibilities.#{visibility}_long")], ' - ') },
                   label: I18n.t('simple_form.labels.defaults.setting_default_privacy'),
                   required: false,
                   wrapper: :with_label

      .fields-group.fields-row__column.fields-row__column-6
        = ff.input :default_language,
                   collection: [nil] + filterable_languages,
                   hint: false,
                   include_blank: false,
                   label_method: ->(locale) { locale.nil? ? I18n.t('statuses.default_language') : native_locale_name(locale) },
                   label: I18n.t('simple_form.labels.defaults.setting_default_language'),
                   required: false,
                   wrapper: :with_label

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

    .fields-group
      = ff.input :default_content_type,
                 collection: %w(text/plain text/markdown text/html),
                 wrapper: :with_label,
                 label: I18n.t('simple_form.labels.defaults.setting_default_content_type'),
                 include_blank: false,
                 label_method: ->(item) { safe_join([t("simple_form.labels.defaults.setting_default_content_type_#{item.split('/')[1]}"), content_tag(:span, t("simple_form.hints.defaults.setting_default_content_type_#{item.split('/')[1]}"), class: 'hint')]) },
                 required: false,
                 as: :radio_buttons,
                 collection_wrapper_tag: 'ul',
                 item_wrapper_tag: 'li',
                 glitch_only: true

  %h4= t 'preferences.public_timelines'

  .fields-group
    = f.input :chosen_languages,
              as: :check_boxes,
              collection_wrapper_tag: 'ul',
              collection: filterable_languages,
              include_blank: false,
              item_wrapper_tag: 'li',
              label_method: ->(locale) { native_locale_name(locale) },
              required: false,
              wrapper: :with_block_label

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