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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
- 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
|