Sha256: 4d33395a997fe71cdfa898b3fb060d4f0b3ab82b99a84c44e0adce9b74cdf749

Contents?: true

Size: 1.51 KB

Versions: 20

Compression:

Stored size: 1.51 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_params.nil? || @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.3.17 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.3.16 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.3.15 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.3.14 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.3.13 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.3.12 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.3.11 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.3.10 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.3.9 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.3.8 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.3.7 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.3.6 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.3.4 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.3.3 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.3.2 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.3.1 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.3 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.2.9 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.2.8 app/controllers/virgo/admin/page_modules_controller.rb
virgo-0.2.7 app/controllers/virgo/admin/page_modules_controller.rb