summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2012-10-21 18:46:26 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2012-10-21 18:46:26 +0000
commitd66b3452db773e2d9faf2452595ab3e8d136d843 (patch)
tree38ce910cf45c26789fdb1009f381aa1243e3d814
parent9ec142713d5eb4c2f45fec02d6062165efe312c7 (diff)
downloadredmine-d66b3452db773e2d9faf2452595ab3e8d136d843.tar.gz
redmine-d66b3452db773e2d9faf2452595ab3e8d136d843.zip
Wiki page versions routes cleanup.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10687 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/helpers/application_helper.rb4
-rw-r--r--app/helpers/wiki_helper.rb2
-rw-r--r--app/views/wiki/show.html.erb2
-rw-r--r--config/routes.rb6
-rw-r--r--test/functional/wiki_controller_test.rb29
-rw-r--r--test/integration/routing/wiki_test.rb9
6 files changed, 37 insertions, 15 deletions
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index c4b581255..e3126a358 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -234,7 +234,7 @@ module ApplicationHelper
content << "<ul class=\"pages-hierarchy\">\n"
pages[node].each do |page|
content << "<li>"
- content << link_to(h(page.pretty_title), {:controller => 'wiki', :action => 'show', :project_id => page.project, :id => page.title},
+ content << link_to(h(page.pretty_title), {:controller => 'wiki', :action => 'show', :project_id => page.project, :id => page.title, :version => nil},
:title => (options[:timestamp] && page.updated_on ? l(:label_updated_time, distance_of_time_in_words(Time.now, page.updated_on)) : nil))
content << "\n" + render_page_hierarchy(pages, page.id, options) if pages[page.id]
content << "</li>\n"
@@ -644,7 +644,7 @@ module ApplicationHelper
wiki_page_id = page.present? ? Wiki.titleize(page) : nil
parent = wiki_page.nil? && obj.is_a?(WikiContent) && obj.page && project == link_project ? obj.page.title : nil
url_for(:only_path => only_path, :controller => 'wiki', :action => 'show', :project_id => link_project,
- :id => wiki_page_id, :anchor => anchor, :parent => parent)
+ :id => wiki_page_id, :version => nil, :anchor => anchor, :parent => parent)
end
end
link_to(title.present? ? title.html_safe : h(page), url, :class => ('wiki-page' + (wiki_page ? '' : ' new')))
diff --git a/app/helpers/wiki_helper.rb b/app/helpers/wiki_helper.rb
index 6edeabeb3..873ec1793 100644
--- a/app/helpers/wiki_helper.rb
+++ b/app/helpers/wiki_helper.rb
@@ -37,7 +37,7 @@ module WikiHelper
def wiki_page_breadcrumb(page)
breadcrumb(page.ancestors.reverse.collect {|parent|
- link_to(h(parent.pretty_title), {:controller => 'wiki', :action => 'show', :id => parent.title, :project_id => parent.project})
+ link_to(h(parent.pretty_title), {:controller => 'wiki', :action => 'show', :id => parent.title, :project_id => parent.project, :version => nil})
})
end
end
diff --git a/app/views/wiki/show.html.erb b/app/views/wiki/show.html.erb
index a0aa3c04c..dfb4add7c 100644
--- a/app/views/wiki/show.html.erb
+++ b/app/views/wiki/show.html.erb
@@ -28,7 +28,7 @@
<%= link_to((l(:label_next) + " \xc2\xbb"), :action => 'show',
:id => @page.title, :project_id => @page.project,
:version => @content.next.version) + " - " if @content.next %>
- <%= link_to(l(:label_current_version), :action => 'show', :id => @page.title, :project_id => @page.project) %>
+ <%= link_to(l(:label_current_version), :action => 'show', :id => @page.title, :project_id => @page.project, :version => nil) %>
<br />
<em><%= @content.author ? link_to_user(@content.author) : l(:label_user_anonymous)
%>, <%= format_time(@content.updated_on) %> </em><br />
diff --git a/config/routes.rb b/config/routes.rb
index 63f779a16..b78cb3dff 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -143,8 +143,6 @@ RedmineApp::Application.routes.draw do
end
match 'wiki/index', :controller => 'wiki', :action => 'index', :via => :get
- match 'wiki/:id/diff/:version/vs/:version_from', :controller => 'wiki', :action => 'diff'
- match 'wiki/:id/diff/:version', :controller => 'wiki', :action => 'diff'
resources :wiki, :except => [:index, :new, :create] do
member do
get 'rename'
@@ -161,7 +159,9 @@ RedmineApp::Application.routes.draw do
end
end
match 'wiki', :controller => 'wiki', :action => 'show', :via => :get
- match 'wiki/:id/annotate/:version', :controller => 'wiki', :action => 'annotate'
+ get 'wiki/:id/:version', :to => 'wiki#show'
+ get 'wiki/:id/:version/annotate', :to => 'wiki#annotate'
+ get 'wiki/:id/:version/diff', :to => 'wiki#diff'
end
resources :issues do
diff --git a/test/functional/wiki_controller_test.rb b/test/functional/wiki_controller_test.rb
index dceea3971..abfb33f11 100644
--- a/test/functional/wiki_controller_test.rb
+++ b/test/functional/wiki_controller_test.rb
@@ -64,6 +64,28 @@ class WikiControllerTest < ActionController::TestCase
:alt => 'This is a logo' }
end
+ def test_show_old_version
+ get :show, :project_id => 'ecookbook', :id => 'CookBook_documentation', :version => '2'
+ assert_response :success
+ assert_template 'show'
+
+ assert_select 'a[href=?]', '/projects/ecookbook/wiki/CookBook_documentation/1', :text => /Previous/
+ assert_select 'a[href=?]', '/projects/ecookbook/wiki/CookBook_documentation/2/diff', :text => /diff/
+ assert_select 'a[href=?]', '/projects/ecookbook/wiki/CookBook_documentation/3', :text => /Next/
+ assert_select 'a[href=?]', '/projects/ecookbook/wiki/CookBook_documentation', :text => /Current version/
+ end
+
+ def test_show_first_version
+ get :show, :project_id => 'ecookbook', :id => 'CookBook_documentation', :version => '1'
+ assert_response :success
+ assert_template 'show'
+
+ assert_select 'a', :text => /Previous/, :count => 0
+ assert_select 'a', :text => /diff/, :count => 0
+ assert_select 'a[href=?]', '/projects/ecookbook/wiki/CookBook_documentation/2', :text => /Next/
+ assert_select 'a[href=?]', '/projects/ecookbook/wiki/CookBook_documentation', :text => /Current version/
+ end
+
def test_show_redirected_page
WikiRedirect.create!(:wiki_id => 1, :title => 'Old_title', :redirects_to => 'Another_page')
@@ -477,12 +499,17 @@ class WikiControllerTest < ActionController::TestCase
end
def test_history
- get :history, :project_id => 1, :id => 'CookBook_documentation'
+ get :history, :project_id => 'ecookbook', :id => 'CookBook_documentation'
assert_response :success
assert_template 'history'
assert_not_nil assigns(:versions)
assert_equal 3, assigns(:versions).size
+
assert_select "input[type=submit][name=commit]"
+ assert_select 'td' do
+ assert_select 'a[href=?]', '/projects/ecookbook/wiki/CookBook_documentation/2', :text => '2'
+ assert_select 'a[href=?]', '/projects/ecookbook/wiki/CookBook_documentation/2/annotate'
+ end
end
def test_history_with_one_version
diff --git a/test/integration/routing/wiki_test.rb b/test/integration/routing/wiki_test.rb
index 36f5f2c09..2afc29eea 100644
--- a/test/integration/routing/wiki_test.rb
+++ b/test/integration/routing/wiki_test.rb
@@ -39,17 +39,12 @@ class RoutingWikiTest < ActionController::IntegrationTest
:id => 'CookBook_documentation' }
)
assert_routing(
- { :method => 'get', :path => "/projects/1/wiki/CookBook_documentation/diff/2" },
+ { :method => 'get', :path => "/projects/1/wiki/CookBook_documentation/2/diff" },
{ :controller => 'wiki', :action => 'diff', :project_id => '1',
:id => 'CookBook_documentation', :version => '2' }
)
assert_routing(
- { :method => 'get', :path => "/projects/1/wiki/CookBook_documentation/diff/2/vs/1" },
- { :controller => 'wiki', :action => 'diff', :project_id => '1',
- :id => 'CookBook_documentation', :version => '2', :version_from => '1' }
- )
- assert_routing(
- { :method => 'get', :path => "/projects/1/wiki/CookBook_documentation/annotate/2" },
+ { :method => 'get', :path => "/projects/1/wiki/CookBook_documentation/2/annotate" },
{ :controller => 'wiki', :action => 'annotate', :project_id => '1',
:id => 'CookBook_documentation', :version => '2' }
)