Module: RubyCms::SettingsHelper

Defined in:
app/helpers/ruby_cms/settings_helper.rb

Constant Summary collapse

TAB_CONFIG =
{
  "general" => { icon: "🏠", fallback_label: "General" },
  "navigation" => { icon: "🧭", fallback_label: "Navigation" },
  "pagination" => { icon: "📄", fallback_label: "Pagination" },
  "analytics" => { icon: "📈", fallback_label: "Analytics" },
  "dashboard" => { icon: "🗂️", fallback_label: "Dashboard" },
  "content" => { icon: "🧱", fallback_label: "Content" }
}.freeze

Instance Method Summary collapse

Instance Method Details

#render_setting_field(entry:, value:, tab:) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
# File 'app/helpers/ruby_cms/settings_helper.rb', line 37

def render_setting_field(entry:, value:, tab:)
  case entry.type.to_sym
  when :integer
    render_integer_setting_field(entry:, value:, tab:)
  when :boolean
    render_boolean_setting_field(entry:, value:, tab:)
  when :json
    render_json_setting_field(entry:, value:, tab:)
  else
    render_string_setting_field(entry:, value:, tab:)
  end
end

#setting_label(entry) ⇒ Object



27
28
29
30
31
32
33
34
35
# File 'app/helpers/ruby_cms/settings_helper.rb', line 27

def setting_label(entry)
  key = entry.key.to_s

  # Keep familiar labels for nav and pagination keys.
  key = key.delete_prefix("nav_show_")
  key = key.delete_suffix("_per_page")

  key.tr("_", " ").humanize
end

#settings_tab_config(category) ⇒ Object



14
15
16
# File 'app/helpers/ruby_cms/settings_helper.rb', line 14

def settings_tab_config(category)
  TAB_CONFIG[category.to_s] || { icon: "⚙️", fallback_label: category.to_s.humanize }
end

#settings_tab_description(category) ⇒ Object



23
24
25
# File 'app/helpers/ruby_cms/settings_helper.rb', line 23

def settings_tab_description(category)
  t("ruby_cms.admin.settings.categories.#{category}.description", default: "")
end

#settings_tab_label(category) ⇒ Object



18
19
20
21
# File 'app/helpers/ruby_cms/settings_helper.rb', line 18

def settings_tab_label(category)
  cfg = settings_tab_config(category)
  t("ruby_cms.admin.settings.categories.#{category}.label", default: cfg[:fallback_label])
end