github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/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  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 JobDeploymentsStream extends Component {
    12    @overridable(() => []) deployments;
    13  
    14    @computed('deployments.@each.versionSubmitTime')
    15    get sortedDeployments() {
    16      return this.deployments.sortBy('versionSubmitTime').reverse();
    17    }
    18  
    19    @computed('sortedDeployments.@each.version')
    20    get annotatedDeployments() {
    21      const deployments = this.sortedDeployments;
    22      return deployments.map((deployment, index) => {
    23        const meta = {};
    24  
    25        if (index === 0) {
    26          meta.showDate = true;
    27        } else {
    28          const previousDeployment = deployments.objectAt(index - 1);
    29          const previousSubmitTime = previousDeployment.get('version.submitTime');
    30          const submitTime = deployment.get('submitTime');
    31          if (
    32            submitTime &&
    33            previousSubmitTime &&
    34            moment(previousSubmitTime)
    35              .startOf('day')
    36              .diff(moment(submitTime).startOf('day'), 'days') > 0
    37          ) {
    38            meta.showDate = true;
    39          }
    40        }
    41  
    42        return { deployment, meta };
    43      });
    44    }
    45  }