class OrbitAdminController < ApplicationController include OrbitCoreLib::Authorize include Authorize include OrbitBackendHelper before_action :authenticate_user, :log_user_action, :load_authorized_categories layout "back_end" def sort unless params[:sort].blank? case params[:sort] when "status" @sort = [[:is_top, params[:order]], [:is_hot, params[:order]], [:is_hidden,params[:order]]] when "category" @sort = {:category_id=>params[:order]} when "start_date" @sort = {:postdate=>params[:order]} when "end_date" @sort = {:deadline=>params[:order]} when "last_modified" @sort = {:update_user_id=>params[:order]} when "banner" @sort = {'banner_id'=>params[:order]} when "banner_name" @sort = {:title=>params[:order]} when "effect" @sort = {:ad_fx=>params[:order]} when "transition_interval" @sort = {:timeout=>params[:order]} when "transition_speed" @sort = {:speed=>params[:order]} when "size" @sort = {:height=>params[:order]} when "link" @sort = {:out_link=>params[:order]} else s = Sanitize.clean(params[:sort]).to_sym @sort = {s=>params[:order]} end else @sort = {:created_at=>'desc'} end @sort end def filter_fields(categories, tags) { :status=>[{:title=>"is_top",:id=>"is_top"},{:title=>"is_hot",:id=>"is_hot"},{:title=>"is_hidden",:id=>"is_hidden"}], :category=>categories.map{|c| {:title=>(c.title.blank? ? " " : c.title), :id=>c.id}}, :tags=>tags.map{|tag| {:title=>(tag.name.blank? ? " " : tag.name), :id=>tag.id}} } end def filters(type) case type when "status" params[:filters][:status].blank? ? [] : params[:filters][:status] rescue [] when "category" params[:filters][:category].blank? ? [] : params[:filters][:category] rescue [] when "tag" params[:filters][:tags].blank? ? [] : params[:filters][:tags] rescue [] end end def search_data(data, fields) if params[:keywords].present? key_string = params[:keywords] key_string = key_string.strip.nil? ? key_string : key_string.strip keywords = key_string.split(/\s+(?=(?:[^"]*"[^"]*")*[^"]*$)/) regex = Regexp.union(keywords.map{|word| Regexp.new(".*"+word+".*", "i")}) data = data.any_of(fields.map{|f| {f.to_sym => regex} }) end data end def load_authorized_categories @user_authenticated_categories = current_user.is_admin? ? ["all"] : current_user.approved_categories.collect{|c| c.id} rescue [] end end