blob: 8f35dd4faa6deecebc5e902c7b1ea683e01614e0 [file] [log] [blame]
// 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.
(function() {
'use strict';
const NOT_FOUND_MESSAGE = 'Not Found';
Polymer({
is: 'gr-serviceuser-list',
_legacyUndefinedCheck: true,
properties: {
_serviceUsers: Array,
_loading: {
type: Boolean,
value: true,
},
},
behaviors: [
Gerrit.ListViewBehavior,
],
attached() {
this.fire('title-change', {title: 'Service Users'});
this._getServiceUsers();
},
_getServiceUsers() {
return this.plugin.restApi('/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;
});
},
_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');
},
});
})();