Sha256: 6e3a2a88910769473e0258554d343ad44a2a7da347b445005f5f86a1be84d699

Contents?: true

Size: 1.22 KB

Versions: 7

Compression:

Stored size: 1.22 KB

Contents

module PandaCms
  class PagesController < ApplicationController
    include ActionView::Helpers::TagHelper

    def root
      params[:path] = ""
      show
    end

    def show
      if PandaCms.require_login_to_view && !user_signed_in?
        redirect_to panda_cms_maintenance_path and return
      end

      path_to_find = "/" + params[:path].to_s
      page = Page.find_by(path: path_to_find) || Page.find_by(path: "/404")
      PandaCms::Current.page = page

      if page
        globals = {
          page: page,
          title: page.title
        }

        RecordVisitJob.perform_later(
          url: request.url,
          user_agent: request.user_agent,
          referrer: request.referrer,
          ip_address: request.remote_ip,
          page_id: page.id,
          current_user_id: current_user&.id,
          params: params.to_unsafe_h.except(:controller, :action, :path),
          visited_at: Time.zone.now
        )

        render inline: "", assigns: globals, status: :ok, layout: page.template.file_path
      else
        # This works for now, but we may want to override in future (e.g. custom 404s)
        render file: "#{Rails.root}/public/404.html", layout: false, status: :not_found
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
panda_cms-0.3.13 app/controllers/panda_cms/pages_controller.rb
panda_cms-0.3.12 app/controllers/panda_cms/pages_controller.rb
panda_cms-0.3.11 app/controllers/panda_cms/pages_controller.rb
panda_cms-0.3.10 app/controllers/panda_cms/pages_controller.rb
panda_cms-0.3.9 app/controllers/panda_cms/pages_controller.rb
panda_cms-0.3.8 app/controllers/panda_cms/pages_controller.rb
panda_cms-0.3.7 app/controllers/panda_cms/pages_controller.rb