Commit 02711057 authored by Eric Davis's avatar Eric Davis

Refactor: extract #page_index from WikiController#special

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4253 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent bbbfd4ee
...@@ -166,7 +166,7 @@ class WikiController < ApplicationController ...@@ -166,7 +166,7 @@ class WikiController < ApplicationController
end end
end end
@page.destroy @page.destroy
redirect_to :action => 'special', :id => @project, :page => 'Page_index' redirect_to :action => 'page_index', :id => @project
end end
# display special pages # display special pages
...@@ -174,7 +174,7 @@ class WikiController < ApplicationController ...@@ -174,7 +174,7 @@ class WikiController < ApplicationController
page_title = params[:page].downcase page_title = params[:page].downcase
case page_title case page_title
# show pages index, sorted by title # show pages index, sorted by title
when 'page_index', 'date_index' when 'date_index'
load_pages_grouped_by_date_without_content load_pages_grouped_by_date_without_content
when 'export' when 'export'
redirect_to :action => 'export', :id => @project # Compatibility stub while refactoring redirect_to :action => 'export', :id => @project # Compatibility stub while refactoring
...@@ -197,6 +197,10 @@ class WikiController < ApplicationController ...@@ -197,6 +197,10 @@ class WikiController < ApplicationController
redirect_to :action => 'index', :id => @project, :page => nil redirect_to :action => 'index', :id => @project, :page => nil
end end
end end
def page_index
load_pages_grouped_by_date_without_content
end
def preview def preview
page = @wiki.find_page(params[:page]) page = @wiki.find_page(params[:page])
......
...@@ -5,5 +5,5 @@ ...@@ -5,5 +5,5 @@
<h3><%= l(:label_wiki) %></h3> <h3><%= l(:label_wiki) %></h3>
<%= link_to l(:field_start_page), {:action => 'index', :page => nil} %><br /> <%= link_to l(:field_start_page), {:action => 'index', :page => nil} %><br />
<%= link_to l(:label_index_by_title), {:action => 'special', :page => 'Page_index'} %><br /> <%= link_to l(:label_index_by_title), {:action => 'page_index'} %><br />
<%= link_to l(:label_index_by_date), {:action => 'special', :page => 'Date_index'} %><br /> <%= link_to l(:label_index_by_date), {:action => 'special', :page => 'Date_index'} %><br />
...@@ -30,7 +30,8 @@ ActionController::Routing::Routes.draw do |map| ...@@ -30,7 +30,8 @@ ActionController::Routing::Routes.draw do |map|
map.with_options :controller => 'wiki' do |wiki_routes| map.with_options :controller => 'wiki' do |wiki_routes|
wiki_routes.with_options :conditions => {:method => :get} do |wiki_views| wiki_routes.with_options :conditions => {:method => :get} do |wiki_views|
wiki_views.connect 'projects/:id/wiki/export', :action => 'export' wiki_views.connect 'projects/:id/wiki/export', :action => 'export'
wiki_views.connect 'projects/:id/wiki/:page', :action => 'special', :page => /page_index|date_index/i wiki_views.connect 'projects/:id/wiki/page_index', :action => 'page_index'
wiki_views.connect 'projects/:id/wiki/:page', :action => 'special', :page => /date_index/i
wiki_views.connect 'projects/:id/wiki/:page', :action => 'index', :page => nil wiki_views.connect 'projects/:id/wiki/:page', :action => 'index', :page => nil
wiki_views.connect 'projects/:id/wiki/:page/edit', :action => 'edit' wiki_views.connect 'projects/:id/wiki/:page/edit', :action => 'edit'
wiki_views.connect 'projects/:id/wiki/:page/rename', :action => 'rename' wiki_views.connect 'projects/:id/wiki/:page/rename', :action => 'rename'
......
...@@ -111,7 +111,7 @@ Redmine::AccessControl.map do |map| ...@@ -111,7 +111,7 @@ Redmine::AccessControl.map do |map|
map.permission :manage_wiki, {:wikis => [:edit, :destroy]}, :require => :member map.permission :manage_wiki, {:wikis => [:edit, :destroy]}, :require => :member
map.permission :rename_wiki_pages, {:wiki => :rename}, :require => :member map.permission :rename_wiki_pages, {:wiki => :rename}, :require => :member
map.permission :delete_wiki_pages, {:wiki => :destroy}, :require => :member map.permission :delete_wiki_pages, {:wiki => :destroy}, :require => :member
map.permission :view_wiki_pages, :wiki => [:index, :special] map.permission :view_wiki_pages, :wiki => [:index, :special, :page_index]
map.permission :export_wiki_pages, :wiki => [:export] map.permission :export_wiki_pages, :wiki => [:export]
map.permission :view_wiki_edits, :wiki => [:history, :diff, :annotate] map.permission :view_wiki_edits, :wiki => [:history, :diff, :annotate]
map.permission :edit_wiki_pages, :wiki => [:edit, :preview, :add_attachment] map.permission :edit_wiki_pages, :wiki => [:edit, :preview, :add_attachment]
......
...@@ -197,7 +197,7 @@ class WikiControllerTest < ActionController::TestCase ...@@ -197,7 +197,7 @@ class WikiControllerTest < ActionController::TestCase
def test_destroy_child def test_destroy_child
@request.session[:user_id] = 2 @request.session[:user_id] = 2
post :destroy, :id => 1, :page => 'Child_1' post :destroy, :id => 1, :page => 'Child_1'
assert_redirected_to :action => 'special', :id => 'ecookbook', :page => 'Page_index' assert_redirected_to :action => 'page_index', :id => 'ecookbook'
end end
def test_destroy_parent def test_destroy_parent
...@@ -214,7 +214,7 @@ class WikiControllerTest < ActionController::TestCase ...@@ -214,7 +214,7 @@ class WikiControllerTest < ActionController::TestCase
assert_difference('WikiPage.count', -1) do assert_difference('WikiPage.count', -1) do
post :destroy, :id => 1, :page => 'Another_page', :todo => 'nullify' post :destroy, :id => 1, :page => 'Another_page', :todo => 'nullify'
end end
assert_redirected_to :action => 'special', :id => 'ecookbook', :page => 'Page_index' assert_redirected_to :action => 'page_index', :id => 'ecookbook'
assert_nil WikiPage.find_by_id(2) assert_nil WikiPage.find_by_id(2)
end end
...@@ -223,7 +223,7 @@ class WikiControllerTest < ActionController::TestCase ...@@ -223,7 +223,7 @@ class WikiControllerTest < ActionController::TestCase
assert_difference('WikiPage.count', -3) do assert_difference('WikiPage.count', -3) do
post :destroy, :id => 1, :page => 'Another_page', :todo => 'destroy' post :destroy, :id => 1, :page => 'Another_page', :todo => 'destroy'
end end
assert_redirected_to :action => 'special', :id => 'ecookbook', :page => 'Page_index' assert_redirected_to :action => 'page_index', :id => 'ecookbook'
assert_nil WikiPage.find_by_id(2) assert_nil WikiPage.find_by_id(2)
assert_nil WikiPage.find_by_id(5) assert_nil WikiPage.find_by_id(5)
end end
...@@ -233,15 +233,15 @@ class WikiControllerTest < ActionController::TestCase ...@@ -233,15 +233,15 @@ class WikiControllerTest < ActionController::TestCase
assert_difference('WikiPage.count', -1) do assert_difference('WikiPage.count', -1) do
post :destroy, :id => 1, :page => 'Another_page', :todo => 'reassign', :reassign_to_id => 1 post :destroy, :id => 1, :page => 'Another_page', :todo => 'reassign', :reassign_to_id => 1
end end
assert_redirected_to :action => 'special', :id => 'ecookbook', :page => 'Page_index' assert_redirected_to :action => 'page_index', :id => 'ecookbook'
assert_nil WikiPage.find_by_id(2) assert_nil WikiPage.find_by_id(2)
assert_equal WikiPage.find(1), WikiPage.find_by_id(5).parent assert_equal WikiPage.find(1), WikiPage.find_by_id(5).parent
end end
def test_page_index def test_page_index
get :special, :id => 'ecookbook', :page => 'Page_index' get :page_index, :id => 'ecookbook'
assert_response :success assert_response :success
assert_template 'special_page_index' assert_template 'page_index'
pages = assigns(:pages) pages = assigns(:pages)
assert_not_nil pages assert_not_nil pages
assert_equal Project.find(1).wiki.pages.size, pages.size assert_equal Project.find(1).wiki.pages.size, pages.size
......
...@@ -318,8 +318,7 @@ class RoutingTest < ActionController::IntegrationTest ...@@ -318,8 +318,7 @@ class RoutingTest < ActionController::IntegrationTest
should_route :get, "/projects/1/wiki/CookBook_documentation/diff/2/vs/1", :controller => 'wiki', :action => 'diff', :id => '1', :page => 'CookBook_documentation', :version => '2', :version_from => '1' should_route :get, "/projects/1/wiki/CookBook_documentation/diff/2/vs/1", :controller => 'wiki', :action => 'diff', :id => '1', :page => 'CookBook_documentation', :version => '2', :version_from => '1'
should_route :get, "/projects/1/wiki/CookBook_documentation/annotate/2", :controller => 'wiki', :action => 'annotate', :id => '1', :page => 'CookBook_documentation', :version => '2' should_route :get, "/projects/1/wiki/CookBook_documentation/annotate/2", :controller => 'wiki', :action => 'annotate', :id => '1', :page => 'CookBook_documentation', :version => '2'
should_route :get, "/projects/22/wiki/ladida/rename", :controller => 'wiki', :action => 'rename', :id => '22', :page => 'ladida' should_route :get, "/projects/22/wiki/ladida/rename", :controller => 'wiki', :action => 'rename', :id => '22', :page => 'ladida'
should_route :get, "/projects/567/wiki/page_index", :controller => 'wiki', :action => 'special', :id => '567', :page => 'page_index' should_route :get, "/projects/567/wiki/page_index", :controller => 'wiki', :action => 'page_index', :id => '567'
should_route :get, "/projects/567/wiki/Page_Index", :controller => 'wiki', :action => 'special', :id => '567', :page => 'Page_Index'
should_route :get, "/projects/567/wiki/date_index", :controller => 'wiki', :action => 'special', :id => '567', :page => 'date_index' should_route :get, "/projects/567/wiki/date_index", :controller => 'wiki', :action => 'special', :id => '567', :page => 'date_index'
should_route :get, "/projects/567/wiki/export", :controller => 'wiki', :action => 'export', :id => '567' should_route :get, "/projects/567/wiki/export", :controller => 'wiki', :action => 'export', :id => '567'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment