##// END OF EJS Templates
Adds query params as hidden field tags to the CSV export form (#22108)....
Jean-Philippe Lang -
r14820:aeea7f7e23d8
parent child
Show More
@@ -243,4 +243,34 module QueriesHelper
243 @query
243 @query
244 end
244 end
245 end
245 end
246
247 # Returns the query definition as hidden field tags
248 def query_as_hidden_field_tags(query)
249 tags = hidden_field_tag("set_filter", "1", :id => nil)
250
251 if query.filters.present?
252 query.filters.each do |field, filter|
253 tags << hidden_field_tag("f[]", field, :id => nil)
254 tags << hidden_field_tag("op[#{field}]", filter[:operator], :id => nil)
255 filter[:values].each do |value|
256 tags << hidden_field_tag("v[#{field}][]", value, :id => nil)
257 end
258 end
259 end
260 if query.column_names.present?
261 query.column_names.each do |name|
262 tags << hidden_field_tag("c[]", name, :id => nil)
263 end
264 end
265 if query.totalable_names.present?
266 query.totalable_names.each do |name|
267 tags << hidden_field_tag("t[]", name, :id => nil)
268 end
269 end
270 if query.group_by.present?
271 tags << hidden_field_tag("group_by", query.group_by, :id => nil)
272 end
273
274 tags
275 end
246 end
276 end
@@ -76,8 +76,10
76 <% end %>
76 <% end %>
77
77
78 <div id="csv-export-options" style="display:none;">
78 <div id="csv-export-options" style="display:none;">
79 <h3 class="title"><%= l(:label_export_options, :export_format => 'CSV') %></h3>
79 <h3 class="title"><%= l(:label_export_options, :export_format => 'CSV') %></h3>
80 <%= form_tag(params.merge({:format => 'csv',:page=>nil}), :method => :get, :id => 'csv-export-form') do %>
80 <%= form_tag(_project_issues_path(@project, :format => 'csv'), :method => :get, :id => 'csv-export-form') do %>
81 <%= query_as_hidden_field_tags(@query) %>
82 <%= hidden_field_tag 'sort', params[:sort], :id => nil %>
81 <p>
83 <p>
82 <label><%= radio_button_tag 'csv[columns]', '', true %> <%= l(:description_selected_columns) %></label><br />
84 <label><%= radio_button_tag 'csv[columns]', '', true %> <%= l(:description_selected_columns) %></label><br />
83 <label><%= radio_button_tag 'csv[columns]', 'all' %> <%= l(:description_all_columns) %></label>
85 <label><%= radio_button_tag 'csv[columns]', 'all' %> <%= l(:description_all_columns) %></label>
@@ -428,6 +428,26 class IssuesControllerTest < ActionController::TestCase
428 end
428 end
429 end
429 end
430
430
431 def test_index_should_include_query_params_as_hidden_fields_in_csv_export_form
432 get :index, :project_id => 1, :set_filter => "1", :tracker_id => "2", :sort => 'status', :c => ["status", "priority"]
433
434 assert_select '#csv-export-form[action=?]', '/projects/ecookbook/issues.csv'
435 assert_select '#csv-export-form[method=?]', 'get'
436
437 assert_select '#csv-export-form' do
438 assert_select 'input[name=?][value=?]', 'set_filter', '1'
439
440 assert_select 'input[name=?][value=?]', 'f[]', 'tracker_id'
441 assert_select 'input[name=?][value=?]', 'op[tracker_id]', '='
442 assert_select 'input[name=?][value=?]', 'v[tracker_id][]', '2'
443
444 assert_select 'input[name=?][value=?]', 'c[]', 'status'
445 assert_select 'input[name=?][value=?]', 'c[]', 'priority'
446
447 assert_select 'input[name=?][value=?]', 'sort', 'status'
448 end
449 end
450
431 def test_index_csv
451 def test_index_csv
432 get :index, :format => 'csv'
452 get :index, :format => 'csv'
433 assert_response :success
453 assert_response :success
General Comments 0
You need to be logged in to leave comments. Login now