From 4b045badcfde2eb27b63023ca8f3c30334d7f00f Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Mon, 25 Oct 2010 16:16:46 +0000 Subject: [PATCH] Refactor: Rename WikiController#page_index to #index index is the action that should list a collection of records, which is what #page_index does. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4290 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/wiki_controller.rb | 25 +++++++++++++++---- app/views/wiki/_sidebar.rhtml | 2 +- .../{page_index.html.erb => index.html.erb} | 0 config/routes.rb | 2 +- lib/redmine.rb | 2 +- test/functional/wiki_controller_test.rb | 14 +++++------ test/integration/routing_test.rb | 2 +- 7 files changed, 31 insertions(+), 16 deletions(-) rename app/views/wiki/{page_index.html.erb => index.html.erb} (100%) diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb index 1c42ab5cd97..c7b866239ae 100644 --- a/app/controllers/wiki_controller.rb +++ b/app/controllers/wiki_controller.rb @@ -17,6 +17,20 @@ require 'diff' +# The WikiController follows the Rails REST controller pattern but with +# a few differences +# +# * index - shows a list of WikiPages grouped by page or date +# * new - not used +# * create - not used +# * show - will also show the form for creating a new wiki page +# * edit - used to edit an existing or new page +# * update - used to save a wiki page update to the database, including new pages +# * destroy - normal +# +# Other member and collection methods are also used +# +# TODO: still being worked on class WikiController < ApplicationController default_search_scope :wiki_pages before_filter :find_wiki, :authorize @@ -28,6 +42,11 @@ class WikiController < ApplicationController include AttachmentsHelper helper :watchers + # List of pages, sorted alphabetically and by parent (hierarchy) + def index + load_pages_grouped_by_date_without_content + end + # display a page (in editing mode if it doesn't exist) def show page_title = params[:page] @@ -180,7 +199,7 @@ def destroy end end @page.destroy - redirect_to :action => 'page_index', :project_id => @project + redirect_to :action => 'index', :project_id => @project end # Export wiki to a single html file @@ -194,10 +213,6 @@ def export end end - def page_index - load_pages_grouped_by_date_without_content - end - def date_index load_pages_grouped_by_date_without_content end diff --git a/app/views/wiki/_sidebar.rhtml b/app/views/wiki/_sidebar.rhtml index efb24af06bc..7f60825aad3 100644 --- a/app/views/wiki/_sidebar.rhtml +++ b/app/views/wiki/_sidebar.rhtml @@ -5,5 +5,5 @@

<%= l(:label_wiki) %>

