blob: 2dee2f624414887013a3275f9e7e65f61beb5ffb [file] [log] [blame]
// Copyright (C) 2016 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
(function() {
'use strict';
Polymer({
is: 'gr-account-label',
properties: {
/**
* @type {{ name: string, status: string }}
*/
account: Object,
avatarImageSize: {
type: Number,
value: 32,
},
showEmail: {
type: Boolean,
value: false,
},
title: {
type: String,
reflectToAttribute: true,
computed: '_computeAccountTitle(account)',
},
hasTooltip: {
type: Boolean,
reflectToAttribute: true,
computed: '_computeHasTooltip(account)',
},
hideAvatar: {
type: Boolean,
value: false,
},
_serverConfig: {
type: Object,
value: null,
},
},
behaviors: [
Gerrit.AnonymousNameBehavior,
Gerrit.TooltipBehavior,
],
ready() {
this.$.restAPI.getConfig()
.then(config => { this._serverConfig = config; });
},
_computeName(account, config) {
return this.getUserName(config, account, false);
},
_computeAccountTitle(account) {
if (!account) { return; }
let result = '';
if (this._computeName(account, this._serverConfig)) {
result += this._computeName(account, this._serverConfig);
}
if (account.email) {
result += ' <' + account.email + '>';
}
return result;
},
_computeShowEmail(showEmail, account) {
return !!(showEmail && account && account.email);
},
_computeEmailStr(account) {
if (!account || !account.email) {
return '';
}
if (account.name) {
return '(' + account.email + ')';
}
return account.email;
},
_computeHasTooltip(account) {
// If an account has loaded to fire this method, then set to true.
return !!account;
},
});
})();