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  });