Sha256: a927a2ca1174f2a23c4b99e44c35965acb84c5f148fec873be578df87ade3467

Contents?: true

Size: 959 Bytes

Versions: 3

Compression:

Stored size: 959 Bytes

Contents

class PagesController < CmsController
  before_filter :find_page, only: :show

  private

  def find_page
    page_scope = ActiveadminSelleoCms::Page
    root = ActiveadminSelleoCms::Page.root

    raise "Create at least one page" unless root

    if parent = ActiveadminSelleoCms::Page.find_by_slug(params[:page_id])
      page_scope = page_scope.where(parent_id: parent.id)
    end

    @page = page_scope.find_by_slug(params[:id])

    if !@page or (!@page.is_published? and @page != root)
      redirect_to page_path(I18n.locale, root)
    end
  end

  public

  def show
    @page.update_column(:views, (@page.views || 0) + 1)
    render action: :show, layout: @page.layout_name
  end

  def index
    respond_to do |format|
      format.html { redirect_to page_path(I18n.locale, ActiveadminSelleoCms::Page.root) }
      format.json { render text: ActiveadminSelleoCms::Page.published.map{|p| [p.title, p.url(locale: false)]}.to_json }
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
activeadmin-selleo-cms-0.0.18 app/controllers/pages_controller.rb
activeadmin-selleo-cms-0.0.17 app/controllers/pages_controller.rb
activeadmin-selleo-cms-0.0.16 app/controllers/pages_controller.rb