mirror of https://github.com/rancher/ui.git
224 lines
5.0 KiB
JavaScript
224 lines
5.0 KiB
JavaScript
import Controller from '@ember/controller';
|
|
import { inject as service } from '@ember/service';
|
|
import { get, computed } from '@ember/object';
|
|
import {
|
|
searchFields as containerSearchFields
|
|
} from 'shared/components/pod-dots/component';
|
|
|
|
const podsHeaders = [
|
|
{
|
|
name: 'expand',
|
|
sort: false,
|
|
searchField: null,
|
|
width: 30
|
|
},
|
|
{
|
|
name: 'state',
|
|
sort: ['sortState', 'displayName'],
|
|
searchField: 'displayState',
|
|
translationKey: 'generic.state',
|
|
width: 120
|
|
},
|
|
{
|
|
name: 'name',
|
|
sort: ['sortName', 'id'],
|
|
searchField: 'displayName',
|
|
translationKey: 'generic.name',
|
|
},
|
|
{
|
|
name: 'image',
|
|
sort: ['image', 'displayName'],
|
|
searchField: 'image',
|
|
translationKey: 'generic.image',
|
|
},
|
|
{
|
|
name: 'scale',
|
|
sort: ['scale:desc', 'isGlobalScale:desc', 'displayName'],
|
|
searchField: null,
|
|
translationKey: 'stacksPage.table.scale',
|
|
classNames: 'text-center',
|
|
width: 100
|
|
},
|
|
]
|
|
|
|
const ingressHeaders = [
|
|
{
|
|
name: 'state',
|
|
sort: ['sortState','displayName'],
|
|
searchField: 'displayState',
|
|
translationKey: 'generic.state',
|
|
width: 120
|
|
},
|
|
{
|
|
name: 'name',
|
|
sort: ['sortName','id'],
|
|
searchField: 'displayName',
|
|
translationKey: 'generic.name',
|
|
},
|
|
{
|
|
name: 'created',
|
|
sort: ['created','id'],
|
|
classNames: 'text-right pr-20',
|
|
searchField: 'created',
|
|
translationKey: 'generic.created',
|
|
},
|
|
]
|
|
|
|
const servicesHeaders = [
|
|
{
|
|
name: 'state',
|
|
sort: ['stack.isDefault:desc','stack.displayName','sortState','displayName'],
|
|
searchField: 'displayState',
|
|
translationKey: 'generic.state',
|
|
width: 120
|
|
},
|
|
{
|
|
name: 'name',
|
|
sort: ['stack.isDefault:desc','stack.displayName','displayName','id'],
|
|
searchField: 'displayName',
|
|
translationKey: 'generic.name',
|
|
},
|
|
{
|
|
name: 'displayType',
|
|
sort: ['displayType','displayName','id'],
|
|
searchField: 'displayType',
|
|
translationKey: 'generic.type',
|
|
width: 150,
|
|
},
|
|
{
|
|
name: 'target',
|
|
sort: false,
|
|
searchField: 'displayTargets',
|
|
translationKey: 'dnsPage.table.target',
|
|
},
|
|
]
|
|
|
|
const volumesHeaders = [
|
|
// {
|
|
// name: 'expand',
|
|
// sort: false,
|
|
// searchField: null,
|
|
// width: 30
|
|
// },
|
|
{
|
|
name: 'state',
|
|
sort: ['sortState','displayName'],
|
|
searchField: 'displayState',
|
|
translationKey: 'generic.state',
|
|
width: 120
|
|
},
|
|
{
|
|
name: 'name',
|
|
sort: ['displayName','id'],
|
|
searchField: 'displayName',
|
|
translationKey: 'volumesPage.claimName.label',
|
|
},
|
|
{
|
|
name: 'size',
|
|
sort: ['sizeBytes'],
|
|
search: ['sizeBytes','displaySize'],
|
|
translationKey: 'generic.size',
|
|
width: 120
|
|
},
|
|
{
|
|
name: 'volume',
|
|
sort: ['volume.displayName','displayName','id'],
|
|
translationKey: 'volumesPage.volume.label',
|
|
searchField: null,
|
|
},
|
|
{
|
|
name: 'storageClass',
|
|
sort: ['storageClass.displayName','displayName','id'],
|
|
translationKey: 'volumesPage.storageClass.label',
|
|
searchField: null,
|
|
},
|
|
]
|
|
|
|
const secretsHeaders = [
|
|
{
|
|
name: 'state',
|
|
sort: ['sortState','name','id'],
|
|
type: 'string',
|
|
searchField: 'displayState',
|
|
translationKey: 'generic.state',
|
|
width: 125,
|
|
},
|
|
{
|
|
name: 'name',
|
|
sort: ['name','id'],
|
|
translationKey: 'generic.name',
|
|
},
|
|
{
|
|
name: 'namespace',
|
|
translationKey: 'generic.namespace',
|
|
searchField: 'namespace.displayName',
|
|
sort: ['namespace.displayName','name','id'],
|
|
},
|
|
{
|
|
name: 'keys',
|
|
translationKey: 'secretsPage.table.keys',
|
|
searchField: 'keys',
|
|
sort: ['firstKey','name','id'],
|
|
},
|
|
{
|
|
name: 'created',
|
|
translationKey: 'generic.created',
|
|
sort: ['created:desc','name','id'],
|
|
searchField: false,
|
|
type: 'string',
|
|
width: 150,
|
|
},
|
|
]
|
|
|
|
export default Controller.extend({
|
|
scope: service(),
|
|
|
|
ingressHeaders: ingressHeaders,
|
|
servicesHeaders: servicesHeaders,
|
|
volumesHeaders: volumesHeaders,
|
|
secretsHeaders: secretsHeaders,
|
|
ingressSearchText: '',
|
|
secretsSearchText: '',
|
|
podsHeaders: podsHeaders,
|
|
podsSearchText: '',
|
|
servicesSearchText: '',
|
|
volumesSearchText: '',
|
|
sortBy: 'name',
|
|
extraSearchFields: ['id:prefix', 'displayIp:ip'],
|
|
extraSearchSubFields: containerSearchFields,
|
|
expandedInstances: null,
|
|
|
|
actions: {
|
|
toggleExpand(instId) {
|
|
let list = this.get('expandedInstances');
|
|
if ( list.includes(instId) ) {
|
|
list.removeObject(instId);
|
|
} else {
|
|
list.addObject(instId);
|
|
}
|
|
},
|
|
},
|
|
|
|
init() {
|
|
this._super(...arguments);
|
|
this.set('expandedInstances',[]);
|
|
},
|
|
|
|
publicEndpoints: computed('model.app.workloads.@each.publicEndpoints', function() {
|
|
let out = [];
|
|
get(this, 'model.app.workloads').forEach((workload) => {
|
|
(get(workload, 'publicEndpoints') || []).forEach((endpoint) => {
|
|
out.push(endpoint);
|
|
});
|
|
});
|
|
return out;
|
|
}),
|
|
|
|
workloadsAndPods: computed('model.app.workloads', 'model.app.pods', function() {
|
|
let out = [];
|
|
out = this.get('model.app.pods').filter(obj => !obj.get('workloadId'));
|
|
out.pushObjects(this.get('model.app.workloads').slice());
|
|
return out;
|
|
}),
|
|
});
|