Merge pull request #6570 from opf/fix/28307/fix-toolbar-toc

[28307] Fix toolbar in wiki index/toc page

[ci skip]
pull/6575/head
Oliver Günther 6 years ago committed by GitHub
commit d7d4b81489
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      app/views/wiki/index.html.erb
  2. 62
      features/wiki/wiki_index.feature
  3. 2
      spec/controllers/wiki_controller_spec.rb
  4. 52
      spec/features/wiki/wiki_index_spec.rb

@ -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' %>
<div class="wiki-content">
<h2 class="legacy-heading"><%= t(:label_index_by_title) %></h2>
<%= render_page_hierarchy(@pages_by_parent_id, nil, timestamp: true) %>
</div>

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

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

@ -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
Loading…
Cancel
Save