github.com/manicqin/nomad@v0.9.5/ui/app/routes/allocations/allocation.js (about) 1 import Route from '@ember/routing/route'; 2 import { collect } from '@ember/object/computed'; 3 import { watchRecord } from 'nomad-ui/utils/properties/watch'; 4 import WithWatchers from 'nomad-ui/mixins/with-watchers'; 5 import notifyError from 'nomad-ui/utils/notify-error'; 6 import { qpBuilder } from 'nomad-ui/utils/classes/query-params'; 7 import { jobCrumbs } from 'nomad-ui/utils/breadcrumb-utils'; 8 9 export default Route.extend(WithWatchers, { 10 startWatchers(controller, model) { 11 if (model) { 12 controller.set('watcher', this.watch.perform(model)); 13 } 14 }, 15 16 // Allocation breadcrumbs extend from job / task group breadcrumbs 17 // even though the route structure does not. 18 breadcrumbs(model) { 19 const jobQueryParams = qpBuilder({ 20 jobNamespace: model.get('job.namespace.name') || 'default', 21 }); 22 23 return [ 24 { label: 'Jobs', args: ['jobs.index', jobQueryParams] }, 25 ...jobCrumbs(model.get('job')), 26 { 27 label: model.get('taskGroupName'), 28 args: [ 29 'jobs.job.task-group', 30 model.get('job.plainId'), 31 model.get('taskGroupName'), 32 jobQueryParams, 33 ], 34 }, 35 { 36 label: model.get('shortId'), 37 args: ['allocations.allocation', model], 38 }, 39 ]; 40 }, 41 42 model() { 43 // Preload the job for the allocation since it's required for the breadcrumb trail 44 return this._super(...arguments) 45 .then(allocation => allocation.get('job').then(() => allocation)) 46 .catch(notifyError(this)); 47 }, 48 49 watch: watchRecord('allocation'), 50 51 watchers: collect('watch'), 52 });