require_dependency "pages_cms/application_controller" module PagesCms class Admin::PagesController < ApplicationController before_action :logged_in_admin before_action :selected_account def index @pages = current_account.pages.where(parent_id: nil).includes(:children).order(:order) end def create @page = current_account.pages.build(page_params) if @page.save Rails.application.reload_routes! flash[:success] = 'Page created' redirect_to edit_admin_page_path(@page.id) else flash[:danger] = "Page create failed: #{@page.errors.full_messages.to_sentence}." redirect_to admin_pages_path end end def edit @page = Page.find(params[:id]) if @page.sidebar.nil? @sidebar = @page.build_sidebar else @sidebar = @page.sidebar end end def update @page = Page.find(params[:id]) if @page.update(page_params) flash[:success] = 'Page updated' redirect_to edit_admin_page_path(@page) else flash[:danger] = "Page update failed: #{@page.errors.full_messages.to_sentence}." redirect_to edit_admin_page_path(@page) end end def order order_list = params[:order][:data] logger.debug(order_list) order_list.each do |position| Page.find(position).update(order: order_list.index(position) ) end respond_to do |format| format.json { head :ok } end end def destroy Page.find(params[:id]).destroy flash[:success] = 'Page deleted' redirect_to admin_pages_path end private def page_params params.require(:page).permit! #( # :title, :meta_tags, :meta_description, :draft, :parent_id, :order, :navbar_show, :sidebar_show, # slider_attributes: [:header, :link, :order, :show, :image_id, :page_id], # sidebar_attributes: [:use_instead, :content, :links, :show, :fb_feed, :tw_feed, :page_id], # page_blocks_attributes: [ :name, :order, :div_id, :page_id, # thumbnails_attributes: [:content, :link, :order, :page_block_id, :image_id], # text_boxes_attributes: [:content, :order, :css_class, :page_block_id], # image_boxes_attributes: [:content, :heading, :order, :page_block_id], # blog_feeds_attributes: [:limit, :page_block_id], # ] # ) end end end