Migrate from ledermann/rails-settings to rails-settings-cached which allows global settings
with YAML-defined defaults. Add admin page for editing global settings. Add "site_description" setting that would show as a paragraph on the frontpage
This commit is contained in:
parent
babc6a1528
commit
b11fdc3ae3
20 changed files with 188 additions and 34 deletions
|
@ -4,10 +4,10 @@ class AboutController < ApplicationController
|
|||
before_action :set_body_classes
|
||||
|
||||
def index
|
||||
@description = Setting.site_description
|
||||
end
|
||||
|
||||
def terms
|
||||
end
|
||||
def terms; end
|
||||
|
||||
private
|
||||
|
||||
|
|
25
app/controllers/admin/settings_controller.rb
Normal file
25
app/controllers/admin/settings_controller.rb
Normal file
|
@ -0,0 +1,25 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class Admin::SettingsController < ApplicationController
|
||||
before_action :require_admin!
|
||||
|
||||
layout 'admin'
|
||||
|
||||
def index
|
||||
@settings = Setting.all_as_records
|
||||
end
|
||||
|
||||
def update
|
||||
@setting = Setting.where(var: params[:id]).first_or_initialize(var: params[:id])
|
||||
|
||||
if @setting.value != params[:setting][:value]
|
||||
@setting.value = params[:setting][:value]
|
||||
@setting.save
|
||||
end
|
||||
|
||||
respond_to do |format|
|
||||
format.html { redirect_to admin_settings_path }
|
||||
format.json { respond_with_bip(@setting) }
|
||||
end
|
||||
end
|
||||
end
|
|
@ -8,14 +8,18 @@ class Settings::PreferencesController < ApplicationController
|
|||
def show; end
|
||||
|
||||
def update
|
||||
current_user.settings(:notification_emails).follow = user_params[:notification_emails][:follow] == '1'
|
||||
current_user.settings(:notification_emails).follow_request = user_params[:notification_emails][:follow_request] == '1'
|
||||
current_user.settings(:notification_emails).reblog = user_params[:notification_emails][:reblog] == '1'
|
||||
current_user.settings(:notification_emails).favourite = user_params[:notification_emails][:favourite] == '1'
|
||||
current_user.settings(:notification_emails).mention = user_params[:notification_emails][:mention] == '1'
|
||||
current_user.settings['notification_emails'] = {
|
||||
follow: user_params[:notification_emails][:follow] == '1',
|
||||
follow_request: user_params[:notification_emails][:follow_request] == '1',
|
||||
reblog: user_params[:notification_emails][:reblog] == '1',
|
||||
favourite: user_params[:notification_emails][:favourite] == '1',
|
||||
mention: user_params[:notification_emails][:mention] == '1',
|
||||
}
|
||||
|
||||
current_user.settings(:interactions).must_be_follower = user_params[:interactions][:must_be_follower] == '1'
|
||||
current_user.settings(:interactions).must_be_following = user_params[:interactions][:must_be_following] == '1'
|
||||
current_user.settings['interactions'] = {
|
||||
must_be_follower: user_params[:interactions][:must_be_follower] == '1',
|
||||
must_be_following: user_params[:interactions][:must_be_following] == '1',
|
||||
}
|
||||
|
||||
if current_user.update(user_params.except(:notification_emails, :interactions))
|
||||
redirect_to settings_preferences_path, notice: I18n.t('generic.changes_saved_msg')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue