github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/app/components/job-versions-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 JobVersionsStream extends Component { 12 @overridable(() => []) versions; 13 14 // Passes through to the job-diff component 15 verbose = true; 16 17 @computed('versions.[]') 18 get annotatedVersions() { 19 const versions = this.versions.sortBy('submitTime').reverse(); 20 return versions.map((version, index) => { 21 const meta = {}; 22 23 if (index === 0) { 24 meta.showDate = true; 25 } else { 26 const previousVersion = versions.objectAt(index - 1); 27 const previousStart = moment(previousVersion.get('submitTime')).startOf( 28 'day' 29 ); 30 const currentStart = moment(version.get('submitTime')).startOf('day'); 31 if (previousStart.diff(currentStart, 'days') > 0) { 32 meta.showDate = true; 33 } 34 } 35 36 return { version, meta }; 37 }); 38 } 39 }