##// END OF EJS Templates
Fixed: unchecking status filter on the issue list has no effect (#6844)....
Jean-Philippe Lang -
r4273:63866407f123
parent child
Show More
@@ -78,10 +78,9 module QueriesHelper
78 # Give it a name, required to be valid
78 # Give it a name, required to be valid
79 @query = Query.new(:name => "_")
79 @query = Query.new(:name => "_")
80 @query.project = @project
80 @query.project = @project
81 if params[:fields] and params[:fields].is_a? Array
81 if params[:fields]
82 params[:fields].each do |field|
82 @query.filters = {}
83 @query.add_filter(field, params[:operators][field], params[:values][field])
83 @query.add_filters(params[:fields], params[:operators], params[:values])
84 end
85 else
84 else
86 @query.available_filters.keys.each do |field|
85 @query.available_filters.keys.each do |field|
87 @query.add_short_filter(field, params[field]) if params[field]
86 @query.add_short_filter(field, params[field]) if params[field]
@@ -258,8 +258,10 class Query < ActiveRecord::Base
258
258
259 # Add multiple filters using +add_filter+
259 # Add multiple filters using +add_filter+
260 def add_filters(fields, operators, values)
260 def add_filters(fields, operators, values)
261 fields.each do |field|
261 if fields.is_a?(Array) && operators.is_a?(Hash) && values.is_a?(Hash)
262 add_filter(field, operators[field], values[field])
262 fields.each do |field|
263 add_filter(field, operators[field], values[field])
264 end
263 end
265 end
264 end
266 end
265
267
@@ -114,3 +114,4 Event.observe(document,"dom:loaded", apply_filters_observer);
114 </td>
114 </td>
115 </tr>
115 </tr>
116 </table>
116 </table>
117 <%= hidden_field_tag 'fields[]', '' %>
@@ -125,11 +125,42 class IssuesControllerTest < ActionController::TestCase
125 assert_tag :tag => 'a', :content => /Issue of a private subproject/
125 assert_tag :tag => 'a', :content => /Issue of a private subproject/
126 end
126 end
127
127
128 def test_index_with_project_and_filter
128 def test_index_with_project_and_default_filter
129 get :index, :project_id => 1, :set_filter => 1
129 get :index, :project_id => 1, :set_filter => 1
130 assert_response :success
130 assert_response :success
131 assert_template 'index.rhtml'
131 assert_template 'index.rhtml'
132 assert_not_nil assigns(:issues)
132 assert_not_nil assigns(:issues)
133
134 query = assigns(:query)
135 assert_not_nil query
136 # default filter
137 assert_equal({'status_id' => {:operator => 'o', :values => ['']}}, query.filters)
138 end
139
140 def test_index_with_project_and_filter
141 get :index, :project_id => 1, :set_filter => 1,
142 :fields => ['tracker_id'],
143 :operators => {'tracker_id' => '='},
144 :values => {'tracker_id' => ['1']}
145 assert_response :success
146 assert_template 'index.rhtml'
147 assert_not_nil assigns(:issues)
148
149 query = assigns(:query)
150 assert_not_nil query
151 assert_equal({'tracker_id' => {:operator => '=', :values => ['1']}}, query.filters)
152 end
153
154 def test_index_with_project_and_empty_filters
155 get :index, :project_id => 1, :set_filter => 1, :fields => ['']
156 assert_response :success
157 assert_template 'index.rhtml'
158 assert_not_nil assigns(:issues)
159
160 query = assigns(:query)
161 assert_not_nil query
162 # no filter
163 assert_equal({}, query.filters)
133 end
164 end
134
165
135 def test_index_with_query
166 def test_index_with_query
General Comments 0
You need to be logged in to leave comments. Login now