Merge "Show user status in autocomplete suggestions and account-label"
diff --git a/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry.js b/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry.js
index 5dea33d..46f2ed2 100644
--- a/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry.js
+++ b/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry.js
@@ -69,28 +69,27 @@
},
_makeSuggestion: function(reviewer) {
+ var name;
+ var value;
+ var generateStatusStr = function(account) {
+ return account.status ? ' (' + account.status + ')' : '';
+ };
if (reviewer.account) {
// Reviewer is an account suggestion from getChangeSuggestedReviewers.
- return {
- name: reviewer.account.name + ' (' + reviewer.account.email + ')',
- value: reviewer,
- };
+ name = reviewer.account.name + ' <' + reviewer.account.email + '>' +
+ generateStatusStr(reviewer.account);
+ value = reviewer;
} else if (reviewer.group) {
// Reviewer is a group suggestion from getChangeSuggestedReviewers.
- return {
- name: reviewer.group.name + ' (group)',
- value: reviewer,
- };
+ name = reviewer.group.name + ' (group)';
+ value = reviewer;
} else if (reviewer._account_id) {
// Reviewer is an account suggestion from getSuggestedAccounts.
- return {
- name: reviewer.name + ' (' + reviewer.email + ')',
- value: {
- account: reviewer,
- count: 1,
- },
- };
+ name = reviewer.name + ' <' + reviewer.email + '>' +
+ generateStatusStr(reviewer);
+ value = {account: reviewer, count: 1};
}
+ return {name: name, value: value};
},
_getReviewerSuggestions: function(input) {
@@ -104,7 +103,7 @@
if (!this.filter) { return reviewers.map(this._makeSuggestion); }
return reviewers
.filter(this.filter)
- .map(this._makeSuggestion);
+ .map(this._makeSuggestion.bind(this));
}.bind(this));
},
});
diff --git a/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry_test.html b/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry_test.html
index a4635d5..71e84d0 100644
--- a/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry_test.html
+++ b/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry_test.html
@@ -35,12 +35,13 @@
suite('gr-account-entry tests', function() {
var sandbox;
var _nextAccountId = 0;
- var makeAccount = function() {
+ var makeAccount = function(opt_status) {
var accountId = ++_nextAccountId;
return {
_account_id: accountId,
name: 'name ' + accountId,
email: 'email ' + accountId,
+ status: opt_status,
};
};
@@ -97,7 +98,7 @@
var account = makeAccount();
var suggestion = element._makeSuggestion({account: account});
assert.deepEqual(suggestion, {
- name: account.name + ' (' + account.email + ')',
+ name: account.name + ' <' + account.email + '>',
value: {account: account},
});
@@ -110,7 +111,21 @@
suggestion = element._makeSuggestion(account);
assert.deepEqual(suggestion, {
- name: account.name + ' (' + account.email + ')',
+ name: account.name + ' <' + account.email + '>',
+ value: {account: account, count: 1},
+ });
+
+ account = makeAccount('OOO');
+
+ suggestion = element._makeSuggestion({account: account});
+ assert.deepEqual(suggestion, {
+ name: account.name + ' <' + account.email + '> (OOO)',
+ value: {account: account},
+ });
+
+ suggestion = element._makeSuggestion(account);
+ assert.deepEqual(suggestion, {
+ name: account.name + ' <' + account.email + '> (OOO)',
value: {account: account, count: 1},
});
});
diff --git a/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label.html b/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label.html
index 1d2beab..43721fe 100644
--- a/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label.html
+++ b/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label.html
@@ -44,6 +44,9 @@
<span hidden$="[[!_computeShowEmail(showEmail, account)]]">
[[_computeEmailStr(account)]]
</span>
+ <template is="dom-if" if="[[account.status]]">
+ <span>([[account.status]])</span>
+ </template>
</span>
</span>
</template>