Sha256: 9f38a8a73874f83161c88154dbc258d2a8afa3b5063c7f042d9832ba6af98781

Contents?: true

Size: 1.9 KB

Versions: 3

Compression:

Stored size: 1.9 KB

Contents

module Refinery
  module Inquiries
    module Admin
      class SettingsController < Refinery::AdminController

        before_action :find_setting, :only => [:edit, :update]
        after_action :save_subject_for_confirmation,
          :save_message_for_confirmation, :save_notification_recipients, :only => :update

        def edit
        end

        def update
          flash[:notice] = t('refinery.crudify.updated', :what => @setting.name.gsub("inquiry_", "").titleize)

          unless request.xhr? or from_dialog?
            redirect_back_or_default(refinery.inquiries_admin_inquiries_path)
          else
            render text: "<script type='text/javascript'>parent.window.location = '#{refinery.inquiries_admin_inquiries_path}';</script>"
          end
        end

      protected

        def find_setting
          setting = params[:id].gsub("inquiry_", "")

          if Refinery::Inquiries::Setting.respond_to?(setting)
            Refinery::Inquiries::Setting.send(setting)
          end

          @setting = Refinery::Setting.friendly.find(params[:id])
        end

        def save_notification_recipients
          if setting_params.include?('value')
            Refinery::Inquiries::Setting.notification_recipients = setting_params[:value]
          end
        end

        def save_subject_for_confirmation
          if setting_params.include?('subject')
            Refinery::Inquiries::Setting.confirmation_subject = setting_params[:subject]
          end
        end

        def save_message_for_confirmation
          if setting_params.include?('message')
            Refinery::Inquiries::Setting.confirmation_message = setting_params[:message]
          end
        end

      private

        def setting_params
          params.require(:setting).permit(:value,
            subject: Refinery::I18n.frontend_locales,
            message: Refinery::I18n.frontend_locales)
        end

      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
refinerycms-inquiries-3.1.0 app/controllers/refinery/inquiries/admin/settings_controller.rb
refinerycms-inquiries-3.0.1 app/controllers/refinery/inquiries/admin/settings_controller.rb
refinerycms-inquiries-3.0.0 app/controllers/refinery/inquiries/admin/settings_controller.rb