]> source.dussan.org Git - redmine.git/commitdiff
Merged r4088 from trunk.
authorEric Davis <edavis@littlestreamsoftware.com>
Mon, 20 Sep 2010 04:05:56 +0000 (04:05 +0000)
committerEric Davis <edavis@littlestreamsoftware.com>
Mon, 20 Sep 2010 04:05:56 +0000 (04:05 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.0-stable@4147 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/versions_controller.rb
app/views/versions/edit.rhtml
config/routes.rb
lib/redmine.rb
test/functional/versions_controller_test.rb
test/integration/routing_test.rb

index dd01da95b3b5a910be5f80aac7a8261b77bde9ee..96c240c5035e92586d178123ec37f3444f0a9cf6 100644 (file)
@@ -87,8 +87,11 @@ class VersionsController < ApplicationController
       end
     end
   end
-  
+
   def edit
+  end
+  
+  def update
     if request.post? && params[:version]
       attributes = params[:version].dup
       attributes.delete('sharing') unless @version.allowed_sharings.include?(attributes['sharing'])
index 1556ebba1caf20516add7a5860c948d3e27d66ad..8c437eb5e55c6319a2362650a1b215a94d7d82a0 100644 (file)
@@ -1,6 +1,6 @@
 <h2><%=l(:label_version)%></h2>
 
-<% labelled_tabular_form_for :version, @version, :url => { :action => 'edit' } do |f| %>
+<% labelled_tabular_form_for :version, @version, :url => { :action => 'update', :id => @version } do |f| %>
 <%= render :partial => 'form', :locals => { :f => f } %>
 <%= submit_tag l(:button_save) %>
 <% end %>
index 199fe6aee076991fec47a2ec8680b91f39f75476..68d8170b60019d8d476c4e275852176cab00fa85 100644 (file)
@@ -235,7 +235,10 @@ ActionController::Routing::Routes.draw do |map|
   map.with_options :controller => 'versions' do |versions|
     versions.connect 'projects/:project_id/versions/new', :action => 'new'
     versions.connect 'projects/:project_id/roadmap', :action => 'index'
+    versions.connect 'versions/:action/:id', :conditions => {:method => :get}
+    
     versions.with_options :conditions => {:method => :post} do |version_actions|
+      version_actions.connect 'versions/update/:id', :action => 'update'
       version_actions.connect 'projects/:project_id/versions/close_completed', :action => 'close_completed'
     end
   end
index 7c9c1d6d1b8afceb3c892c1add57b387c503a8e9..4d9cea474ea567387abebade2a2a29e73a53915c 100644 (file)
@@ -50,7 +50,7 @@ Redmine::AccessControl.map do |map|
   map.permission :edit_project, {:projects => [:settings, :edit, :update]}, :require => :member
   map.permission :select_project_modules, {:projects => :modules}, :require => :member
   map.permission :manage_members, {:projects => :settings, :members => [:new, :edit, :destroy, :autocomplete_for_member]}, :require => :member
-  map.permission :manage_versions, {:projects => :settings, :versions => [:new, :edit, :close_completed, :destroy]}, :require => :member
+  map.permission :manage_versions, {:projects => :settings, :versions => [:new, :edit, :update, :close_completed, :destroy]}, :require => :member
   map.permission :add_subprojects, {:projects => [:new, :create]}, :require => :member
   
   map.project_module :issue_tracking do |map|
index f738794ae9c36598921f363b9e7a9aaf7dadc339..9e8cdf90de2a9bb646b1c5121a89a84371a42aaf 100644 (file)
@@ -113,9 +113,9 @@ class VersionsControllerTest < ActionController::TestCase
     assert_not_nil Version.find_by_status('closed')
   end
   
-  def test_post_edit
+  def test_post_update
     @request.session[:user_id] = 2
-    post :edit, :id => 2, 
+    post :update, :id => 2, 
                 :version => { :name => 'New version name', 
                               :effective_date => Date.today.strftime("%Y-%m-%d")}
     assert_redirected_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => 'ecookbook'
index 5932ab32d4296521367367f144d8f7a7af8583a6..b009d07adf40333c9a46d4369a7c4ed7c3e5ddba 100644 (file)
@@ -252,10 +252,16 @@ class RoutingTest < ActionController::IntegrationTest
     should_route :post, "/users/567/memberships/12/destroy", :controller => 'users', :action => 'destroy_membership', :id => '567', :membership_id => '12'
   end
 
+  # TODO: should they all be scoped under /projects/:project_id ?
   context "versions" do
     should_route :get, "/projects/foo/versions/new", :controller => 'versions', :action => 'new', :project_id => 'foo'
+    should_route :get, "/versions/show/1", :controller => 'versions', :action => 'show', :id => '1'
+    should_route :get, "/versions/edit/1", :controller => 'versions', :action => 'edit', :id => '1'
 
     should_route :post, "/projects/foo/versions/new", :controller => 'versions', :action => 'new', :project_id => 'foo'
+    should_route :post, "/versions/update/1", :controller => 'versions', :action => 'update', :id => '1'
+
+    should_route :delete, "/versions/destroy/1", :controller => 'versions', :action => 'destroy', :id => '1'
   end
 
   context "wiki (singular, project's pages)" do