// 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&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> ' : '')
+ `<strong>Bug ${req.bug_id} – ${req.bug_summary.htmlEncode()}</strong>.</label>`
'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],
[% 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() %]
[% 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 %]
$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;