From eac3b7db3b0e5721ccba9fd159e4121effcf2472 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20G=C3=BCnther?= Date: Thu, 23 Aug 2018 09:52:46 +0200 Subject: [PATCH] Fix toolbar in wiki index/toc page https://community.openproject.com/wp/28307 --- app/views/wiki/index.html.erb | 4 +- features/wiki/wiki_index.feature | 62 ------------------------ spec/controllers/wiki_controller_spec.rb | 2 +- spec/features/wiki/wiki_index_spec.rb | 52 ++++++++++++++++++++ 4 files changed, 54 insertions(+), 66 deletions(-) delete mode 100644 features/wiki/wiki_index.feature create mode 100644 spec/features/wiki/wiki_index_spec.rb diff --git a/app/views/wiki/index.html.erb b/app/views/wiki/index.html.erb index 91527a4912..3b2b61934b 100644 --- a/app/views/wiki/index.html.erb +++ b/app/views/wiki/index.html.erb @@ -33,15 +33,13 @@ See docs/COPYRIGHT.rdoc for more details. <% breadcrumb_paths(t(:label_table_of_contents)) %> <% end %> -<% content_for :action_menu_specific do %> +<%= toolbar title: t(:label_wiki_toc) do %> <%= content_tag(:li, watcher_link(@wiki, User.current), class: 'toolbar-item') %> <% end %> <% html_title t(:label_wiki_toc) %> -<%= render partial: 'layouts/action_menu_specific' %>
-

<%= t(:label_index_by_title) %>

<%= render_page_hierarchy(@pages_by_parent_id, nil, timestamp: true) %>
diff --git a/features/wiki/wiki_index.feature b/features/wiki/wiki_index.feature deleted file mode 100644 index 87a9f57379..0000000000 --- a/features/wiki/wiki_index.feature +++ /dev/null @@ -1,62 +0,0 @@ -#-- copyright -# OpenProject is a project management system. -# Copyright (C) 2012-2018 the OpenProject Foundation (OPF) -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License version 3. -# -# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: -# Copyright (C) 2006-2017 Jean-Philippe Lang -# Copyright (C) 2010-2013 the ChiliProject Team -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# See docs/COPYRIGHT.rdoc for more details. -#++ - -Feature: Viewing the wiki index page - - Background: - Given there are no wiki menu items - And there is 1 user with the following: - | login | bob | - And there is a role "member" - And the role "member" may have the following rights: - | view_wiki_pages | - And there is 1 project with the following: - | name | project1 | - | identifier | project1 | - And the user "bob" is a "member" in the project "project1" - And I am already logged in as "bob" - - Scenario: Visiting the wiki index page without a related page should show the overall index page and select no menu item - When I go to the wiki index page of the project called "project1" - Then I should see "Index by title" within "#content" - And there should be no child menu item selected - - Scenario: Visiting the wiki index page with a related page that has the index page option enabled on it's menu item should show the page and select the toc menu entry within the wiki menu item - Given the project "project1" has 1 wiki page with the following: - | title | ParentWikiPage | - And I go to the wiki index page of the project called "project1" - Then I should see "Index by title" within "#content" - - Scenario: Visiting the wiki index page with a related page that has the index page option disabled on it's menu item should show the page and select no menu item - Given the project "project1" has 1 wiki page with the following: - | title | ParentWikiPage | - And the project "project1" has 1 wiki menu item with the following: - | title | ParentWikiPage | - When I go to the wiki index page below the "ParentWikiPage" page of the project called "project1" - Then I should see "Index by title" within "#content" - And there should be no child menu item selected diff --git a/spec/controllers/wiki_controller_spec.rb b/spec/controllers/wiki_controller_spec.rb index 1338953db0..f51344fdfa 100644 --- a/spec/controllers/wiki_controller_spec.rb +++ b/spec/controllers/wiki_controller_spec.rb @@ -329,7 +329,7 @@ describe WikiController, type: :controller do get 'index', params: { id: @wiki_menu_item.name, project_id: @project.id } expect(response).to be_success - assert_select '#content h2', text: 'Index by title' + assert_select '#content h2', text: 'Table of Contents' assert_select "#main-menu a.#{@wiki_menu_item.menu_identifier}-menu-item.selected" end end diff --git a/spec/features/wiki/wiki_index_spec.rb b/spec/features/wiki/wiki_index_spec.rb new file mode 100644 index 0000000000..2fefab1919 --- /dev/null +++ b/spec/features/wiki/wiki_index_spec.rb @@ -0,0 +1,52 @@ +#-- copyright +# OpenProject is a project management system. +# Copyright (C) 2012-2018 the OpenProject Foundation (OPF) +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2017 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See docs/COPYRIGHT.rdoc for more details. +#++ + +require 'spec_helper' +require 'features/page_objects/notification' +require 'features/work_packages/shared_contexts' +require 'features/work_packages/work_packages_page' + +feature 'Wiki menu items' do + let(:user) do + FactoryBot.create :user, + member_in_project: project, + member_with_permissions: %w[view_wiki_pages] + end + let(:project) { FactoryBot.create :project, enabled_module_names: %w[wiki] } + let(:wiki) { project.wiki } + + before do + login_as user + visit index_project_wiki_index_path(project) + end + + it 'allows managing the menu item of a wiki page' do + expect(page).to have_selector('h2', text: 'Table of Contents') + expect(page).to have_no_selector('.main-menu--children .selected') + end +end