Class: CamaleonCms::Admin::SettingsController

Inherits:
CamaleonCms::AdminController show all
Includes:
CustomFieldsConcern
Defined in:
app/controllers/camaleon_cms/admin/settings_controller.rb

Instance Method Summary collapse

Methods inherited from CamaleonCms::AdminController

#ajax, #cama_get_i18n_frontend, #dashboard, #search

Instance Method Details

#indexObject



11
12
13
# File 'app/controllers/camaleon_cms/admin/settings_controller.rb', line 11

def index
  redirect_to cama_admin_dashboard_path
end

#languagesObject

list available languages



39
40
41
# File 'app/controllers/camaleon_cms/admin/settings_controller.rb', line 39

def languages
  add_breadcrumb I18n.t('camaleon_cms.admin.sidebar.languages')
end

#save_languagesObject

save language customizations



49
50
51
52
53
54
55
56
57
58
# File 'app/controllers/camaleon_cms/admin/settings_controller.rb', line 49

def save_languages
  current_site.set_meta('languages_site', params[:lang])
  current_site.set_admin_language(params[:admin_language])
  I18n.locale = current_site.get_admin_language
  PluginRoutes.reload

  flash[:notice] =
    t('camaleon_cms.admin.settings.message.language_updated', locale: current_site.get_admin_language)
  redirect_to action: :languages
end

#save_themeObject



64
65
66
67
68
69
70
71
72
73
74
# File 'app/controllers/camaleon_cms/admin/settings_controller.rb', line 64

def save_theme
  current_theme.set_field_values(cama_permitted_field_options('Theme', param_key: :theme_fields))
  current_theme.set_options(params[:theme_option]) if params[:theme_option].present?
  current_theme.set_metas(params[:theme_meta]) if params[:theme_meta].present?
  current_theme.set_field_values(cama_permitted_field_options('Theme'))

  # permit saving extra/custom values by this hook
  hook_run(current_theme.settings, 'on_theme_settings', current_theme)
  flash[:notice] = t('camaleon_cms.admin.message.updated_success', default: 'Theme updated successfully')
  redirect_to action: :theme
end

#shortcodesObject

render the list of shortcodes



44
45
46
# File 'app/controllers/camaleon_cms/admin/settings_controller.rb', line 44

def shortcodes
  add_breadcrumb I18n.t('camaleon_cms.admin.sidebar.shortcodes')
end

#siteObject



15
16
17
18
19
20
# File 'app/controllers/camaleon_cms/admin/settings_controller.rb', line 15

def site
  return redirect_to cama_admin_settings_theme_path if params[:tab].present? && params[:tab] == 'theme'

  add_breadcrumb I18n.t('camaleon_cms.admin.sidebar.general_site')
  @site = current_site
end

#site_savedObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/controllers/camaleon_cms/admin/settings_controller.rb', line 22

def site_saved
  @site = current_site
  cache_slug = @site.slug
  if @site.update(params.require(:site).permit(:name, :slug, :description))
    @site.set_options(params[:options]) if params[:options].present?
    @site.set_metas(params[:metas]) if params[:metas].present?
    @site.set_field_values(cama_permitted_field_options('Site'))
    flash[:notice] = t('camaleon_cms.admin.settings.message.site_updated')
    args = { action: :site }
    args[:host], args[:port] = @site.get_domain.to_s.split(':') if cache_slug != @site.slug
    redirect_to(args, allow_other_host: true)
  else
    render 'site'
  end
end

#test_emailObject

send email test



77
78
79
80
81
82
83
# File 'app/controllers/camaleon_cms/admin/settings_controller.rb', line 77

def test_email
  data = { content: 'Test content', current_site: current_site, url_base: cama_root_url }
  CamaleonCms::HtmlMailer.sender(params[:email], 'Test', data).deliver_now
  head :ok
rescue StandardError => e
  render plain: e.message, status: :bad_gateway
end

#themeObject



60
61
62
# File 'app/controllers/camaleon_cms/admin/settings_controller.rb', line 60

def theme
  add_breadcrumb I18n.t('camaleon_cms.admin.settings.theme_setting', default: 'Theme Settings')
end