Refactor: move method to helper.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3691 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
dfc448030d
commit
df7edb843b
@ -484,40 +484,6 @@ private
|
|||||||
render_404
|
render_404
|
||||||
end
|
end
|
||||||
|
|
||||||
# Retrieve query from session or build a new query
|
|
||||||
def retrieve_query
|
|
||||||
if !params[:query_id].blank?
|
|
||||||
cond = "project_id IS NULL"
|
|
||||||
cond << " OR project_id = #{@project.id}" if @project
|
|
||||||
@query = Query.find(params[:query_id], :conditions => cond)
|
|
||||||
@query.project = @project
|
|
||||||
session[:query] = {:id => @query.id, :project_id => @query.project_id}
|
|
||||||
sort_clear
|
|
||||||
else
|
|
||||||
if api_request? || params[:set_filter] || session[:query].nil? || session[:query][:project_id] != (@project ? @project.id : nil)
|
|
||||||
# Give it a name, required to be valid
|
|
||||||
@query = Query.new(:name => "_")
|
|
||||||
@query.project = @project
|
|
||||||
if params[:fields] and params[:fields].is_a? Array
|
|
||||||
params[:fields].each do |field|
|
|
||||||
@query.add_filter(field, params[:operators][field], params[:values][field])
|
|
||||||
end
|
|
||||||
else
|
|
||||||
@query.available_filters.keys.each do |field|
|
|
||||||
@query.add_short_filter(field, params[field]) if params[field]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@query.group_by = params[:group_by]
|
|
||||||
@query.column_names = params[:query] && params[:query][:column_names]
|
|
||||||
session[:query] = {:project_id => @query.project_id, :filters => @query.filters, :group_by => @query.group_by, :column_names => @query.column_names}
|
|
||||||
else
|
|
||||||
@query = Query.find_by_id(session[:query][:id]) if session[:query][:id]
|
|
||||||
@query ||= Query.new(:name => "_", :project => @project, :filters => session[:query][:filters], :group_by => session[:query][:group_by], :column_names => session[:query][:column_names])
|
|
||||||
@query.project = @project
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Rescues an invalid query statement. Just in case...
|
# Rescues an invalid query statement. Just in case...
|
||||||
def query_statement_invalid(exception)
|
def query_statement_invalid(exception)
|
||||||
logger.error "Query::StatementInvalid: #{exception.message}" if logger
|
logger.error "Query::StatementInvalid: #{exception.message}" if logger
|
||||||
|
@ -63,4 +63,38 @@ module QueriesHelper
|
|||||||
h(value)
|
h(value)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Retrieve query from session or build a new query
|
||||||
|
def retrieve_query
|
||||||
|
if !params[:query_id].blank?
|
||||||
|
cond = "project_id IS NULL"
|
||||||
|
cond << " OR project_id = #{@project.id}" if @project
|
||||||
|
@query = Query.find(params[:query_id], :conditions => cond)
|
||||||
|
@query.project = @project
|
||||||
|
session[:query] = {:id => @query.id, :project_id => @query.project_id}
|
||||||
|
sort_clear
|
||||||
|
else
|
||||||
|
if api_request? || params[:set_filter] || session[:query].nil? || session[:query][:project_id] != (@project ? @project.id : nil)
|
||||||
|
# Give it a name, required to be valid
|
||||||
|
@query = Query.new(:name => "_")
|
||||||
|
@query.project = @project
|
||||||
|
if params[:fields] and params[:fields].is_a? Array
|
||||||
|
params[:fields].each do |field|
|
||||||
|
@query.add_filter(field, params[:operators][field], params[:values][field])
|
||||||
|
end
|
||||||
|
else
|
||||||
|
@query.available_filters.keys.each do |field|
|
||||||
|
@query.add_short_filter(field, params[field]) if params[field]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
@query.group_by = params[:group_by]
|
||||||
|
@query.column_names = params[:query] && params[:query][:column_names]
|
||||||
|
session[:query] = {:project_id => @query.project_id, :filters => @query.filters, :group_by => @query.group_by, :column_names => @query.column_names}
|
||||||
|
else
|
||||||
|
@query = Query.find_by_id(session[:query][:id]) if session[:query][:id]
|
||||||
|
@query ||= Query.new(:name => "_", :project => @project, :filters => session[:query][:filters], :group_by => session[:query][:group_by], :column_names => session[:query][:column_names])
|
||||||
|
@query.project = @project
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user