From c2364b357634e07c1b709c5cb120181ae3bc5e65 Mon Sep 17 00:00:00 2001 From: Byron Jones Date: Mon, 12 Oct 2015 12:53:40 +0800 Subject: Bug 1150358 - cannot remove other people from the cc list --- extensions/BugModal/lib/WebService.pm | 3 ++- .../en/default/bug_modal/cc_list.html.tmpl | 18 +++++++++++--- .../template/en/default/bug_modal/edit.html.tmpl | 1 + .../template/en/default/bug_modal/user.html.tmpl | 3 ++- extensions/BugModal/web/bug_modal.css | 17 +++++++++++++ extensions/BugModal/web/bug_modal.js | 29 ++++++++++++++++++++++ 6 files changed, 66 insertions(+), 5 deletions(-) (limited to 'extensions') diff --git a/extensions/BugModal/lib/WebService.pm b/extensions/BugModal/lib/WebService.pm index 2461cf2fa..e85225f60 100644 --- a/extensions/BugModal/lib/WebService.pm +++ b/extensions/BugModal/lib/WebService.pm @@ -127,8 +127,9 @@ sub cc { my $template = Bugzilla->template; my $bug = Bugzilla::Bug->check({ id => $params->{id} }); my $vars = { + bug => $bug, cc_list => [ - sort { lc($a->moz_nick) cmp lc($b->moz_nick) } + sort { lc($a->identity) cmp lc($b->identity) } @{ $bug->cc_users } ] }; diff --git a/extensions/BugModal/template/en/default/bug_modal/cc_list.html.tmpl b/extensions/BugModal/template/en/default/bug_modal/cc_list.html.tmpl index 37f582e0e..ceb6e3b62 100644 --- a/extensions/BugModal/template/en/default/bug_modal/cc_list.html.tmpl +++ b/extensions/BugModal/template/en/default/bug_modal/cc_list.html.tmpl @@ -9,8 +9,20 @@ [% UNLESS cc_list.size; 'None'; - END; - FOREACH cc IN cc_list; - INCLUDE bug_modal/user.html.tmpl u=cc; + RETURN; END; %] + +[% FOREACH cc IN cc_list %] +
+ [% IF bug.user.canedit %] + + [% END %] + [% INCLUDE bug_modal/user.html.tmpl + u = cc + id = "ccu-" _ loop.count + %] +
+[% END %] diff --git a/extensions/BugModal/template/en/default/bug_modal/edit.html.tmpl b/extensions/BugModal/template/en/default/bug_modal/edit.html.tmpl index 5d148a7dd..ddf37a26c 100644 --- a/extensions/BugModal/template/en/default/bug_modal/edit.html.tmpl +++ b/extensions/BugModal/template/en/default/bug_modal/edit.html.tmpl @@ -617,6 +617,7 @@ [% END %] [% IF bug.cc && bug.cc.size %] + [% diff --git a/extensions/BugModal/template/en/default/bug_modal/user.html.tmpl b/extensions/BugModal/template/en/default/bug_modal/user.html.tmpl index 062276614..4c28936cc 100644 --- a/extensions/BugModal/template/en/default/bug_modal/user.html.tmpl +++ b/extensions/BugModal/template/en/default/bug_modal/user.html.tmpl @@ -12,6 +12,7 @@ # gravatar_size : size of the gravator icon (default 0, which disables the gravatar) # gravatar_only : boolean, if true output just the gravatar (not-simple only) # nick_only : boolean, if true, the nickname will be used instead of the full name + # id : string, if provided the id of the vcard div #%] [% @@ -24,7 +25,7 @@ IF user.settings.show_gravatars.value != 'On'; gravatar_size = 0; END; %] -
+
[% FILTER collapse %] [% IF simple %] diff --git a/extensions/BugModal/web/bug_modal.css b/extensions/BugModal/web/bug_modal.css index 21d8a34d0..9090945d3 100644 --- a/extensions/BugModal/web/bug_modal.css +++ b/extensions/BugModal/web/bug_modal.css @@ -323,6 +323,23 @@ input[type="number"] { max-height: 150px; overflow-y: auto; clear: both; + white-space: nowrap; +} + +#cc-list .vcard { + display: inline-block; +} + +#cc-list button { + padding: 2px 4px; +} + +.cc-remove { + font-size: 120%; +} + +.cc-removed { + text-decoration: line-through; } #add-cc-btn { diff --git a/extensions/BugModal/web/bug_modal.js b/extensions/BugModal/web/bug_modal.js index 098450cd9..74ee83312 100644 --- a/extensions/BugModal/web/bug_modal.js +++ b/extensions/BugModal/web/bug_modal.js @@ -166,6 +166,35 @@ $(function() { function(data) { $('#cc-list').html(data.html); latch.data('fetched', true); + $('#cc-list .cc-user').hover( + function() { + $('#ccr-' + $(this).data('n')).css('visibility', 'visible'); + }, + function() { + $('#ccr-' + $(this).data('n')).css('visibility', 'hidden'); + } + ); + $('#cc-list .cc-remove') + .click(function(event) { + event.preventDefault(); + $('#top-save-btn').show(); + var n = $(this).data('n'); + var ccu = $('#ccu-' + n); + if (ccu.hasClass('cc-removed')) { + ccu.removeClass('cc-removed'); + $('#cc-' + n).remove(); + } + else { + $('#removecc').val('on'); + ccu.addClass('cc-removed'); + $('').attr({ + type: 'hidden', + id: 'cc-' + n, + value: $('#ccr-' + n).data('login'), + name: 'cc' + }).appendTo('#changeform'); + } + }); } ); } -- cgit v1.2.3-24-g4f1b