Class: RubyCms::Admin::SettingsController
Instance Method Summary
collapse
cms_page, #current_user_cms
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
|
#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()
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.message }, status: :unprocessable_content
end
|