ui/lib/nodes/addon/node-templates/controller.js

62 lines
1.6 KiB
JavaScript

import { inject as service } from '@ember/service';
import Controller from '@ember/controller';
import { get, computed } from '@ember/object';
const HEADERS = [
{
name: 'state',
sort: ['sortState', 'name', 'id'],
translationKey: 'nodeTemplatesPage.table.state',
width: 100,
},
{
name: 'name',
sort: ['name', 'id'],
translationKey: 'nodeTemplatesPage.table.name',
},
{
name: 'owner',
sort: ['creator.displayName', 'name', 'id'],
translationKey: 'nodeTemplatesPage.table.owner',
width: 150,
},
{
name: 'provider',
sort: ['displayProvider', 'name', 'id'],
translationKey: 'nodeTemplatesPage.table.provider',
width: 150,
},
{
name: 'location',
sort: ['displayLocation', 'name', 'id'],
translationKey: 'nodeTemplatesPage.table.location',
width: 150,
},
{
name: 'size',
sort: ['displaySize', 'name', 'id'],
translationKey: 'nodeTemplatesPage.table.size',
width: 150,
},
];
export default Controller.extend({
modalService: service('modal'),
sortBy: 'name',
headers: HEADERS,
extraSearchFields: [
'displayUserLabelStrings',
'displayTaintsStrings'
],
actions: {
newTemplate() {
get(this, 'modalService').toggleModal('modal-edit-node-template');
},
},
filteredNodeTemplates: computed('model.nodeTemplates.@each.{id,name,state,displayLocation,displaySize}', function() {
return get(this, 'model.nodeTemplates').filterBy('displayName');
}),
});