 8cdc76ba4c
			
		
	
	8cdc76ba4c
	
	
	
		
			
			These tags are preserved by the Closure compiler and vulcanize in order to serve the license notices embedded in the outputs. In a standalone Gerrit server, these license are also covered in the LICENSES.txt served with the documentation. When serving PG assets from a CDN, it's less obvious what the corresponding LICENSES.txt file is, since the CDN is not directly linked to a running Gerrit server. Safer to embed the licenses in the assets themselves. Change-Id: Id1add1451fad1baa7916882a6bda02c326ccc988
		
			
				
	
	
		
			92 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * @license
 | |
|  * Copyright (C) 2017 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-user-header',
 | |
|     properties: {
 | |
|       /** @type {?String} */
 | |
|       userId: {
 | |
|         type: String,
 | |
|         observer: '_accountChanged',
 | |
|       },
 | |
| 
 | |
|       showDashboardLink: {
 | |
|         type: Boolean,
 | |
|         value: false,
 | |
|       },
 | |
| 
 | |
|       loggedIn: {
 | |
|         type: Boolean,
 | |
|         value: false,
 | |
|       },
 | |
| 
 | |
|       /**
 | |
|        * @type {?{name: ?, email: ?, registered_on: ?}}
 | |
|        */
 | |
|       _accountDetails: {
 | |
|         type: Object,
 | |
|         value: null,
 | |
|       },
 | |
| 
 | |
|       /** @type {?String} */
 | |
|       _status: {
 | |
|         type: String,
 | |
|         value: null,
 | |
|       },
 | |
|     },
 | |
| 
 | |
|     _accountChanged(userId) {
 | |
|       if (!userId) {
 | |
|         this._accountDetails = null;
 | |
|         this._status = null;
 | |
|         return;
 | |
|       }
 | |
| 
 | |
|       this.$.restAPI.getAccountDetails(userId).then(details => {
 | |
|         this._accountDetails = details;
 | |
|       });
 | |
|       this.$.restAPI.getAccountStatus(userId).then(status => {
 | |
|         this._status = status;
 | |
|       });
 | |
|     },
 | |
| 
 | |
|     _computeDisplayClass(status) {
 | |
|       return status ? ' ' : 'hide';
 | |
|     },
 | |
| 
 | |
|     _computeDetail(accountDetails, name) {
 | |
|       return accountDetails ? accountDetails[name] : '';
 | |
|     },
 | |
| 
 | |
|     _computeStatusClass(accountDetails) {
 | |
|       return this._computeDetail(accountDetails, 'status') ? '' : 'hide';
 | |
|     },
 | |
| 
 | |
|     _computeDashboardUrl(accountDetails) {
 | |
|       if (!accountDetails || !accountDetails.email) { return null; }
 | |
|       return Gerrit.Nav.getUrlForUserDashboard(accountDetails.email);
 | |
|     },
 | |
| 
 | |
|     _computeDashboardLinkClass(showDashboardLink, loggedIn) {
 | |
|       return showDashboardLink && loggedIn ?
 | |
|           'dashboardLink' : 'dashboardLink hide';
 | |
|     },
 | |
|   });
 | |
| })();
 |