github.com/hernad/nomad@v1.6.112/ui/app/components/job-versions-stream.js (about)

     1  /**
     2   * Copyright (c) HashiCorp, Inc.
     3   * SPDX-License-Identifier: MPL-2.0
     4   */
     5  
     6  import Component from '@ember/component';
     7  import { computed } from '@ember/object';
     8  import { computed as overridable } from 'ember-overridable-computed';
     9  import moment from 'moment';
    10  import { classNames, tagName } from '@ember-decorators/component';
    11  import classic from 'ember-classic-decorator';
    12  
    13  @classic
    14  @tagName('ol')
    15  @classNames('timeline')
    16  export default class JobVersionsStream extends Component {
    17    @overridable(() => []) versions;
    18  
    19    // Passes through to the job-diff component
    20    verbose = true;
    21  
    22    @computed('versions.[]')
    23    get annotatedVersions() {
    24      const versions = this.versions.sortBy('submitTime').reverse();
    25      return versions.map((version, index) => {
    26        const meta = {};
    27  
    28        if (index === 0) {
    29          meta.showDate = true;
    30        } else {
    31          const previousVersion = versions.objectAt(index - 1);
    32          const previousStart = moment(previousVersion.get('submitTime')).startOf(
    33            'day'
    34          );
    35          const currentStart = moment(version.get('submitTime')).startOf('day');
    36          if (previousStart.diff(currentStart, 'days') > 0) {
    37            meta.showDate = true;
    38          }
    39        }
    40  
    41        return { version, meta };
    42      });
    43    }
    44  }