Sha256: 217dfb7abe8f1aa6fb38cf83d26d91ff82e5077729cbf347f1df78f1e9656cfa

Contents?: true

Size: 1.94 KB

Versions: 11

Compression:

Stored size: 1.94 KB

Contents

module Cms
  class DynamicViewsController < Cms::BaseController

    include Cms::AdminTab
    check_permissions :administrate

    before_filter :load_view, :only => [:show, :edit, :update, :destroy]

    helper_method :dynamic_view_type

    def index
      @views = dynamic_view_type.paginate(:page => params[:page]).order("name")
    end

    def new
      @view = dynamic_view_type.new_with_defaults
    end

    def create
      @view = dynamic_view_type.new(dynamic_view_params)
      if @view.save
        flash[:notice] = "#{dynamic_view_type} '#{@view.name}' was created"
        redirect_to engine_aware_path(dynamic_view_type)
      else
        render :action => "new"
      end
    end

    def show
      redirect_to [:edit, @view]
    end

    def update
      if @view.update(dynamic_view_params)
        flash[:notice] = "#{dynamic_view_type} '#{@view.name}' was updated"
        redirect_to engine_aware_path(dynamic_view_type)
      else
        render :action => "edit"
      end
    end

    def destroy
      @view.destroy
      flash[:notice] = "#{dynamic_view_type} '#{@view.name}' was deleted"
      redirect_to engine_aware_path(dynamic_view_type)
    end

    protected

    def dynamic_view_params
      params.require(view_param_name).permit(dynamic_view_type.permitted_params)
    end

    def view_param_name
      dynamic_view_type.model_name.param_key
    end

    def dynamic_view_type
      @dynamic_view_type ||= begin
        url = request.path.sub(/\?.*/, '')
        type_name = url.split('/')[2].classify
        begin
          type = "Cms::#{type_name}".constantize
        rescue NameError
          type = type_name.constantize rescue nil
        end
        raise "Invalid Type" unless type.ancestors.include?(DynamicView)
        type
      end
    end

    def set_menu_section
      @menu_section = dynamic_view_type.name.underscore.pluralize
    end

    def load_view
      @view = dynamic_view_type.find(params[:id])
    end

  end
end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
browsercms-artirix-4.0.4 app/controllers/cms/dynamic_views_controller.rb
browsercms-artirix-4.0.3.3 app/controllers/cms/dynamic_views_controller.rb
browsercms-artirix-4.0.3.2 app/controllers/cms/dynamic_views_controller.rb
browsercms-artirix-4.0.3.1 app/controllers/cms/dynamic_views_controller.rb
browsercms-artirix-4.0.3 app/controllers/cms/dynamic_views_controller.rb
browsercms-artirix-4.0.2 app/controllers/cms/dynamic_views_controller.rb
browsercms-artirix-4.0.1.1 app/controllers/cms/dynamic_views_controller.rb
browsercms-artirix-4.0.0.rc1.art4 app/controllers/cms/dynamic_views_controller.rb
browsercms-4.0.0.rc1 app/controllers/cms/dynamic_views_controller.rb
browsercms-4.0.0.beta app/controllers/cms/dynamic_views_controller.rb
browsercms-4.0.0.alpha app/controllers/cms/dynamic_views_controller.rb