Show reviewer on comment tooltip

Example: imgur.com/a/T976Bsw
Change-Id: I6cf40a0f6685a3420afa74b34274bf0978680890
This commit is contained in:
Frank Borden
2020-11-18 14:56:12 -08:00
parent 5ebfc5e25e
commit 0f63f19f1b
2 changed files with 21 additions and 11 deletions

View File

@@ -152,15 +152,19 @@ export class GrChangeListItem extends ChangeTableMixin(
if (!label || category === LabelCategory.NOT_APPLICABLE) { if (!label || category === LabelCategory.NOT_APPLICABLE) {
return 'Label not applicable'; return 'Label not applicable';
} }
const titleParts: string[] = [];
if (category === LabelCategory.UNRESOLVED_COMMENTS) { if (category === LabelCategory.UNRESOLVED_COMMENTS) {
const num = change?.unresolved_comment_count ?? 0; const num = change?.unresolved_comment_count ?? 0;
const plural = num > 1 ? 's' : ''; const plural = num > 1 ? 's' : '';
return `${num} unresolved comment${plural}`; titleParts.push(`${num} unresolved comment${plural}`);
} }
const significantLabel = const significantLabel =
label.rejected || label.approved || label.disliked || label.recommended; label.rejected || label.approved || label.disliked || label.recommended;
if (significantLabel && significantLabel.name) { if (significantLabel?.name) {
return `${labelName}\nby ${significantLabel.name}`; titleParts.push(`${labelName} by ${significantLabel.name}`);
}
if (titleParts.length > 0) {
return titleParts.join(',\n');
} }
return labelName; return labelName;
} }

View File

@@ -88,41 +88,47 @@ suite('gr-change-list-item tests', () => {
'Label not applicable'); 'Label not applicable');
assert.equal(element._computeLabelTitle( assert.equal(element._computeLabelTitle(
{labels: {Verified: {approved: {name: 'Diffy'}}}}, 'Verified'), {labels: {Verified: {approved: {name: 'Diffy'}}}}, 'Verified'),
'Verified\nby Diffy'); 'Verified by Diffy');
assert.equal(element._computeLabelTitle( assert.equal(element._computeLabelTitle(
{labels: {Verified: {approved: {name: 'Diffy'}}}}, 'Code-Review'), {labels: {Verified: {approved: {name: 'Diffy'}}}}, 'Code-Review'),
'Label not applicable'); 'Label not applicable');
assert.equal(element._computeLabelTitle( assert.equal(element._computeLabelTitle(
{labels: {Verified: {rejected: {name: 'Diffy'}}}}, 'Verified'), {labels: {Verified: {rejected: {name: 'Diffy'}}}}, 'Verified'),
'Verified\nby Diffy'); 'Verified by Diffy');
assert.equal(element._computeLabelTitle( assert.equal(element._computeLabelTitle(
{labels: {'Code-Review': {disliked: {name: 'Diffy'}, value: -1}}}, {labels: {'Code-Review': {disliked: {name: 'Diffy'}, value: -1}}},
'Code-Review'), 'Code-Review\nby Diffy'); 'Code-Review'), 'Code-Review by Diffy');
assert.equal(element._computeLabelTitle( assert.equal(element._computeLabelTitle(
{labels: {'Code-Review': {recommended: {name: 'Diffy'}, value: 1}}}, {labels: {'Code-Review': {recommended: {name: 'Diffy'}, value: 1}}},
'Code-Review'), 'Code-Review\nby Diffy'); 'Code-Review'), 'Code-Review by Diffy');
assert.equal(element._computeLabelTitle( assert.equal(element._computeLabelTitle(
{labels: {'Code-Review': {recommended: {name: 'Diffy'}, {labels: {'Code-Review': {recommended: {name: 'Diffy'},
rejected: {name: 'Admin'}}}}, 'Code-Review'), rejected: {name: 'Admin'}}}}, 'Code-Review'),
'Code-Review\nby Admin'); 'Code-Review by Admin');
assert.equal(element._computeLabelTitle( assert.equal(element._computeLabelTitle(
{labels: {'Code-Review': {approved: {name: 'Diffy'}, {labels: {'Code-Review': {approved: {name: 'Diffy'},
rejected: {name: 'Admin'}}}}, 'Code-Review'), rejected: {name: 'Admin'}}}}, 'Code-Review'),
'Code-Review\nby Admin'); 'Code-Review by Admin');
assert.equal(element._computeLabelTitle( assert.equal(element._computeLabelTitle(
{labels: {'Code-Review': {recommended: {name: 'Diffy'}, {labels: {'Code-Review': {recommended: {name: 'Diffy'},
disliked: {name: 'Admin'}, value: -1}}}, 'Code-Review'), disliked: {name: 'Admin'}, value: -1}}}, 'Code-Review'),
'Code-Review\nby Admin'); 'Code-Review by Admin');
assert.equal(element._computeLabelTitle( assert.equal(element._computeLabelTitle(
{labels: {'Code-Review': {approved: {name: 'Diffy'}, {labels: {'Code-Review': {approved: {name: 'Diffy'},
disliked: {name: 'Admin'}, value: -1}}}, 'Code-Review'), disliked: {name: 'Admin'}, value: -1}}}, 'Code-Review'),
'Code-Review\nby Diffy'); 'Code-Review by Diffy');
assert.equal(element._computeLabelTitle( assert.equal(element._computeLabelTitle(
{ {
labels: {'Code-Review': {approved: true, value: 1}}, labels: {'Code-Review': {approved: true, value: 1}},
unresolved_comment_count: 1, unresolved_comment_count: 1,
}, 'Code-Review'), }, 'Code-Review'),
'1 unresolved comment'); '1 unresolved comment');
assert.equal(element._computeLabelTitle(
{
labels: {'Code-Review': {approved: {name: 'Diffy'}, value: 1}},
unresolved_comment_count: 1,
}, 'Code-Review'),
'1 unresolved comment,\nCode-Review by Diffy');
assert.equal(element._computeLabelTitle( assert.equal(element._computeLabelTitle(
{ {
labels: {'Code-Review': {approved: true, value: 1}}, labels: {'Code-Review': {approved: true, value: 1}},