From e18ff1f2eed66c72f94386621947c372b04af949 Mon Sep 17 00:00:00 2001 From: Yuichi HARADA Date: Tue, 16 Mar 2021 13:44:18 +0900 Subject: [PATCH] Added an option form so that you can select the encoding when exporting CSV. --- app/helpers/roles_helper.rb | 2 +- app/views/roles/permissions.html.erb | 12 +++++++++++- test/functional/roles_controller_test.rb | 13 +++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/app/helpers/roles_helper.rb b/app/helpers/roles_helper.rb index 6c84138c4..f7f62ef19 100644 --- a/app/helpers/roles_helper.rb +++ b/app/helpers/roles_helper.rb @@ -21,7 +21,7 @@ module RolesHelper include ApplicationHelper def permissions_to_csv(roles, permissions) - Redmine::Export::CSV.generate do |csv| + Redmine::Export::CSV.generate(:encoding => params[:encoding]) do |csv| # csv header fields headers = [l(:field_cvs_module), l(:label_permissions)] + roles.collect(&:name) csv << headers diff --git a/app/views/roles/permissions.html.erb b/app/views/roles/permissions.html.erb index ffdf28b54..9f1c9dae2 100644 --- a/app/views/roles/permissions.html.erb +++ b/app/views/roles/permissions.html.erb @@ -86,5 +86,15 @@

<%= submit_tag l(:button_save) %>

<% end %> <% other_formats_links do |f| %> - <%= f.link_to 'CSV' %> + <%= f.link_to_with_query_parameters 'CSV', {}, :onclick => "showModal('csv-export-options', '330px'); return false;" %> <% end %> + diff --git a/test/functional/roles_controller_test.rb b/test/functional/roles_controller_test.rb index 1f095ea0f..4e68b20e4 100644 --- a/test/functional/roles_controller_test.rb +++ b/test/functional/roles_controller_test.rb @@ -270,6 +270,19 @@ class RolesControllerTest < Redmine::ControllerTest assert_select 'input[name=?][type=checkbox][value=delete_issues]:not([checked])', 'permissions[3][]' end + def test_permissions_should_include_csv_export + get :permissions + assert_response :success + + # Assert CSV export link + assert_select 'p.other-formats a.csv' + + # Assert export modal + assert_select '#csv-export-options' do + assert_select 'form[action=?][method=get]', '/roles/permissions.csv' + end + end + def test_permissions_csv_export get( :permissions, -- 2.24.3 (Apple Git-128)