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  }