From 37d3f3faa9a639288e3c056d688d0114e943d70c Mon Sep 17 00:00:00 2001 From: Go MAEDA Date: Sun, 25 Jul 2021 02:27:54 +0000 Subject: [PATCH] Add watching users to a ticket should switch "watch" link to "unwatch" if own user was added (#15634). Patch by Takenori TAKAKI. git-svn-id: http://svn.redmine.org/redmine/trunk@21079 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/views/watchers/create.js.erb | 6 ++---- app/views/watchers/destroy.js.erb | 3 ++- test/system/issues_test.rb | 15 +++++++++++++++ 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/app/views/watchers/create.js.erb b/app/views/watchers/create.js.erb index 7541d20ff..b0421bc3a 100644 --- a/app/views/watchers/create.js.erb +++ b/app/views/watchers/create.js.erb @@ -4,8 +4,6 @@ $('#ajax-modal').html( :locals => {:watchables => @watchables, :users => @users})) %>'); <% if @watchables.size == 1 %> - $('#watchers').html( - '<%= escape_javascript( - render(:partial => 'watchers/watchers', - :locals => {:watched => @watchables.first})) %>'); + <%= render(:partial => 'watchers/set_watcher', + :locals => {:watched => @watchables, :user => User.current}) %> <% end %> diff --git a/app/views/watchers/destroy.js.erb b/app/views/watchers/destroy.js.erb index 413797dc2..12553e8e5 100644 --- a/app/views/watchers/destroy.js.erb +++ b/app/views/watchers/destroy.js.erb @@ -1,3 +1,4 @@ <% if @watchables.size == 1 %> -$('#watchers').html('<%= escape_javascript(render(:partial => 'watchers/watchers', :locals => {:watched => @watchables.first})) %>'); + <%= render(:partial => 'watchers/set_watcher', + :locals => {:watched => @watchables, :user => User.current}) %> <% end %> diff --git a/test/system/issues_test.rb b/test/system/issues_test.rb index 1d77a9829..4f4939a9b 100644 --- a/test/system/issues_test.rb +++ b/test/system/issues_test.rb @@ -290,6 +290,21 @@ class IssuesSystemTest < ApplicationSystemTestCase assert issue1.reload.watched_by?(jsmith) end + def test_change_watch_or_unwatch_icon_from_sidebar + user = User.find(2) + log_user('jsmith', 'jsmith') + visit '/issues/1' + assert page.has_css?('#content .contextual .issue-1-watcher.icon-fav-off') + # add watcher 'jsmith' from sidebar + page.find('#watchers .contextual a', :text => 'Add').click + page.find('#users_for_watcher label', :text => 'John Smith').click + page.find('#new-watcher-form p.buttons input[type=submit]').click + assert page.has_css?('#content .contextual .issue-1-watcher.icon-fav') + # remove watcher 'jsmith' from sidebar + page.find('#watchers ul li.user-2 a.delete').click + assert page.has_css?('#content .contextual .issue-1-watcher.icon-fav-off') + end + def test_bulk_watch_issues_via_context_menu log_user('jsmith', 'jsmith') visit '/issues'