Sha256: 3c2f19d361cb1afca4eb0f4b75d1f94cd3b871d732c51efc1ca089cccd1fc521

Contents?: true

Size: 1.48 KB

Versions: 20

Compression:

Stored size: 1.48 KB

Contents

module Virgo
  class Admin::PageModulesController < Admin::BaseController
    before_action :set_site
    before_action :set_page_module, only: [:edit_subject]

    layout 'virgo/admin/site_settings'

    def edit
      authorize! :manage, PageModule

      @page_modules = PageModule.visible_to_admins.order(weight: :asc)
    end

    def edit_subject
      if request.patch?
        if @page_module.update(page_module_params)
          @page_module.page_module_posts.map &:destroy
          if params[:post_ids].present?
            params[:post_ids].each_with_index do |post_id, index|
              @page_module.page_module_posts.create!(post_id: post_id, position: index)
            end
          end
          flash[:notice] = "Settings updated successfully"
          redirect_to admin_edit_page_module_subject_path(@page_module) and return
        end
      end
    end

    def update
      authorize! :manage, PageModule

      params[:page_modules].each_pair do |id, enabled_val|
        page_module = PageModule.find(id)

        page_module.update!(enabled: enabled_val)
      end

      flash[:notice] = "Page module settings updated"

      redirect_to admin_page_modules_edit_path
    end

    private

    def set_site
      @site = Site.instance

      authorize! :manage, @site
    end

    def set_page_module
      @page_module = PageModule.find(params[:id])
    end

    def page_module_params
      params.permit(page_module: [:subject_id, :subject_type, :image])[:page_module]
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
virgo-0.2.6 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.2.5 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.2.4 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.2.2 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.2.1 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.2 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.1.16 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.1.15 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.1.14 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.1.13 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.1.12 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.1.11 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.1.10 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.1.8 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.1.7 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.1.6 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.1.5 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.1.4 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.1.3 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.1.2 app/controllers/virgo/admin/page_modules_controller.rb