]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1480042 - Request queue dropdown badge shows empty names for some display names
authorKohei Yoshino <kohei.yoshino@gmail.com>
Wed, 14 Nov 2018 23:07:16 +0000 (18:07 -0500)
committerGitHub <noreply@github.com>
Wed, 14 Nov 2018 23:07:16 +0000 (18:07 -0500)
extensions/Review/web/js/badge.js
request.cgi
template/en/default/request/queue.csv.tmpl
template/en/default/request/queue.html.tmpl
template/en/default/request/queue.json.tmpl

index 411a7174235db12cb3f9322d0c571e21bcbd14b0..7280e71883eb3e1f36655876f655eb3fba3f7e8d 100644 (file)
@@ -84,15 +84,14 @@ Bugzilla.Review.Badge = class Badge {
         // Show up to 20 newest requests
         requests.slice(0, 20).forEach(req => {
             const $li = document.createElement('li');
-            const [, name, email] = req.requester.match(/^(?:(.*)\s<)?(.+?)>?$/);
-            const pretty_name = name ? name.replace(/([\[\(<‹].*?[›>\)\]]|\:[\w\-]+|\s+\-\s+.*)/g, '').trim() : email;
+            const { nick, gravatar } = req.requester;
             const [link, attach_label] = this.get_link(req);
 
             $li.setAttribute('role', 'none');
             $li.innerHTML = `<a href="${link.htmlEncode()}" role="menuitem" tabindex="-1" `
                 + `class="${(req.restricted ? 'secure' : '')}" data-type="${req.type}">`
-                + `<img src="https://secure.gravatar.com/avatar/${md5(email.toLowerCase())}?d=mm&amp;size=64" alt="">`
-                + `<label><strong>${pretty_name.htmlEncode()}</strong> asked for your `
+                + `<img src="${gravatar}" alt="">`
+                + `<label><strong>${nick.htmlEncode()}</strong> asked for your `
                 + (req.type === 'needinfo' ? 'info' : req.type) + (attach_label ? ` on ${attach_label}` : '')
                 + ' in ' + (req.restricted ? '<span class="icon" aria-label="secure"></span>&nbsp;' : '')
                 + `<strong>Bug ${req.bug_id} &ndash; ${req.bug_summary.htmlEncode()}</strong>.</label>`
index 9f5d249cc5e5cd958ee9fd03ab04a0e9d6ebb37c..712013d780a8b0e31d263ea446898956c5759b4c 100755 (executable)
@@ -288,8 +288,8 @@ sub queue {
           'category'        => "$data->[5]: $data->[6]" ,
           'attach_id'       => $data->[7] ,
           'attach_summary'  => $data->[8] ,
-          'requester'       => ($data->[9] ? "$data->[9] <$data->[10]>" : $data->[10]) ,
-          'requestee'       => ($data->[11] ? "$data->[11] <$data->[12]>" : $data->[12]) ,
+          'requester'       => Bugzilla::User->new({ name => $data->[10], cache => 1 }) ,
+          'requestee'       => Bugzilla::User->new({ name => $data->[12], cache => 1 }) ,
           'restricted'      => $data->[13] ? 1 : 0,
           'created'         => $data->[14],
           'attach_mimetype' => $data->[15],
index c6d962b4f33ab30ef2265b65944b6e48443e76a5..16c7bd7806e50ca2c483568d7a436abf0838d661 100644 (file)
@@ -36,7 +36,11 @@ No requests.
       [% IF column == 'created' %]
         [% request.$column FILTER time FILTER csv %]
       [% ELSIF column.match('^requeste') %]
-        [% request.$column FILTER email FILTER csv %]
+        [% IF request.$column.name %]
+          [% request.$column.name _ ' <' _ request.$column.email _ '>' FILTER email FILTER csv %]
+        [% ELSE %]
+          [% request.$column.email FILTER email FILTER csv %]
+        [% END %]
       [% ELSE %]
         [% request.$column FILTER csv %]
       [% END %][% ',' IF NOT loop.last() %]
index 44d3933ca3e62d48a3a3b5887ec1e35ee4953867..e87b703acbd102814b72e4045567d588674fc166 100644 (file)
@@ -265,11 +265,19 @@ to some group are shown by default.
 [% END %]
 
 [% BLOCK display_requestee %]
-  [% request.requestee FILTER email FILTER html %]
+  [% IF request.requestee.name %]
+    [% request.requestee.name _ ' <' _ request.requestee.email _ '>' FILTER email FILTER html %]
+  [% ELSE %]
+    [% request.requestee.email FILTER email FILTER html %]
+  [% END %]
 [% END %]
 
 [% BLOCK display_requester %]
-  [% request.requester FILTER email FILTER html %]
+  [% IF request.requester.name %]
+    [% request.requester.name _ ' <' _ request.requester.email _ '>' FILTER email FILTER html %]
+  [% ELSE %]
+    [% request.requester.email FILTER email FILTER html %]
+  [% END %]
 [% END %]
 
 [% BLOCK display_created %]
index 50638de9e2737305e9c2dfedfcf4190f9c8a40ea..bc106a10b0d8beb50fba9ebb0dcc9779458e1039 100644 (file)
@@ -22,7 +22,10 @@ foreach my $request (@$requests) {
             $val = $time_filter->( $request->{$column} );
         }
         elsif ( $column =~ /^requeste/ ) {
-            $val = $mail_filter->( $request->{$column} );
+            $val = {
+                nick => $request->{$column}->nick,
+                gravatar => $request->{$column}->gravatar,
+            };
         }
         elsif ( $column =~ /_id$/ ) {
             $val = $request->{$column} ? 0 + $request->{$column} : undef;