summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2017-07-08 13:51:18 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2017-07-08 13:51:18 +0000
commit5de545fd795a1e80a4e677ae2e4dc7175d38d81f (patch)
tree738cf812b38ecebf17bd96e681e289d19e14c28b
parent2bc719e2c8deccaedc523ffa6ae2849321fc5cc3 (diff)
downloadredmine-5de545fd795a1e80a4e677ae2e4dc7175d38d81f.tar.gz
redmine-5de545fd795a1e80a4e677ae2e4dc7175d38d81f.zip
Set the parent page when creating a new wiki page from the "Add page" link (#26043).
git-svn-id: http://svn.redmine.org/redmine/trunk@16774 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/controllers/wiki_controller.rb2
-rw-r--r--app/views/wiki/_new_modal.html.erb2
-rw-r--r--app/views/wiki/show.html.erb2
-rw-r--r--test/functional/wiki_controller_test.rb7
4 files changed, 10 insertions, 3 deletions
diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb
index 5496fbbdd..8064cd64f 100644
--- a/app/controllers/wiki_controller.rb
+++ b/app/controllers/wiki_controller.rb
@@ -70,7 +70,7 @@ class WikiController < ApplicationController
@page.title = '' unless editable?
@page.validate
if @page.errors[:title].blank?
- path = project_wiki_page_path(@project, @page.title)
+ path = project_wiki_page_path(:project_id => @project, :id => @page.title, :parent => params[:parent])
respond_to do |format|
format.html { redirect_to path }
format.js { render :js => "window.location = #{path.to_json}" }
diff --git a/app/views/wiki/_new_modal.html.erb b/app/views/wiki/_new_modal.html.erb
index 52a87b751..472bbd63f 100644
--- a/app/views/wiki/_new_modal.html.erb
+++ b/app/views/wiki/_new_modal.html.erb
@@ -1,7 +1,7 @@
<h3 class="title"><%=l(:label_wiki_page_new)%></h3>
<%= labelled_form_for :page, @page,
- :url => new_project_wiki_page_path(@project),
+ :url => new_project_wiki_page_path(:project_id => @project, :parent => params[:parent]),
:method => 'post',
:remote => true do |f| %>
diff --git a/app/views/wiki/show.html.erb b/app/views/wiki/show.html.erb
index 1cbfcbc65..a77421afa 100644
--- a/app/views/wiki/show.html.erb
+++ b/app/views/wiki/show.html.erb
@@ -1,6 +1,6 @@
<div class="contextual">
<% if User.current.allowed_to?(:edit_wiki_pages, @project) %>
-<%= link_to l(:label_wiki_page_new), new_project_wiki_page_path(@project), :remote => true, :class => 'icon icon-add' %>
+<%= link_to l(:label_wiki_page_new), new_project_wiki_page_path(:project_id => @project, :parent => @page.title), :remote => true, :class => 'icon icon-add' %>
<% end %>
<% if @editable %>
<% if @content.current_version? %>
diff --git a/test/functional/wiki_controller_test.rb b/test/functional/wiki_controller_test.rb
index dd28fb6b7..98d076cbd 100644
--- a/test/functional/wiki_controller_test.rb
+++ b/test/functional/wiki_controller_test.rb
@@ -208,6 +208,13 @@ class WikiControllerTest < Redmine::ControllerTest
assert_equal 'window.location = "/projects/ecookbook/wiki/New_Page"', response.body
end
+ def test_post_new_should_redirect_to_edit_with_parent
+ @request.session[:user_id] = 2
+
+ post :new, :params => {:project_id => 'ecookbook', :title => 'New_Page', :parent => 'Child_1'}
+ assert_redirected_to '/projects/ecookbook/wiki/New_Page?parent=Child_1'
+ end
+
def test_post_new_with_invalid_title_should_display_errors
@request.session[:user_id] = 2