about summary refs log tree commit diff
path: root/app/views/settings/preferences/show.html.haml
blob: ffb1bbf6ac09310bef6cc7582d4effc084b5c06f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
- content_for :page_title do
  = t('settings.preferences')

= simple_form_for current_user, url: settings_preferences_path, html: { method: :put } do |f|
  = render 'shared/error_messages', object: current_user

  %h4= t 'preferences.languages'

  .fields-group
    = 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 :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'

  %h4= t 'preferences.publishing'

  .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_sensitive, as: :boolean, wrapper: :with_label

  %h4= t 'preferences.notifications'

  .fields-group
    = 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_request, as: :boolean, wrapper: :with_label
      = ff.input :reblog, as: :boolean, wrapper: :with_label
      = ff.input :favourite, 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

  .fields-group
    = f.simple_fields_for :interactions, hash_to_object(current_user.settings.interactions) do |ff|
      = ff.input :must_be_follower, as: :boolean, wrapper: :with_label
      = ff.input :must_be_following, as: :boolean, wrapper: :with_label

  %h4= t 'preferences.other'

  .fields-group
    = f.input :setting_noindex, as: :boolean, wrapper: :with_label

  %h4= t 'preferences.web'

  .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_boost_modal, as: :boolean, wrapper: :with_label
    = f.input :setting_delete_modal, as: :boolean, wrapper: :with_label

  .fields-group
    = f.input :setting_auto_play_gif, as: :boolean, wrapper: :with_label
    = f.input :setting_system_font_ui, as: :boolean, wrapper: :with_label

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