Sha256: ce7ef6095df9cc9588410a44cf3b7e2589b7a676b824957c7bfd0810e8ab63ae

Contents?: true

Size: 1.58 KB

Versions: 9

Compression:

Stored size: 1.58 KB

Contents

module Locomotive
  class PagesController < BaseController

    account_required & within_site

    localized

    before_filter :back_to_default_site_locale, only: %w(new create)

    before_filter :load_page, only: [:edit, :update, :sort, :destroy]

    respond_to :json, only: [:sort]

    def new
      authorize Page
      @page = current_site.pages.build
      respond_with @page
    end

    def create
      authorize Page
      @page = service.create(page_params)
      respond_with @page, location: -> { edit_page_path(current_site, @page) }
    end

    def edit
      authorize @page
      @page.find_layout
      respond_with @page
    end

    def update
      authorize @page
      service.update(@page, page_params)
      respond_with @page, location: edit_page_path(current_site, @page)
    end

    def destroy
      authorize @page
      service.destroy(@page)
      respond_with @page, location: editable_elements_path(current_site, current_site.pages.root.first)
    end

    def sort
      authorize @page, :update?
      service.sort(@page, params.require(:children))
      respond_with @page, location: edit_page_path(current_site, @page)
    end

    private

    def load_page
      @page = current_site.pages.find(params[:id])
    end

    def page_params
      params.require(:page).permit(:title, :layout_id, :slug, :parent_id, :listed, :published, :redirect, :redirect_url, :redirect_type, :seo_title, :meta_description, :meta_keywords, :cache_enabled)
    end

    def service
      @service ||= Locomotive::PageService.new(current_site, current_locomotive_account)
    end

  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
locomotivecms-3.0.1 app/controllers/locomotive/pages_controller.rb
locomotivecms-3.0.0 app/controllers/locomotive/pages_controller.rb
locomotivecms-3.0.0.rc7 app/controllers/locomotive/pages_controller.rb
locomotivecms-3.0.0.rc6 app/controllers/locomotive/pages_controller.rb
locomotivecms-3.0.0.rc5 app/controllers/locomotive/pages_controller.rb
locomotivecms-3.0.0.rc4 app/controllers/locomotive/pages_controller.rb
locomotivecms-3.0.0.rc3 app/controllers/locomotive/pages_controller.rb
locomotivecms-3.0.0.rc2 app/controllers/locomotive/pages_controller.rb
locomotivecms-3.0.0.rc1 app/controllers/locomotive/pages_controller.rb