diff --git a/polygerrit-ui/app/elements/change/gr-message/gr-message.js b/polygerrit-ui/app/elements/change/gr-message/gr-message.js
index c196051c56..3a3931ae17 100644
--- a/polygerrit-ui/app/elements/change/gr-message/gr-message.js
+++ b/polygerrit-ui/app/elements/change/gr-message/gr-message.js
@@ -86,6 +86,10 @@
},
},
+ behaviors: [
+ Gerrit.AnonymousNameBehavior,
+ ],
+
observers: [
'_updateExpandedClass(message.expanded)',
],
@@ -226,5 +230,15 @@
e.preventDefault();
this.fire('reply', {message: this.message});
},
+
+ _authorOrAnon(author) {
+ if (author && author.name) {
+ return author.name;
+ } else if (author && author.email) {
+ return author.email;
+ }
+
+ return this.getAnonymousName(this.config);
+ },
});
})();
diff --git a/polygerrit-ui/app/elements/change/gr-message/gr-message_test.html b/polygerrit-ui/app/elements/change/gr-message/gr-message_test.html
index 07f13dc274..cfeb9cdbff 100644
--- a/polygerrit-ui/app/elements/change/gr-message/gr-message_test.html
+++ b/polygerrit-ui/app/elements/change/gr-message/gr-message_test.html
@@ -211,5 +211,27 @@ limitations under the License.
};
assert.isOk(Polymer.dom(element.root).querySelector('.positiveVote'));
});
+
+ test('test for Anonymous Coward user and replace with Anonymous', () => {
+ element.config = {
+ user: {
+ anonymous_coward_name: 'Anonymous Coward',
+ },
+ };
+ element.account = {};
+ assert.deepEqual(
+ element._authorOrAnon(element.account), 'Anonymous');
+ });
+
+ test('test for anonymous_coward_name', () => {
+ element.config = {
+ user: {
+ anonymous_coward_name: 'TestAnon',
+ },
+ };
+ element.account = {};
+ assert.deepEqual(
+ element._authorOrAnon(element.account, element.config), 'TestAnon');
+ });
});
diff --git a/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown.html b/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown.html
index 4fc12b53fd..85db3a1551 100644
--- a/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown.html
+++ b/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown.html
@@ -14,6 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
+
@@ -40,7 +41,7 @@ limitations under the License.
items=[[links]]
top-content=[[topContent]]
horizontal-align="right">
- [[_accountName(account, _anonymousName)]]
+ [[_accountName(account)]]
diff --git a/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown.js b/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown.js
index 318794fa83..2d740d5261 100644
--- a/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown.js
+++ b/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown.js
@@ -16,24 +16,19 @@
const INTERPOLATE_URL_PATTERN = /\$\{([\w]+)\}/g;
- const ANONYMOUS_NAME = 'Anonymous';
-
Polymer({
is: 'gr-account-dropdown',
properties: {
account: Object,
- _anonymousName: {
- type: String,
- value: ANONYMOUS_NAME,
- },
+ config: Object,
links: {
type: Array,
computed: '_getLinks(_switchAccountUrl, _path)',
},
topContent: {
type: Array,
- computed: '_getTopContent(account, _anonymousName)',
+ computed: '_getTopContent(account)',
},
_path: {
type: String,
@@ -47,21 +42,21 @@
this._handleLocationChange();
this.listen(window, 'location-change', '_handleLocationChange');
this.$.restAPI.getConfig().then(cfg => {
+ this.config = cfg;
+
if (cfg && cfg.auth && cfg.auth.switch_account_url) {
this._switchAccountUrl = cfg.auth.switch_account_url;
} else {
this._switchAccountUrl = null;
}
this._hasAvatars = !!(cfg && cfg.plugin && cfg.plugin.has_avatars);
-
- if (cfg && cfg.user &&
- cfg.user.anonymous_coward_name &&
- cfg.user.anonymous_coward_name !== 'Anonymous Coward') {
- this._anonymousName = cfg.user.anonymous_coward_name;
- }
});
},
+ behaviors: [
+ Gerrit.AnonymousNameBehavior,
+ ],
+
detached() {
this.unlisten(window, 'location-change', '_handleLocationChange');
},
@@ -77,9 +72,9 @@
return links;
},
- _getTopContent(account, _anonymousName) {
+ _getTopContent(account) {
return [
- {text: this._accountName(account, _anonymousName), bold: true},
+ {text: this._accountName(account), bold: true},
{text: account.email ? account.email : ''},
];
},
@@ -97,13 +92,14 @@
});
},
- _accountName(account, _anonymousName) {
+ _accountName(account) {
if (account && account.name) {
return account.name;
} else if (account && account.email) {
return account.email;
}
- return _anonymousName;
+
+ return this.getAnonymousName(this.config);
},
});
})();
diff --git a/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown_test.html b/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown_test.html
index 6bda66fb77..6017cb915b 100644
--- a/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown_test.html
+++ b/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown_test.html
@@ -55,14 +55,22 @@ limitations under the License.
});
test('test for account without a name but using config', () => {
- element._anonymousName = 'WikiGerrit';
+ element.config = {
+ user: {
+ anonymous_coward_name: 'WikiGerrit',
+ },
+ };
element.account = {id: '0001'};
assert.deepEqual(element.topContent,
[{text: 'WikiGerrit', bold: true}, {text: ''}]);
});
test('test for account name as an email', () => {
- element._anonymousName = 'WikiGerrit';
+ element.config = {
+ user: {
+ anonymous_coward_name: 'WikiGerrit',
+ },
+ };
element.account = {email: 'john@doe.com'};
assert.deepEqual(element.topContent,
[{text: 'john@doe.com', bold: true}, {text: 'john@doe.com'}]);