Sha256: bcb5d0d1bb19645754e9e8f710af863395b806a1913ab27e3e72ec5ebb1321b0

Contents?: true

Size: 1.19 KB

Versions: 4

Compression:

Stored size: 1.19 KB

Contents

# frozen_string_literal: true

module Decidim
  module DecidimAwesome
    module Admin
      # Global configuration controller
      class ConfigController < DecidimAwesome::Admin::ApplicationController
        include NeedsAwesomeConfig
        include ConfigConstraintsHelpers
        helper ConfigConstraintsHelpers

        layout "decidim/admin/decidim_awesome"

        helper_method :constraints_for

        def show
          @form = form(ConfigForm).from_params(organization_awesome_config)
        end

        def update
          @form = form(ConfigForm).from_params(params)

          UpdateConfig.call(@form) do
            on(:ok) do
              flash[:notice] = I18n.t("config.update.success", scope: "decidim.decidim_awesome.admin")
              redirect_to decidim_admin_decidim_awesome.config_path
            end

            on(:invalid) do |message|
              flash.now[:alert] = I18n.t("config.update.error", error: message, scope: "decidim.decidim_awesome.admin")
              render :show
            end
          end
        end

        private

        def constraints_for(key)
          awesome_config_instance.setting_for(key)&.constraints
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
decidim-decidim_awesome-0.6.2 app/controllers/decidim/decidim_awesome/admin/config_controller.rb
decidim-decidim_awesome-0.6.1 app/controllers/decidim/decidim_awesome/admin/config_controller.rb
decidim-decidim_awesome-0.6.0 app/controllers/decidim/decidim_awesome/admin/config_controller.rb
decidim-decidim_awesome-0.5.1 app/controllers/decidim/decidim_awesome/admin/config_controller.rb