@@ -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( |
|
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