adjust tag and sort

This commit is contained in:
JiangRu committed 2014-10-23 15:03:21 +08:00
1 parent 6b0a6a1fc8
commit d33b0fe5a7
13 files changed
+106 -282

No files matched your search

+43 -59
View File
@@ -9,70 +9,48 @@ class Admin::AsksController < OrbitAdminController
@app_title = "ask"
end
# 重新定義排序
def sort
unless params[:sort].blank?
case params[:sort]
when "status"
@sort = {:status=>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)
def filter_fields(categories, tags)
{
:status=>[{:title=>"待處理",:id=>"is_hot"},{:title=>"已處理",:id=>"is_top"},{:title=>"轉介其他單位",:id=>"is_hidden"}],
:category=>categories.map{|c| {:title=>(c.title.blank? ? " " : c.title), :id=>c.id}}
:situation=>[{:title=>"is_waiting",:id=>"is_waiting"},{:title=>"is_processed",:id=>"is_processed"},{:title=>"is_referral",:id=>"is_referral"}],
:category=>categories.map{|c| {:title=>(c.title.blank? ? " " : c.title), :id=>c.id}},
:identity=>tags.map{|tag| {:title=>(tag.name.blank? ? " " : tag.name), :id=>tag.id}}
}
end
# 抓取網址的狀態參數
def filter2(type)
case type
when "status"
params[:filters][:status].blank? ? [] : params[:filters][:status] rescue []
when "situation"
params[:filters][:situation].blank? ? [] : params[:filters][:situation] rescue []
when "identity"
params[:filters][:identity].blank? ? [] : params[:filters][:identity] rescue []
end
end
def index
@tags = @module_app.tags
@categories = @module_app.categories
@filter_fields = filter_fields(@categories)
@filter_fields = filter_fields(@categories, @tags)
# 列表欄位
@table_fields = [:status, :category, :title, 'ask.name', 'ask.created_at']
@table_fields = [:situation, :category, :title, 'ask.name', 'ask.created_at']
# 列表排序
if filter2("status").blank?
@askquestions = AskQuestion.order_by(sort) .with_categories(filters("category"))
# debugger
if filter2("situation").blank? and filter2("identity").blank?
@askquestions = AskQuestion.order_by(sort)
.with_categories(filters("category"))
elsif filter2("situation").blank?
@askquestions = AskQuestion.order_by(sort)
.with_categories(filters("category"))
.any_in(:identity => filter2("identity"))
elsif filter2("identity").blank?
@askquestions = AskQuestion.order_by(sort)
.with_categories(filters("category"))
.any_in(:situation => filter2("situation"))
else
@askquestions = AskQuestion.order_by(sort) .with_categories(filters("category")) .where(:status.in => filter2("status"))
@askquestions = AskQuestion.order_by(sort)
.with_categories(filters("category"))
.any_in(:identity => filter2("identity"))
.any_in(:situation => filter2("situation"))
end
# 分頁
@@ -82,6 +60,10 @@ class Admin::AsksController < OrbitAdminController
end
end
def search_tag(tag)
Tag.find(tag).name_translations{}
end
def edit
@ask_question = AskQuestion.find(params[:id])
@url = admin_ask_path(@ask_question)
@@ -149,16 +131,18 @@ class Admin::AsksController < OrbitAdminController
AskQuestion.human_attribute_name(:reply),
AskQuestion.human_attribute_name(:comment)]
@ask_questions.each do |ask_question|
csv << [ ask_question.category.title,
ask_question.name,
ask_question[:identity],
ask_question.mail,
ask_question.phone,
ask_question.fax,
ask_question.title,
ask_question.content,
ask_question.reply,
ask_question.comment ]
Tag.where({:id => ask_question[:identity]}).each do |tag|
csv << [ ask_question.category.title,
ask_question.name,
tag.name,
ask_question.mail,
ask_question.phone,
ask_question.fax,
ask_question.title,
ask_question.content,
ask_question.reply,
ask_question.comment ]
end
end
end
send_data csv.encode('Big5'), type: 'text/csv', filename: "Questions-#{date_start}-#{date_end}.csv"
+2
View File
@@ -7,10 +7,12 @@ class AsksController < ApplicationController
def index
module_app = ModuleApp.where(:key => "ask").first
categories = module_app.categories
tags = module_app.tags
ask_question = AskQuestion.new
{
"ask_question" => ask_question,
"categories" => categories,
"tags" => tags,
"module_app" => module_app
}
end