github.com/emate/nomad@v0.8.2-wo-binpacking/ui/app/models/task-state.js (about) 1 import { none } from '@ember/object/computed'; 2 import { computed } from '@ember/object'; 3 import Fragment from 'ember-data-model-fragments/fragment'; 4 import attr from 'ember-data/attr'; 5 import { fragment, fragmentOwner, fragmentArray } from 'ember-data-model-fragments/attributes'; 6 7 export default Fragment.extend({ 8 name: attr('string'), 9 state: attr('string'), 10 startedAt: attr('date'), 11 finishedAt: attr('date'), 12 failed: attr('boolean'), 13 14 isActive: none('finishedAt'), 15 16 allocation: fragmentOwner(), 17 task: computed('allocation.taskGroup.tasks.[]', function() { 18 const tasks = this.get('allocation.taskGroup.tasks'); 19 return tasks && tasks.findBy('name', this.get('name')); 20 }), 21 22 resources: fragment('resources'), 23 events: fragmentArray('task-event'), 24 25 stateClass: computed('state', function() { 26 const classMap = { 27 pending: 'is-pending', 28 running: 'is-primary', 29 finished: 'is-complete', 30 failed: 'is-error', 31 }; 32 33 return classMap[this.get('state')] || 'is-dark'; 34 }), 35 });