]> source.dussan.org Git - redmine.git/commitdiff
Fixed that delete watcher link was broken by r11290 (#13231).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Wed, 20 Feb 2013 20:43:28 +0000 (20:43 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Wed, 20 Feb 2013 20:43:28 +0000 (20:43 +0000)
Deleting a watcher now use DELETE /watchers instead of POST /watchers/destroy.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11443 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/helpers/watchers_helper.rb
config/routes.rb
test/functional/watchers_controller_test.rb
test/integration/routing/watchers_test.rb
test/ui/issues_test.rb

index 4aab507bdb7534e76e1a29ebc768cccb5e209b85..d7384e7a124545ab1e91d996d629c293e21f21ba 100644 (file)
@@ -63,11 +63,11 @@ module WatchersHelper
                :user_id => user}
         s << ' '
         s << link_to(image_tag('delete.png'), url,
-                     :remote => true, :method => 'post', :style => "vertical-align: middle", :class => "delete")
+                     :remote => true, :method => 'delete', :style => "vertical-align: middle", :class => "delete")
       end
-      content << content_tag('li', s)
+      content << content_tag('li', s, :class => "user-#{user.id}")
     end
-    content.present? ? content_tag('ul', content) : content
+    content.present? ? content_tag('ul', content, :class => 'watchers') : content
   end
 
   def watchers_checkboxes(object, users, checked=nil)
index b89973e55a23e8ec9671157378ee5655d2a2072a..7d0ff8573ffaf48bcb70f70b43b479f509586b66 100644 (file)
@@ -82,7 +82,7 @@ RedmineApp::Application.routes.draw do
   get 'watchers/new', :to => 'watchers#new'
   post 'watchers', :to => 'watchers#create'
   post 'watchers/append', :to => 'watchers#append'
-  post 'watchers/destroy', :to => 'watchers#destroy'
+  delete 'watchers', :to => 'watchers#destroy'
   get 'watchers/autocomplete_for_user', :to => 'watchers#autocomplete_for_user'
   # Specific routes for issue watchers API
   post 'issues/:object_id/watchers', :to => 'watchers#create', :object_type => 'issue'
index 7c80b0f4ba12584150b64aefcc6b56f95c93da67..bc8b58b0cdad180d22690ee4a0936a5f9b4259bf 100644 (file)
@@ -186,7 +186,7 @@ class WatchersControllerTest < ActionController::TestCase
   def test_remove_watcher
     @request.session[:user_id] = 2
     assert_difference('Watcher.count', -1) do
-      xhr :post, :destroy, :object_type => 'issue', :object_id => '2', :user_id => '3'
+      xhr :delete, :destroy, :object_type => 'issue', :object_id => '2', :user_id => '3'
       assert_response :success
       assert_match /watchers/, response.body
     end
index 39ef5a78638bdab4b0757fcf26db2dbe02c2e779..eb6a62163df4dd0655e095e54b857ace7109833b 100644 (file)
@@ -32,7 +32,7 @@ class RoutingWatchersTest < ActionController::IntegrationTest
         { :controller => 'watchers', :action => 'create' }
       )
     assert_routing(
-        { :method => 'post', :path => "/watchers/destroy" },
+        { :method => 'delete', :path => "/watchers" },
         { :controller => 'watchers', :action => 'destroy' }
       )
     assert_routing(
index 3a628c9b68b0bc2004ff23abd48ad65d56ee62b4..66a6197bb556ee2ad3803b6e542cd2fd1ba46343 100644 (file)
@@ -172,6 +172,19 @@ class Redmine::UiTest::IssuesTest < Redmine::UiTest::Base
     assert_equal 'CF value', issue.custom_field_value(field)
   end
 
+  def test_remove_issue_watcher_from_sidebar
+    user = User.find(3)
+    Watcher.create!(:watchable => Issue.find(1), :user => user)
+
+    log_user('jsmith', 'jsmith')
+    visit '/issues/1'
+    assert page.first('#sidebar').has_content?(user.name)
+    assert_difference 'Watcher.count', -1 do
+      page.first('ul.watchers .user-3 a.delete').click
+    end
+    assert page.first('#sidebar').has_no_content?(user.name)
+  end
+
   def test_watch_issue_via_context_menu
     log_user('jsmith', 'jsmith')
     visit '/issues'