Class: RubyCms::Admin::SettingsController
- Inherits:
-
BaseController
- Object
- BaseController
- RubyCms::Admin::SettingsController
- Defined in:
- app/controllers/ruby_cms/admin/settings_controller.rb
Instance Method Summary collapse
- #index ⇒ Object
- #reset_defaults ⇒ Object
- #update ⇒ Object
-
#update_nav_order ⇒ Object
Dedicated endpoint for saving nav order only.
Instance Method Details
#index ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'app/controllers/ruby_cms/admin/settings_controller.rb', line 8 def index RubyCms::Settings.ensure_defaults! @registry_entries = sorted_registry_entries @categories = @registry_entries.map {|e| e.category.to_s }.uniq @active_tab = resolve_active_tab(params[:tab], @categories) @entries_for_tab = @registry_entries.select {|entry| entry.category.to_s == @active_tab } @values = @entries_for_tab.to_h do |entry| [entry.key, RubyCms::Settings.get(entry.key, default: entry.default)] end end |
#reset_defaults ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'app/controllers/ruby_cms/admin/settings_controller.rb', line 30 def reset_defaults RubyCms::SettingsRegistry.seed_defaults! RubyCms::SettingsRegistry.each do |entry| RubyCms::Settings.set(entry.key, entry.default) end redirect_to ruby_cms_admin_settings_path(redirect_settings_params), notice: t("ruby_cms.admin.settings.defaults_reset") end |
#update ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'app/controllers/ruby_cms/admin/settings_controller.rb', line 21 def update updated_keys = apply_updates(extract_updates) updated_keys = apply_nav_order_update(updated_keys) respond_with_update_success(updated_keys) rescue StandardError => e respond_with_update_failure(e) end |
#update_nav_order ⇒ Object
Dedicated endpoint for saving nav order only. Reads raw JSON body; writes directly to preferences table.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'app/controllers/ruby_cms/admin/settings_controller.rb', line 42 def update_nav_order order = nav_order_from_raw_body unless order.kind_of?(Array) && order.any? return render json: { success: false, error: "nav_order_main and nav_order_bottom required" }, status: :unprocessable_content end rec = RubyCms::Preference.find_or_initialize_by(key: "nav_order") rec.category = "navigation" if rec.new_record? rec.value_type = "json" rec.value = order.map(&:to_s).to_json rec.save! render json: { success: true, updated_keys: ["nav_order"], updated_count: 1 } rescue StandardError => e render json: { success: false, error: e. }, status: :unprocessable_content end |