github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/app/components/job-deployments-stream.js (about) 1 import Component from '@ember/component'; 2 import { computed } from '@ember/object'; 3 import { computed as overridable } from 'ember-overridable-computed'; 4 import moment from 'moment'; 5 import { classNames, tagName } from '@ember-decorators/component'; 6 import classic from 'ember-classic-decorator'; 7 8 @classic 9 @tagName('ol') 10 @classNames('timeline') 11 export default class JobDeploymentsStream extends Component { 12 @overridable(() => []) deployments; 13 14 @computed('deployments.@each.versionSubmitTime') 15 get sortedDeployments() { 16 return this.deployments.sortBy('versionSubmitTime').reverse(); 17 } 18 19 @computed('sortedDeployments.@each.version') 20 get annotatedDeployments() { 21 const deployments = this.sortedDeployments; 22 return deployments.map((deployment, index) => { 23 const meta = {}; 24 25 if (index === 0) { 26 meta.showDate = true; 27 } else { 28 const previousDeployment = deployments.objectAt(index - 1); 29 const previousSubmitTime = previousDeployment.get('version.submitTime'); 30 const submitTime = deployment.get('submitTime'); 31 if ( 32 submitTime && 33 previousSubmitTime && 34 moment(previousSubmitTime) 35 .startOf('day') 36 .diff(moment(submitTime).startOf('day'), 'days') > 0 37 ) { 38 meta.showDate = true; 39 } 40 } 41 42 return { deployment, meta }; 43 }); 44 } 45 }