diff options
author | Rémy Coutable <remy@rymai.me> | 2017-03-16 13:10:09 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-03-16 13:10:09 +0000 |
commit | 4a81867df14801c302f72096de8ee5327cfb4a39 (patch) | |
tree | 5fc676ea57318be34327908df4a1b0a08ca06c72 | |
parent | abb5f765c1e1affe0e132c86811e356e4a7008c9 (diff) | |
parent | 333e39d4923b285dce21c65f2923f132c36f5bf7 (diff) | |
download | gitlab-ce-29565-name-of-the-uncompressed-folder-of-a-tag-archive-changed.tar.gz |
Merge branch '28991-viewing-old-wiki-page-version-edit-button-exists' into 'master'
29565-name-of-the-uncompressed-folder-of-a-tag-archive-changed
[#28991] Resolve "Viewing old wiki page version, "Edit" button exists, brings up latest markup"
Closes #28991
See merge request !9966
4 files changed, 55 insertions, 1 deletions
diff --git a/app/models/wiki_page.rb b/app/models/wiki_page.rb index 2caebb496db..465c4d903ac 100644 --- a/app/models/wiki_page.rb +++ b/app/models/wiki_page.rb @@ -149,6 +149,12 @@ class WikiPage end # Returns boolean True or False if this instance + # is the latest commit version of the page. + def latest? + !historical? + end + + # Returns boolean True or False if this instance # has been fully saved to disk or not. def persisted? @persisted == true diff --git a/app/views/projects/wikis/_main_links.html.haml b/app/views/projects/wikis/_main_links.html.haml index 763c2fea39b..5211ade1a5f 100644 --- a/app/views/projects/wikis/_main_links.html.haml +++ b/app/views/projects/wikis/_main_links.html.haml @@ -4,6 +4,6 @@ New Page = link_to namespace_project_wiki_history_path(@project.namespace, @project, @page), class: "btn" do Page History - - if can?(current_user, :create_wiki, @project) + - if can?(current_user, :create_wiki, @project) && @page.latest? = link_to namespace_project_wiki_edit_path(@project.namespace, @project, @page), class: "btn" do Edit diff --git a/changelogs/unreleased/28991-viewing-old-wiki-page-version-edit-button-exists.yml b/changelogs/unreleased/28991-viewing-old-wiki-page-version-edit-button-exists.yml new file mode 100644 index 00000000000..26989c14958 --- /dev/null +++ b/changelogs/unreleased/28991-viewing-old-wiki-page-version-edit-button-exists.yml @@ -0,0 +1,4 @@ +--- +title: When viewing old wiki page version, edit button should be disabled +merge_request: 9966 +author: TM Lee diff --git a/spec/features/projects/wiki/user_views_project_wiki_page_spec.rb b/spec/features/projects/wiki/user_views_project_wiki_page_spec.rb new file mode 100644 index 00000000000..c17e06612de --- /dev/null +++ b/spec/features/projects/wiki/user_views_project_wiki_page_spec.rb @@ -0,0 +1,44 @@ +require 'spec_helper' + +feature 'Projects > Wiki > User views the wiki page', feature: true do + let(:user) { create(:user) } + let(:project) { create(:project, :public) } + let(:old_page_version_id) { wiki_page.versions.last.id } + let(:wiki_page) do + WikiPages::CreateService.new( + project, + user, + title: 'home', + content: '[some link](other-page)' + ).execute + end + + background do + project.team << [user, :master] + login_as(user) + WikiPages::UpdateService.new( + project, + user, + message: 'updated home', + content: 'updated [some link](other-page)', + format: :markdown + ).execute(wiki_page) + end + + scenario 'Visit Wiki Page Current Commit' do + visit namespace_project_wiki_path(project.namespace, project, wiki_page) + + expect(page).to have_selector('a.btn', text: 'Edit') + end + + scenario 'Visit Wiki Page Historical Commit' do + visit namespace_project_wiki_path( + project.namespace, + project, + wiki_page, + version_id: old_page_version_id + ) + + expect(page).not_to have_selector('a.btn', text: 'Edit') + end +end |