@@ -484,40 +484,6 private | |||||
484 | render_404 |
|
484 | render_404 | |
485 | end |
|
485 | end | |
486 |
|
486 | |||
487 | # Retrieve query from session or build a new query |
|
|||
488 | def retrieve_query |
|
|||
489 | if !params[:query_id].blank? |
|
|||
490 | cond = "project_id IS NULL" |
|
|||
491 | cond << " OR project_id = #{@project.id}" if @project |
|
|||
492 | @query = Query.find(params[:query_id], :conditions => cond) |
|
|||
493 | @query.project = @project |
|
|||
494 | session[:query] = {:id => @query.id, :project_id => @query.project_id} |
|
|||
495 | sort_clear |
|
|||
496 | else |
|
|||
497 | if api_request? || params[:set_filter] || session[:query].nil? || session[:query][:project_id] != (@project ? @project.id : nil) |
|
|||
498 | # Give it a name, required to be valid |
|
|||
499 | @query = Query.new(:name => "_") |
|
|||
500 | @query.project = @project |
|
|||
501 | if params[:fields] and params[:fields].is_a? Array |
|
|||
502 | params[:fields].each do |field| |
|
|||
503 | @query.add_filter(field, params[:operators][field], params[:values][field]) |
|
|||
504 | end |
|
|||
505 | else |
|
|||
506 | @query.available_filters.keys.each do |field| |
|
|||
507 | @query.add_short_filter(field, params[field]) if params[field] |
|
|||
508 | end |
|
|||
509 | end |
|
|||
510 | @query.group_by = params[:group_by] |
|
|||
511 | @query.column_names = params[:query] && params[:query][:column_names] |
|
|||
512 | session[:query] = {:project_id => @query.project_id, :filters => @query.filters, :group_by => @query.group_by, :column_names => @query.column_names} |
|
|||
513 | else |
|
|||
514 | @query = Query.find_by_id(session[:query][:id]) if session[:query][:id] |
|
|||
515 | @query ||= Query.new(:name => "_", :project => @project, :filters => session[:query][:filters], :group_by => session[:query][:group_by], :column_names => session[:query][:column_names]) |
|
|||
516 | @query.project = @project |
|
|||
517 | end |
|
|||
518 | end |
|
|||
519 | end |
|
|||
520 |
|
||||
521 | # Rescues an invalid query statement. Just in case... |
|
487 | # Rescues an invalid query statement. Just in case... | |
522 | def query_statement_invalid(exception) |
|
488 | def query_statement_invalid(exception) | |
523 | logger.error "Query::StatementInvalid: #{exception.message}" if logger |
|
489 | logger.error "Query::StatementInvalid: #{exception.message}" if logger |
@@ -63,4 +63,38 module QueriesHelper | |||||
63 | h(value) |
|
63 | h(value) | |
64 | end |
|
64 | end | |
65 | end |
|
65 | end | |
|
66 | ||||
|
67 | # Retrieve query from session or build a new query | |||
|
68 | def retrieve_query | |||
|
69 | if !params[:query_id].blank? | |||
|
70 | cond = "project_id IS NULL" | |||
|
71 | cond << " OR project_id = #{@project.id}" if @project | |||
|
72 | @query = Query.find(params[:query_id], :conditions => cond) | |||
|
73 | @query.project = @project | |||
|
74 | session[:query] = {:id => @query.id, :project_id => @query.project_id} | |||
|
75 | sort_clear | |||
|
76 | else | |||
|
77 | if api_request? || params[:set_filter] || session[:query].nil? || session[:query][:project_id] != (@project ? @project.id : nil) | |||
|
78 | # Give it a name, required to be valid | |||
|
79 | @query = Query.new(:name => "_") | |||
|
80 | @query.project = @project | |||
|
81 | if params[:fields] and params[:fields].is_a? Array | |||
|
82 | params[:fields].each do |field| | |||
|
83 | @query.add_filter(field, params[:operators][field], params[:values][field]) | |||
|
84 | end | |||
|
85 | else | |||
|
86 | @query.available_filters.keys.each do |field| | |||
|
87 | @query.add_short_filter(field, params[field]) if params[field] | |||
|
88 | end | |||
|
89 | end | |||
|
90 | @query.group_by = params[:group_by] | |||
|
91 | @query.column_names = params[:query] && params[:query][:column_names] | |||
|
92 | session[:query] = {:project_id => @query.project_id, :filters => @query.filters, :group_by => @query.group_by, :column_names => @query.column_names} | |||
|
93 | else | |||
|
94 | @query = Query.find_by_id(session[:query][:id]) if session[:query][:id] | |||
|
95 | @query ||= Query.new(:name => "_", :project => @project, :filters => session[:query][:filters], :group_by => session[:query][:group_by], :column_names => session[:query][:column_names]) | |||
|
96 | @query.project = @project | |||
|
97 | end | |||
|
98 | end | |||
|
99 | end | |||
66 | end |
|
100 | end |
General Comments 0
You need to be logged in to leave comments.
Login now