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