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