<%= link_to l(:field_start_page), {:action => 'show', :page => nil} %>
-<%= link_to l(:label_index_by_title), {:action => 'page_index'} %>
+<%= link_to l(:label_index_by_title), {:action => 'index'} %>
<%= link_to l(:label_index_by_date), {:action => 'date_index'} %>
diff --git a/app/views/wiki/page_index.html.erb b/app/views/wiki/index.html.erb similarity index 100% rename from app/views/wiki/page_index.html.erb rename to app/views/wiki/index.html.erb diff --git a/config/routes.rb b/config/routes.rb index 511e6dc29d5..5ca9d86d1f5 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -30,7 +30,7 @@ map.with_options :controller => 'wiki' do |wiki_routes| wiki_routes.with_options :conditions => {:method => :get} do |wiki_views| wiki_views.connect 'projects/:project_id/wiki/export', :action => 'export' - wiki_views.connect 'projects/:project_id/wiki/page_index', :action => 'page_index' + wiki_views.connect 'projects/:project_id/wiki/index', :action => 'index' wiki_views.connect 'projects/:project_id/wiki/date_index', :action => 'date_index' wiki_views.connect 'projects/:project_id/wiki/:page', :action => 'show', :page => nil wiki_views.connect 'projects/:project_id/wiki/:page/edit', :action => 'edit' diff --git a/lib/redmine.rb b/lib/redmine.rb index 1a4b581ceaf..e813950ce8b 100644 --- a/lib/redmine.rb +++ b/lib/redmine.rb @@ -111,7 +111,7 @@ map.permission :manage_wiki, {:wikis => [:edit, :destroy]}, :require => :member map.permission :rename_wiki_pages, {:wiki => :rename}, :require => :member map.permission :delete_wiki_pages, {:wiki => :destroy}, :require => :member - map.permission :view_wiki_pages, :wiki => [:show, :special, :page_index, :date_index] + map.permission :view_wiki_pages, :wiki => [:index, :show, :special, :date_index] map.permission :export_wiki_pages, :wiki => [:export] map.permission :view_wiki_edits, :wiki => [:history, :diff, :annotate] map.permission :edit_wiki_pages, :wiki => [:edit, :update, :preview, :add_attachment] diff --git a/test/functional/wiki_controller_test.rb b/test/functional/wiki_controller_test.rb index 61e265925a0..fecde6159c9 100644 --- a/test/functional/wiki_controller_test.rb +++ b/test/functional/wiki_controller_test.rb @@ -197,7 +197,7 @@ def test_rename_without_redirect def test_destroy_child @request.session[:user_id] = 2 post :destroy, :project_id => 1, :page => 'Child_1' - assert_redirected_to :action => 'page_index', :project_id => 'ecookbook' + assert_redirected_to :action => 'index', :project_id => 'ecookbook' end def test_destroy_parent @@ -214,7 +214,7 @@ def test_destroy_parent_with_nullify assert_difference('WikiPage.count', -1) do post :destroy, :project_id => 1, :page => 'Another_page', :todo => 'nullify' end - assert_redirected_to :action => 'page_index', :project_id => 'ecookbook' + assert_redirected_to :action => 'index', :project_id => 'ecookbook' assert_nil WikiPage.find_by_id(2) end @@ -223,7 +223,7 @@ def test_destroy_parent_with_cascade assert_difference('WikiPage.count', -3) do post :destroy, :project_id => 1, :page => 'Another_page', :todo => 'destroy' end - assert_redirected_to :action => 'page_index', :project_id => 'ecookbook' + assert_redirected_to :action => 'index', :project_id => 'ecookbook' assert_nil WikiPage.find_by_id(2) assert_nil WikiPage.find_by_id(5) end @@ -233,15 +233,15 @@ def test_destroy_parent_with_reassign assert_difference('WikiPage.count', -1) do post :destroy, :project_id => 1, :page => 'Another_page', :todo => 'reassign', :reassign_to_id => 1 end - assert_redirected_to :action => 'page_index', :project_id => 'ecookbook' + assert_redirected_to :action => 'index', :project_id => 'ecookbook' assert_nil WikiPage.find_by_id(2) assert_equal WikiPage.find(1), WikiPage.find_by_id(5).parent end - def test_page_index - get :page_index, :project_id => 'ecookbook' + def test_index + get :index, :project_id => 'ecookbook' assert_response :success - assert_template 'page_index' + assert_template 'index' pages = assigns(:pages) assert_not_nil pages assert_equal Project.find(1).wiki.pages.size, pages.size diff --git a/test/integration/routing_test.rb b/test/integration/routing_test.rb index ea8c71b0af2..c749f51e427 100644 --- a/test/integration/routing_test.rb +++ b/test/integration/routing_test.rb @@ -318,7 +318,7 @@ class RoutingTest < ActionController::IntegrationTest should_route :get, "/projects/1/wiki/CookBook_documentation/diff/2/vs/1", :controller => 'wiki', :action => 'diff', :project_id => '1', :page => 'CookBook_documentation', :version => '2', :version_from => '1' should_route :get, "/projects/1/wiki/CookBook_documentation/annotate/2", :controller => 'wiki', :action => 'annotate', :project_id => '1', :page => 'CookBook_documentation', :version => '2' should_route :get, "/projects/22/wiki/ladida/rename", :controller => 'wiki', :action => 'rename', :project_id => '22', :page => 'ladida' - should_route :get, "/projects/567/wiki/page_index", :controller => 'wiki', :action => 'page_index', :project_id => '567' + should_route :get, "/projects/567/wiki/index", :controller => 'wiki', :action => 'index', :project_id => '567' should_route :get, "/projects/567/wiki/date_index", :controller => 'wiki', :action => 'date_index', :project_id => '567' should_route :get, "/projects/567/wiki/export", :controller => 'wiki', :action => 'export', :project_id => '567'