// 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; }, }); })();