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  });