render_404
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...
def query_statement_invalid(exception)
logger.error "Query::StatementInvalid: #{exception.message}" if logger
h(value)
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