mirror of
https://github.com/internetee/registry.git
synced 2025-07-03 17:53:35 +02:00
Refactor settings UI
This commit is contained in:
parent
dafcb6f78c
commit
bd46afdf41
10 changed files with 97 additions and 110 deletions
48
app/controllers/admin/settings_controller.rb
Normal file
48
app/controllers/admin/settings_controller.rb
Normal file
|
@ -0,0 +1,48 @@
|
|||
class Admin::SettingsController < AdminController
|
||||
before_action :set_setting_group, only: [:show, :update]
|
||||
|
||||
def index
|
||||
@settings = Setting.unscoped
|
||||
end
|
||||
|
||||
def create
|
||||
casted_settings.each do |k, v|
|
||||
Setting[k] = v
|
||||
end
|
||||
|
||||
flash[:notice] = I18n.t('shared.records_updated')
|
||||
redirect_to [:admin, :settings]
|
||||
end
|
||||
|
||||
def show; end
|
||||
|
||||
def update
|
||||
if @setting_group.update(setting_group_params)
|
||||
flash[:notice] = I18n.t('shared.setting_updated')
|
||||
redirect_to [:admin, @setting_group]
|
||||
else
|
||||
flash[:alert] = I18n.t('shared.failed_to_update_setting')
|
||||
render 'show'
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_setting_group
|
||||
@setting_group = SettingGroup.find(params[:id])
|
||||
end
|
||||
|
||||
def setting_group_params
|
||||
params.require(:setting_group).permit(settings_attributes: [:value, :id])
|
||||
end
|
||||
|
||||
def casted_settings
|
||||
settings = {}
|
||||
params[:settings].each do |k, v|
|
||||
settings[k] = v.to_i if Setting[k].class == Fixnum
|
||||
settings[k] = v.to_f if Setting[k].class == Float
|
||||
settings[k] = (v == 'true' ? true : false) if [TrueClass, FalseClass].include?(Setting[k].class)
|
||||
end
|
||||
settings
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue