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