ui/lib/shared/addon/components/cluster-templates-table/component.js

65 lines
2.0 KiB
JavaScript

import Component from '@ember/component';
import layout from './template';
import { computed, get } from '@ember/object';
const HEADERS = [
{
name: 'state',
sort: ['sortState', 'name', 'id'],
type: 'string',
searchField: 'displayState',
translationKey: 'generic.state',
width: 125,
},
{
name: 'displayName',
translationKey: 'clusterTemplatesPage.table.name',
searchField: 'displayName',
sort: ['displayName', 'name', 'id'],
},
{
name: 'defaultRevisionId',
translationKey: 'clusterTemplatesPage.headers.defaultRevisionId',
searchField: ['defaultRevisionId'],
sort: ['defaultRevisionId', 'name', 'id'],
width: 175,
classNames: 'text-center',
},
{
classNames: 'text-right pr-20',
name: 'created',
sort: ['created', 'name', 'id'],
searchField: false,
translationKey: 'clusterTemplatesPage.headers.created',
width: 175,
},
];
export default Component.extend({
layout,
clusterTemplates: null,
clusterTemplateRevisions: null,
searchText: null,
descending: false,
suffix: true,
sortBy: 'displayName',
headers: HEADERS,
extraSearchFields: ['clusterTemplate.displayName'],
selectionChanged: null,
rows: computed('clusterTemplateRevisions.@each.{id,state,enabled}', function() {
const { clusterTemplateRevisions = [] } = this;
return clusterTemplateRevisions.sortBy('displayName');
}),
clusterTemplatesWithoutRevisionsRows: computed('clusterTemplateRevisions.each.{clusterTemplate,enabled}', 'clusterTemplates.@each.{defaultRevisionId,revisionsCount,revisions,enabled}', function() {
const { clusterTemplates = [] } = this;
return clusterTemplates.filter((ct) => {
return get(ct, 'enabled') && get(ct, 'revisionsCount') === 0;
}).sortBy('displayName');
}),
});