class Admin::PagesController
def assign_page_attributes
def assign_page_attributes if params[:page_id].blank? self.model.slug = '/' end self.model.parent_id = params[:page_id] end
def count_deleted_pages
def count_deleted_pages @count = model.children.count + 1 end
def index
def index @homepage = Page.find_by_parent_id(nil) response_for :plural end
def initialize_meta_rows_and_buttons
def initialize_meta_rows_and_buttons @buttons_partials ||= [] @meta ||= [] @meta << {:field => "slug", :type => "text_field", :args => [{:class => 'textbox', :maxlength => 100}]} @meta << {:field => "breadcrumb", :type => "text_field", :args => [{:class => 'textbox', :maxlength => 160}]} end
def model_class
def model_class if Page.descendants.any? { |d| d.to_s == params[:page_class] } verify_page_class(params[:page_class]) elsif params[:page_id] Page.find(params[:page_id]).children else Page end end
def new
def new @page = self.model = model_class.new_with_defaults(trusty_config) assign_page_attributes response_for :new end
def preview
def preview render_preview rescue PreviewStop => exception render :text => exception.message unless @performed_render end
def process_with_exception(page)
def process_with_exception(page) page.process(request, response) @performed_render = true render template: 'site/show_page', layout: false raise PreviewStop end
def render_preview
def render_preview params.permit! Page.transaction do page_class = Page.descendants.include?(model_class) ? model_class : Page if request.referer =~ %r{/admin/pages/(\d+)/edit} page = Page.find($1).becomes(page_class) layout_id = page.layout_id page.update_attributes(params[:page]) page.published_at ||= Time.now else page = page_class.new(params[:page]) page.published_at = page.updated_at = page.created_at = Time.now page.parent = Page.find($1) if request.referer =~ %r{/admin/pages/(\d+)/children/new} end page.pagination_parameters = pagination_parameters process_with_exception(page) end end
def save_table_position
def save_table_position new_position = params[:new_position] Page.save_order(new_position) head :ok end
def validation_error(e)
def validation_error(e) flash[:error] = e.message render :new end
def verify_page_class(page_class)
def verify_page_class(page_class) if page_class.constantize.ancestors.include?(Page) page_class.constantize else raise "I'm not allowed to constantize #{page_class}!" end end