Class: Plum::Cp::SiteSettingsController
- Inherits:
-
BaseController
- Object
- ApplicationController
- ApplicationController
- BaseController
- Plum::Cp::SiteSettingsController
- Defined in:
- app/controllers/plum/cp/site_settings_controller.rb
Instance Method Summary collapse
Instance Method Details
#edit ⇒ Object
17 18 |
# File 'app/controllers/plum/cp/site_settings_controller.rb', line 17 def edit end |
#image_field ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'app/controllers/plum/cp/site_settings_controller.rb', line 43 def image_field asset_id = params[:asset_id].presence if asset_id && !current_site.assets.exists?(id: asset_id) return render json: { error: "Image is not available" }, status: :unprocessable_entity end if @site_settings.update(logo: asset_id&.to_s) render json: { saved: true, asset_id: asset_id&.to_i } else render json: { error: @site_settings.errors..to_sentence }, status: :unprocessable_entity end end |
#show ⇒ Object
13 14 15 |
# File 'app/controllers/plum/cp/site_settings_controller.rb', line 13 def show redirect_to edit_cp_site_settings_path end |
#update ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'app/controllers/plum/cp/site_settings_controller.rb', line 20 def update settings_attributes = site_settings_params theme_settings_by_theme = settings_attributes.delete(:theme_settings_by_theme).to_h locales = normalized_locales(settings_attributes.delete(:locales)) default_locale = settings_attributes.delete(:default_locale).to_s @site_settings.assign_attributes(settings_attributes) unless locales.any? && locales.include?(default_locale) @site_settings.errors.add(:base, "Locales must be valid codes and include the default locale") return render :edit, status: :unprocessable_entity end if @site_settings.save site_settings = current_site.settings.to_h.merge("locales" => locales, "default_locale" => default_locale) current_site.update!(theme_settings: theme_settings_for(@site_settings.theme_name, theme_settings_by_theme), settings: site_settings) redirect_to edit_cp_site_settings_path, notice: "Site settings updated" else render :edit, status: :unprocessable_entity end end |