@@ -47,7 +47,7 class QueriesController < ApplicationController | |||||
47 | @query.user = User.current |
|
47 | @query.user = User.current | |
48 | @query.project = @project |
|
48 | @query.project = @project | |
49 | @query.is_public = false unless User.current.allowed_to?(:manage_public_queries, @project) || User.current.admin? |
|
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 | end |
|
51 | end | |
52 |
|
52 | |||
53 | def create |
|
53 | def create | |
@@ -55,7 +55,7 class QueriesController < ApplicationController | |||||
55 | @query.user = User.current |
|
55 | @query.user = User.current | |
56 | @query.project = params[:query_is_for_all] ? nil : @project |
|
56 | @query.project = params[:query_is_for_all] ? nil : @project | |
57 | @query.is_public = false unless User.current.allowed_to?(:manage_public_queries, @project) || User.current.admin? |
|
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 | @query.column_names = nil if params[:default_columns] |
|
59 | @query.column_names = nil if params[:default_columns] | |
60 |
|
60 | |||
61 | if @query.save |
|
61 | if @query.save | |
@@ -73,7 +73,7 class QueriesController < ApplicationController | |||||
73 | @query.attributes = params[:query] |
|
73 | @query.attributes = params[:query] | |
74 | @query.project = nil if params[:query_is_for_all] |
|
74 | @query.project = nil if params[:query_is_for_all] | |
75 | @query.is_public = false unless User.current.allowed_to?(:manage_public_queries, @project) || User.current.admin? |
|
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 | @query.column_names = nil if params[:default_columns] |
|
77 | @query.column_names = nil if params[:default_columns] | |
78 |
|
78 | |||
79 | if @query.save |
|
79 | if @query.save |
@@ -131,7 +131,7 module QueriesHelper | |||||
131 | # Give it a name, required to be valid |
|
131 | # Give it a name, required to be valid | |
132 | @query = IssueQuery.new(:name => "_") |
|
132 | @query = IssueQuery.new(:name => "_") | |
133 | @query.project = @project |
|
133 | @query.project = @project | |
134 |
build_ |
|
134 | @query.build_from_params(params) | |
135 | session[:query] = {:project_id => @query.project_id, :filters => @query.filters, :group_by => @query.group_by, :column_names => @query.column_names} |
|
135 | session[:query] = {:project_id => @query.project_id, :filters => @query.filters, :group_by => @query.group_by, :column_names => @query.column_names} | |
136 | else |
|
136 | else | |
137 | # retrieve from session |
|
137 | # retrieve from session | |
@@ -157,17 +157,4 module QueriesHelper | |||||
157 | @query |
|
157 | @query | |
158 | end |
|
158 | end | |
159 | end |
|
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 | end |
|
160 | end |
@@ -158,6 +158,21 class Query < ActiveRecord::Base | |||||
158 | @is_for_all = project.nil? |
|
158 | @is_for_all = project.nil? | |
159 | end |
|
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 | def validate_query_filters |
|
176 | def validate_query_filters | |
162 | filters.each_key do |field| |
|
177 | filters.each_key do |field| | |
163 | if values_for(field) |
|
178 | if values_for(field) |
General Comments 0
You need to be logged in to leave comments.
Login now