2014-04-14 10:40:17 +00:00
|
|
|
class OrbitAdminController < ApplicationController
|
2014-05-01 07:14:16 +00:00
|
|
|
include OrbitCoreLib::Authorize
|
|
|
|
include Authorize
|
2014-05-01 08:44:01 +00:00
|
|
|
include OrbitBackendHelper
|
|
|
|
|
2014-08-05 13:51:05 +00:00
|
|
|
before_action :authenticate_user, :log_user_action, :load_authorized_categories
|
2014-04-30 10:57:09 +00:00
|
|
|
layout "back_end"
|
2014-05-14 02:59:36 +00:00
|
|
|
|
|
|
|
def sort
|
|
|
|
unless params[:sort].blank?
|
|
|
|
case params[:sort]
|
|
|
|
when "status"
|
|
|
|
@sort = [[:is_top, params[:order]],
|
2014-07-16 07:14:13 +00:00
|
|
|
[:is_hot, params[:order]],
|
|
|
|
[:is_hidden,params[:order]]]
|
2014-05-14 02:59:36 +00:00
|
|
|
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]}
|
2014-07-16 07:14:13 +00:00
|
|
|
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]}
|
2014-08-07 10:44:23 +00:00
|
|
|
else
|
2014-09-23 09:06:17 +00:00
|
|
|
s = Sanitize.clean(params[:sort]).to_sym
|
|
|
|
@sort = {s=>params[:order]}
|
2014-05-14 02:59:36 +00:00
|
|
|
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"}],
|
2014-06-18 06:49:19 +00:00
|
|
|
: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}}
|
2014-05-14 02:59:36 +00:00
|
|
|
}
|
|
|
|
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
|
|
|
|
|
2014-08-07 10:44:23 +00:00
|
|
|
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
|
|
|
|
|
2014-08-05 13:51:05 +00:00
|
|
|
def load_authorized_categories
|
2014-10-20 10:50:36 +00:00
|
|
|
@user_authenticated_categories = current_user.is_admin? ? ["all"] : current_user.approved_categories.collect{|c| c.id} rescue []
|
2014-07-30 13:40:02 +00:00
|
|
|
end
|
|
|
|
|
2014-07-31 08:48:09 +00:00
|
|
|
|
2014-04-14 10:40:17 +00:00
|
|
|
end
|