summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extensions/BugModal/lib/WebService.pm3
-rw-r--r--extensions/BugModal/template/en/default/bug_modal/cc_list.html.tmpl18
-rw-r--r--extensions/BugModal/template/en/default/bug_modal/edit.html.tmpl1
-rw-r--r--extensions/BugModal/template/en/default/bug_modal/user.html.tmpl3
-rw-r--r--extensions/BugModal/web/bug_modal.css17
-rw-r--r--extensions/BugModal/web/bug_modal.js29
6 files changed, 66 insertions, 5 deletions
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 %]
+ <div class="cc-user" data-n="[% loop.count FILTER none %]">
+ [% IF bug.user.canedit %]
+ <a href="#" id="ccr-[% loop.count FILTER none %]" class="cc-remove"
+ data-n="[% loop.count FILTER none %]" data-login="[% cc.login FILTER html %]"
+ title="Remove" style="visibility:hidden">&nbsp;&#x2716;&nbsp;</a>
+ [% END %]
+ [% INCLUDE bug_modal/user.html.tmpl
+ u = cc
+ id = "ccu-" _ loop.count
+ %]
+ </div>
+[% 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 %]
+ <input type="hidden" name="removecc" id="removecc">
<span id="cc-latch">&#9656;</span>
<span id="cc-summary">
[%
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;
%]
-<div class="vcard vcard_[% u.id FILTER none %]">
+<div class="vcard vcard_[% u.id FILTER none %]" [% IF id %]id="[% id FILTER html %]"[% 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');
+ $('<input>').attr({
+ type: 'hidden',
+ id: 'cc-' + n,
+ value: $('#ccr-' + n).data('login'),
+ name: 'cc'
+ }).appendTo('#changeform');
+ }
+ });
}
);
}