diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2012-10-21 18:46:26 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2012-10-21 18:46:26 +0000 |
commit | d66b3452db773e2d9faf2452595ab3e8d136d843 (patch) | |
tree | 38ce910cf45c26789fdb1009f381aa1243e3d814 | |
parent | 9ec142713d5eb4c2f45fec02d6062165efe312c7 (diff) | |
download | redmine-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.rb | 4 | ||||
-rw-r--r-- | app/helpers/wiki_helper.rb | 2 | ||||
-rw-r--r-- | app/views/wiki/show.html.erb | 2 | ||||
-rw-r--r-- | config/routes.rb | 6 | ||||
-rw-r--r-- | test/functional/wiki_controller_test.rb | 29 | ||||
-rw-r--r-- | test/integration/routing/wiki_test.rb | 9 |
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' } ) |