blob: a3c40c0f86837920d0cd3b0d994bcc7c937e3776 [file] [log] [blame]
/**
* @license
* Copyright (C) 2019 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.
*/
import {htmlTemplate} from './gr-serviceuser-list_html.js';
const NOT_FOUND_MESSAGE = 'Not Found';
export class GrServiceUserList extends Polymer.GestureEventListeners(
Polymer.Element) {
/** @returns {?} template for this component */
static get template() { return htmlTemplate; }
/** @returns {string} name of the component */
static get is() { return 'gr-serviceuser-list'; }
/**
* Defines properties of the component
*
* @returns {?}
*/
static get properties() {
return {
_serviceUsers: Array,
_loading: {
type: Boolean,
value: true,
},
};
}
static get behaviors() {
return [
Gerrit.ListViewBehavior,
];
}
connectedCallback() {
super.connectedCallback();
this.dispatchEvent(
new CustomEvent(
'title-change',
{detail: {title: 'Service Users'}, bubbles: true, composed: true}));
this._getServiceUsers();
}
_getServiceUsers() {
return this.plugin.restApi('/a/config/server/serviceuser~serviceusers/')
.get('')
.then(serviceUsers => {
if (!serviceUsers) {
this._serviceUsers = [];
return;
}
this._serviceUsers = Object.keys(serviceUsers)
.map(key => {
const serviceUser = serviceUsers[key];
serviceUser.username = key;
return serviceUser;
});
this._loading = false;
});
}
_computeLoadingClass(loading) {
return loading ? 'loading' : '';
}
_active(item) {
if (!item) {
return NOT_FOUND_MESSAGE;
}
return item.inactive === true ? 'Inactive' : 'Active';
}
_getCreator(item) {
if (!item || !item.created_by) {
return NOT_FOUND_MESSAGE;
}
if (item.created_by.username != undefined) {
return item.created_by.username;
}
if (item.created_by._account_id != -1) {
return item.created_by._account_id;
}
return NOT_FOUND_MESSAGE;
}
_getOwnerGroup(item) {
return item && item.owner ? item.owner.name : NOT_FOUND_MESSAGE;
}
_computeServiceUserUrl(id) {
return `${this.plugin.screenUrl()}/user/${id}`;
}
_createNewServiceUser() {
page.show(this.plugin.screenUrl() + '/create');
}
}
customElements.define(GrServiceUserList.is, GrServiceUserList);