@@ -243,4 +243,34 module QueriesHelper | |||
|
243 | 243 | @query |
|
244 | 244 | end |
|
245 | 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 | 276 | end |
@@ -76,8 +76,10 | |||
|
76 | 76 | <% end %> |
|
77 | 77 | |
|
78 | 78 | <div id="csv-export-options" style="display:none;"> |
|
79 |
<h3 class="title"><%= l(:label_export_options, :export_format => 'CSV') %></h3> |
|
|
80 |
<%= form_tag( |
|
|
79 | <h3 class="title"><%= l(:label_export_options, :export_format => 'CSV') %></h3> | |
|
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 | 83 | <p> |
|
82 | 84 | <label><%= radio_button_tag 'csv[columns]', '', true %> <%= l(:description_selected_columns) %></label><br /> |
|
83 | 85 | <label><%= radio_button_tag 'csv[columns]', 'all' %> <%= l(:description_all_columns) %></label> |
@@ -428,6 +428,26 class IssuesControllerTest < ActionController::TestCase | |||
|
428 | 428 | end |
|
429 | 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 | 451 | def test_index_csv |
|
432 | 452 | get :index, :format => 'csv' |
|
433 | 453 | assert_response :success |
General Comments 0
You need to be logged in to leave comments.
Login now