class Admin::PageContentsController < OrbitAdminController before_action ->(module_app = @app_title) { set_variables module_app } def index @table_fields = ["page_content.id", :name,:version,:update_at,:last_modified, :category] @filter_fields = {} if params[:sort].blank? && params[:keywords].blank? @pages = get_pages_sorted(Page.root) @pages = Kaminari.paginate_array(@pages).page(params[:page]).per(10) else @pages = Page.where(:module=>"page_content").order_by(sort) @pages = search_data(@pages,[:name, :page_id]).page(params[:page]).per(10) end @categories = @module_app.categories.enabled.authorized(current_user).collect{|c| [c.title, c.id]} render :partial => "index" if request.xhr? end def show @page_context = PageContext.find(params[:id]) end def new @page = Page.find(params[:page_id]) if can_edit_or_delete?(@page) @page_content = PageContext.new @options = {} @site_in_use_locales.each do |l| @options[l.to_s] = @page.wiki_pages.collect{|wp|[wp.title_translations[l], wp.uid]} end else render_401 end end def create PageContext.where("page_id" => params["page_context"]["page_id"]).destroy_all @page_content = PageContext.new(update_params) @page_content.update_user_id = current_user.id @page_content.save redirect_to params['referer_url'] end def view @table_fields = ["Name","Version","Updated At","Last Modified By"] @page = Page.find(params[:id]) @page_contexts = @page.page_contexts.desc(:version) end def save_category page_id = params[:page_id] category_id = params[:category_id] page = Page.find(page_id) rescue nil if !page.nil? page.category_id = category_id page.save end render :json => {"success" => true}.to_json end private def update_params params.require(:page_context).permit! end def get_pages_sorted(page) pages = [] page.child_page.asc(:number).each do |cp| if cp.child_page.blank? || cp.child_page.nil? pages << cp if cp.module == "page_content" else pages << cp if cp.module == "page_content" pages.concat(get_pages_sorted(cp)) end end pages end end