From 2bd132d4581048a96b4d36b5a94e6749c68b8987 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 4 May 2017 12:12:44 -0400 Subject: Replace best_in_place editor on admin settings page (#2789) * Remove best_in_place * Replace best_in_place usage with rails helpers * Move admin/settings#index to #edit action * Remove click_to__edit from i18n --- app/controllers/admin/settings_controller.rb | 37 ++++++++++++++++------------ 1 file changed, 21 insertions(+), 16 deletions(-) (limited to 'app/controllers') diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index fc9064068..fcd42c79c 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -2,38 +2,43 @@ module Admin class SettingsController < BaseController + ADMIN_SETTINGS = %w( + site_contact_username + site_contact_email + site_title + site_description + site_extended_description + open_registrations + closed_registrations_message + ).freeze BOOLEAN_SETTINGS = %w(open_registrations).freeze - def index + def edit @settings = Setting.all_as_records end def update - @setting = Setting.where(var: params[:id]).first_or_initialize(var: params[:id]) - @setting.update(value: value_for_update) - - respond_to do |format| - format.html { redirect_to admin_settings_path } - format.json { respond_with_bip(@setting) } + settings_params.each do |key, value| + setting = Setting.where(var: key).first_or_initialize(var: key) + setting.update(value: value_for_update(key, value)) end + + flash[:notice] = 'Success!' + redirect_to edit_admin_settings_path end private def settings_params - params.require(:setting).permit(:value) + params.permit(ADMIN_SETTINGS) end - def value_for_update - if updating_boolean_setting? - settings_params[:value] == 'true' + def value_for_update(key, value) + if BOOLEAN_SETTINGS.include?(key) + value == 'true' else - settings_params[:value] + value end end - - def updating_boolean_setting? - BOOLEAN_SETTINGS.include?(params[:id]) - end end end -- cgit