@@ -47,7 +47,7 class QueriesController < ApplicationController | |||
|
47 | 47 | @query.user = User.current |
|
48 | 48 | @query.project = @project |
|
49 | 49 | @query.is_public = false unless User.current.allowed_to?(:manage_public_queries, @project) || User.current.admin? |
|
50 |
build_ |
|
|
50 | @query.build_from_params(params) | |
|
51 | 51 | end |
|
52 | 52 | |
|
53 | 53 | def create |
@@ -55,7 +55,7 class QueriesController < ApplicationController | |||
|
55 | 55 | @query.user = User.current |
|
56 | 56 | @query.project = params[:query_is_for_all] ? nil : @project |
|
57 | 57 | @query.is_public = false unless User.current.allowed_to?(:manage_public_queries, @project) || User.current.admin? |
|
58 |
build_ |
|
|
58 | @query.build_from_params(params) | |
|
59 | 59 | @query.column_names = nil if params[:default_columns] |
|
60 | 60 | |
|
61 | 61 | if @query.save |
@@ -73,7 +73,7 class QueriesController < ApplicationController | |||
|
73 | 73 | @query.attributes = params[:query] |
|
74 | 74 | @query.project = nil if params[:query_is_for_all] |
|
75 | 75 | @query.is_public = false unless User.current.allowed_to?(:manage_public_queries, @project) || User.current.admin? |
|
76 |
build_ |
|
|
76 | @query.build_from_params(params) | |
|
77 | 77 | @query.column_names = nil if params[:default_columns] |
|
78 | 78 | |
|
79 | 79 | if @query.save |
@@ -131,7 +131,7 module QueriesHelper | |||
|
131 | 131 | # Give it a name, required to be valid |
|
132 | 132 | @query = IssueQuery.new(:name => "_") |
|
133 | 133 | @query.project = @project |
|
134 |
build_ |
|
|
134 | @query.build_from_params(params) | |
|
135 | 135 | session[:query] = {:project_id => @query.project_id, :filters => @query.filters, :group_by => @query.group_by, :column_names => @query.column_names} |
|
136 | 136 | else |
|
137 | 137 | # retrieve from session |
@@ -157,17 +157,4 module QueriesHelper | |||
|
157 | 157 | @query |
|
158 | 158 | end |
|
159 | 159 | end |
|
160 | ||
|
161 | def build_query_from_params | |
|
162 | if params[:fields] || params[:f] | |
|
163 | @query.filters = {} | |
|
164 | @query.add_filters(params[:fields] || params[:f], params[:operators] || params[:op], params[:values] || params[:v]) | |
|
165 | else | |
|
166 | @query.available_filters.keys.each do |field| | |
|
167 | @query.add_short_filter(field, params[field]) if params[field] | |
|
168 | end | |
|
169 | end | |
|
170 | @query.group_by = params[:group_by] || (params[:query] && params[:query][:group_by]) | |
|
171 | @query.column_names = params[:c] || (params[:query] && params[:query][:column_names]) | |
|
172 | end | |
|
173 | 160 | end |
@@ -158,6 +158,21 class Query < ActiveRecord::Base | |||
|
158 | 158 | @is_for_all = project.nil? |
|
159 | 159 | end |
|
160 | 160 | |
|
161 | # Builds the query from the given params | |
|
162 | def build_from_params(params) | |
|
163 | if params[:fields] || params[:f] | |
|
164 | self.filters = {} | |
|
165 | add_filters(params[:fields] || params[:f], params[:operators] || params[:op], params[:values] || params[:v]) | |
|
166 | else | |
|
167 | available_filters.keys.each do |field| | |
|
168 | add_short_filter(field, params[field]) if params[field] | |
|
169 | end | |
|
170 | end | |
|
171 | self.group_by = params[:group_by] || (params[:query] && params[:query][:group_by]) | |
|
172 | self.column_names = params[:c] || (params[:query] && params[:query][:column_names]) | |
|
173 | self | |
|
174 | end | |
|
175 | ||
|
161 | 176 | def validate_query_filters |
|
162 | 177 | filters.each_key do |field| |
|
163 | 178 | if values_for(field) |
General Comments 0
You need to be logged in to leave comments.
Login now