forked from berserker/microblog
Change preferences page into appearance, notifications, and other (#10977)
parent
a60364ca7d
commit
1db4117030
100 changed files with 129 additions and 295 deletions
@ -1,32 +0,0 @@ |
||||
# frozen_string_literal: true |
||||
|
||||
class Settings::NotificationsController < Settings::BaseController |
||||
layout 'admin' |
||||
|
||||
before_action :authenticate_user! |
||||
|
||||
def show; end |
||||
|
||||
def update |
||||
user_settings.update(user_settings_params.to_h) |
||||
|
||||
if current_user.save |
||||
redirect_to settings_notifications_path, notice: I18n.t('generic.changes_saved_msg') |
||||
else |
||||
render :show |
||||
end |
||||
end |
||||
|
||||
private |
||||
|
||||
def user_settings |
||||
UserSettingsDecorator.new(current_user) |
||||
end |
||||
|
||||
def user_settings_params |
||||
params.require(:user).permit( |
||||
notification_emails: %i(follow follow_request reblog favourite mention digest report pending_account), |
||||
interactions: %i(must_be_follower must_be_following must_be_following_dm) |
||||
) |
||||
end |
||||
end |
@ -0,0 +1,9 @@ |
||||
# frozen_string_literal: true |
||||
|
||||
class Settings::Preferences::AppearanceController < Settings::PreferencesController |
||||
private |
||||
|
||||
def after_update_redirect_path |
||||
settings_preferences_appearance_path |
||||
end |
||||
end |
@ -0,0 +1,9 @@ |
||||
# frozen_string_literal: true |
||||
|
||||
class Settings::Preferences::NotificationsController < Settings::PreferencesController |
||||
private |
||||
|
||||
def after_update_redirect_path |
||||
settings_preferences_notifications_path |
||||
end |
||||
end |
@ -0,0 +1,41 @@ |
||||
- content_for :page_title do |
||||
= t('settings.appearance') |
||||
|
||||
= simple_form_for current_user, url: settings_preferences_appearance_path, html: { method: :put } do |f| |
||||
.fields-row |
||||
.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, hint: false |
||||
.fields-group.fields-row__column.fields-row__column-6 |
||||
= f.input :setting_theme, collection: Themes.instance.names, label_method: lambda { |theme| I18n.t("themes.#{theme}", default: theme) }, wrapper: :with_label, include_blank: false, hint: false |
||||
|
||||
%h4= t 'appearance.advanced_web_interface' |
||||
|
||||
%p.hint= t 'appearance.advanced_web_interface_hint' |
||||
|
||||
.fields-group |
||||
= f.input :setting_advanced_layout, as: :boolean, wrapper: :with_label, hint: false |
||||
|
||||
%h4= t 'appearance.animations_and_accessibility' |
||||
|
||||
.fields-group |
||||
= f.input :setting_auto_play_gif, as: :boolean, wrapper: :with_label, recommended: true |
||||
= f.input :setting_reduce_motion, as: :boolean, wrapper: :with_label |
||||
= f.input :setting_system_font_ui, as: :boolean, wrapper: :with_label |
||||
|
||||
%h4= t 'appearance.confirmation_dialogs' |
||||
|
||||
.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_delete_modal, as: :boolean, wrapper: :with_label |
||||
|
||||
%h4= t 'appearance.sensitive_content' |
||||
|
||||
.fields-group |
||||
= f.input :setting_display_media, collection: ['default', 'show_all', 'hide_all'],label_method: lambda { |item| t("simple_form.hints.defaults.setting_display_media_#{item}") }, hint: false, as: :radio_buttons, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', wrapper: :with_floating_label |
||||
|
||||
.fields-group |
||||
= f.input :setting_expand_spoilers, as: :boolean, wrapper: :with_label |
||||
|
||||
.actions |
||||
= f.button :button, t('generic.save_changes'), type: :submit |
@ -1,7 +1,7 @@ |
||||
- content_for :page_title do |
||||
= t('settings.notifications') |
||||
|
||||
= simple_form_for current_user, url: settings_notifications_path, html: { method: :put } do |f| |
||||
= simple_form_for current_user, url: settings_preferences_notifications_path, html: { method: :put } do |f| |
||||
= render 'shared/error_messages', object: current_user |
||||
|
||||
.fields-group |
Loading…
Reference in new issue