github.com/manicqin/nomad@v0.9.5/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  
     6  export default Component.extend({
     7    tagName: 'ol',
     8    classNames: ['timeline'],
     9  
    10    deployments: overridable(() => []),
    11  
    12    sortedDeployments: computed('deployments.@each.versionSubmitTime', function() {
    13      return this.deployments
    14        .sortBy('versionSubmitTime')
    15        .reverse();
    16    }),
    17  
    18    annotatedDeployments: computed('sortedDeployments.@each.version', function() {
    19      const deployments = this.sortedDeployments;
    20      return deployments.map((deployment, index) => {
    21        const meta = {};
    22  
    23        if (index === 0) {
    24          meta.showDate = true;
    25        } else {
    26          const previousDeployment = deployments.objectAt(index - 1);
    27          const previousSubmitTime = previousDeployment.get('version.submitTime');
    28          const submitTime = deployment.get('submitTime');
    29          if (
    30            submitTime &&
    31            previousSubmitTime &&
    32            moment(previousSubmitTime)
    33              .startOf('day')
    34              .diff(moment(submitTime).startOf('day'), 'days') > 0
    35          ) {
    36            meta.showDate = true;
    37          }
    38        }
    39  
    40        return { deployment, meta };
    41      });
    42    }),
    43  });