diff --git a/.github/workflows/4_2_11.yml b/.github/workflows/4_2_11.yml index ab352be..7457195 100644 --- a/.github/workflows/4_2_11.yml +++ b/.github/workflows/4_2_11.yml @@ -89,6 +89,8 @@ jobs: - name: Prepare Redmine source working-directory: redmine run: | + # TODO Remove the following line when https://www.redmine.org/issues/40551 is fixed + sed -i -e 's/.*mocha.*/ gem "mocha", "2.1.0"/' Gemfile # Fix core tests not compatible with Mocha 2.2.0 sed -i '/rubocop/d' Gemfile rm -f .rubocop* cp plugins/redmine_base_rspec/spec/support/database-${{ matrix.db }}.yml config/database.yml diff --git a/.github/workflows/5_1_2.yml b/.github/workflows/5_1_2.yml index 62e5c2e..087ba7e 100644 --- a/.github/workflows/5_1_2.yml +++ b/.github/workflows/5_1_2.yml @@ -90,6 +90,8 @@ jobs: working-directory: redmine run: | rm -f test/integration/routing/plugins_test.rb # Fix routing tests # TODO Remove this line when https://www.redmine.org/issues/38707 is fixed + # TODO Remove the following line when https://www.redmine.org/issues/40551 is fixed + sed -i -e 's/.*mocha.*/ gem "mocha", "2.1.0"/' Gemfile # Fix core tests not compatible with Mocha 2.2.0 sed -i '/rubocop/d' Gemfile rm -f .rubocop* cp plugins/redmine_base_rspec/spec/support/database-${{ matrix.db }}.yml config/database.yml diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 13263ae..d7eff47 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -89,6 +89,8 @@ jobs: - name: Prepare Redmine source working-directory: redmine run: | + # TODO Remove the following line when https://www.redmine.org/issues/40551 is fixed + sed -i -e 's/.*mocha.*/ gem "mocha", "2.1.0"/' Gemfile # Fix core tests not compatible with Mocha 2.2.0 sed -i '/rubocop/d' Gemfile rm -f .rubocop* cp plugins/redmine_base_rspec/spec/support/database-${{ matrix.db }}.yml config/database.yml diff --git a/README.md b/README.md index 4752e73..f6fac68 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ Here is a complete list of the features: * Include the 'notes' field in workflows, providing the capability to **require notes** when updating an issue * Issues filter: **sort group-by options alphabetically** * PDF exports: add **links to attached files in generated PDF**" +* Projects overview: add an option to **hide members section** ## Test status diff --git a/app/overrides/projects/show.rb b/app/overrides/projects/show.rb new file mode 100644 index 0000000..feec6a9 --- /dev/null +++ b/app/overrides/projects/show.rb @@ -0,0 +1,8 @@ +Deface::Override.new :virtual_path => 'projects/show', + :name => 'hide-members-on-project-overview', + :surround => "erb[loud]:contains('members_box')", + :text => <<-EOS + <% if !Setting["plugin_redmine_tiny_features"]["hide_members_section_on_project_overview"].present? %> + <%= render_original %> + <% end %> + EOS diff --git a/app/views/settings/_redmine_plugin_tiny_features_settings.html.erb b/app/views/settings/_redmine_plugin_tiny_features_settings.html.erb index f839e98..054e0fe 100644 --- a/app/views/settings/_redmine_plugin_tiny_features_settings.html.erb +++ b/app/views/settings/_redmine_plugin_tiny_features_settings.html.erb @@ -74,6 +74,13 @@ <% end %>

+

+ <%= label_tag '', { style: 'width: auto;' } do %> + <%= check_box_tag "settings[hide_members_section_on_project_overview]", '1', Setting["plugin_redmine_tiny_features"]["hide_members_section_on_project_overview"] %> + <%= l("hide_members_on_project_overview") %> + <% end %> +

+ <%= javascript_tag do %> $(function() { if ((typeof $().select2) === 'function') { diff --git a/config/locales/en.yml b/config/locales/en.yml index 76c348d..bd407f3 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -40,3 +40,4 @@ en: label_issue_display_by_priority: "Colorization According to priority" label_issue_display_by_status: "Colorization According to status" field_show_pagination_at_top_results: "Show pagination links at the top of issues results" + hide_members_on_project_overview: "Hide members section on project overview page" diff --git a/config/locales/fr.yml b/config/locales/fr.yml index f0d80c2..ad3df4b 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -40,3 +40,4 @@ fr: label_issue_display_by_priority: "Colorisation par priorité" label_issue_display_by_status: "Colorisation par statut" field_show_pagination_at_top_results: "Afficher les liens de pagination en haut des résultats des demandes" + hide_members_on_project_overview: "Masquer la section des membres sur la page d'aperçu des projets" diff --git a/spec/system/projects_spec.rb b/spec/system/projects_spec.rb new file mode 100644 index 0000000..548fdc0 --- /dev/null +++ b/spec/system/projects_spec.rb @@ -0,0 +1,36 @@ +require "spec_helper" + +RSpec.describe "ProjectController", type: :system do + + fixtures :users, :user_preferences, :projects, :members, :roles, :member_roles + + before do + log_user('admin', 'admin') + end + + describe "Option to hide/show the members section on the overview page of each project" do + let(:project_test) { Project.find(1) } + + it "hides members section when the option is activated" do + + Setting.send "plugin_redmine_tiny_features=", { + "hide_members_section_on_project_overview" => "1", + } + + visit "/projects/#{project_test.identifier}" + expect(page).to_not have_selector('div.members') + + end + + it "displays members section when the option is deactivated" do + + Setting.send "plugin_redmine_tiny_features=", { + "hide_members_section_on_project_overview" => "", + } + + visit "/projects/#{project_test.identifier}" + expect(page).to have_selector('div.members') + end + + end +end diff --git a/spec/system/settings_redmine_tiny_features_spec.rb b/spec/system/settings_redmine_tiny_features_spec.rb index 1aafa1e..8387075 100644 --- a/spec/system/settings_redmine_tiny_features_spec.rb +++ b/spec/system/settings_redmine_tiny_features_spec.rb @@ -37,4 +37,21 @@ "load_issue_edit_form_asynchronously" => "0", } end + + it "activates the option hide_members_section_on_project_overview" do + log_user('admin', 'admin') + + visit 'settings/plugin/redmine_tiny_features' + + find("input[name='settings[hide_members_section_on_project_overview]']").click + find("input[name='commit']").click + + expect(Setting["plugin_redmine_tiny_features"]["hide_members_section_on_project_overview"]).to eq '1' + Setting.send "plugin_redmine_tiny_features=", { + "warning_message_on_closed_issues" => "1", + "default_open_status" => "2", + "default_project" => "1", + "hide_members_section_on_project_overview" => "0", + } + end end