]> source.dussan.org Git - redmine.git/commitdiff
Add cancel button during edition of a wiki page (#4285).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 24 Oct 2015 06:51:26 +0000 (06:51 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 24 Oct 2015 06:51:26 +0000 (06:51 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@14734 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/helpers/wiki_helper.rb
app/views/wiki/edit.html.erb
test/unit/helpers/wiki_helper_test.rb [new file with mode: 0644]

index 77ac01835f845db90c10cc24df990e6779c300b2..59448920b011b8907d0dd00477c7f9a0684d7e22 100644 (file)
@@ -51,4 +51,17 @@ module WikiHelper
       link_to(h(parent.pretty_title), {:controller => 'wiki', :action => 'show', :id => parent.title, :project_id => parent.project, :version => nil})
     })
   end
+
+  # Returns the path for the Cancel link when editing a wiki page
+  def wiki_page_edit_cancel_path(page)
+    if page.new_record?
+      if parent = page.parent
+        project_wiki_page_path(parent.project, parent.title)
+      else
+        project_wiki_index_path(page.project)
+      end
+    else
+      project_wiki_page_path(page.project, page.title)
+    end
+  end
 end
index 566e96029c429116dfb6d2d6a37b610617ef7d5c..a1fc3d00537792e56e0a7e4b20ad1504a79a2b30 100644 (file)
 <p><label><%=l(:label_attachment_plural)%></label><%= render :partial => 'attachments/form' %></p>
 </div>
 
-<p><%= submit_tag l(:button_save) %>
-   <%= preview_link({:controller => 'wiki', :action => 'preview', :project_id => @project, :id => @page.title }, 'wiki_form') %></p>
+<p>
+  <%= submit_tag l(:button_save) %>
+   <%= preview_link({:controller => 'wiki', :action => 'preview', :project_id => @project, :id => @page.title }, 'wiki_form') %>
+   | <%= link_to l(:button_cancel), wiki_page_edit_cancel_path(@page) %>
+ </p>
 <%= wikitoolbar_for 'content_text' %>
 <% end %>
 
diff --git a/test/unit/helpers/wiki_helper_test.rb b/test/unit/helpers/wiki_helper_test.rb
new file mode 100644 (file)
index 0000000..7e3bc09
--- /dev/null
@@ -0,0 +1,45 @@
+# Redmine - project management software
+# Copyright (C) 2006-2015  Jean-Philippe Lang
+#
+# 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.
+
+require File.expand_path('../../../test_helper', __FILE__)
+
+class WikiHelperTest < ActionView::TestCase
+  include WikiHelper
+  include Rails.application.routes.url_helpers
+
+  fixtures :projects, :users,
+           :roles, :member_roles, :members,
+           :enabled_modules, :wikis, :wiki_pages
+
+  def test_wiki_page_edit_cancel_path_for_new_page_without_parent_should_be_wiki_index
+    wiki = Wiki.find(1)
+    page = WikiPage.new(:wiki => wiki)
+    assert_equal '/projects/ecookbook/wiki/index', wiki_page_edit_cancel_path(page)
+  end
+
+  def test_wiki_page_edit_cancel_path_for_new_page_with_parent_should_be_parent
+    wiki = Wiki.find(1)
+    page = WikiPage.new(:wiki => wiki, :parent => wiki.find_page('Another_page'))
+    assert_equal '/projects/ecookbook/wiki/Another_page', wiki_page_edit_cancel_path(page)
+  end
+
+  def test_wiki_page_edit_cancel_path_for_existing_page_should_be_the_page
+    wiki = Wiki.find(1)
+    page = wiki.find_page('Child_1')
+    assert_equal '/projects/ecookbook/wiki/Child_1', wiki_page_edit_cancel_path(page)
+  end
+end