Files
nomad/ui/app/components/job-versions-stream.js
Phil Renaud dc45066ae7 [ui] Separate Diffs and Versions from the /versions endpoint as far as Ember is concerned (#24145)
* Separate Diffs and Versions from the /versions endpoint as far as Ember is concerned

* Back to async true

* Handle undefined-diffs case
2024-10-08 12:13:01 -04:00

48 lines
1.3 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import Component from '@ember/component';
import { computed } from '@ember/object';
import { computed as overridable } from 'ember-overridable-computed';
import moment from 'moment';
import { classNames, tagName } from '@ember-decorators/component';
import classic from 'ember-classic-decorator';
@classic
@tagName('ol')
@classNames('timeline')
export default class JobVersionsStream extends Component {
@overridable(() => []) versions;
// Passes through to the job-diff component
verbose = true;
diffs = [];
@computed('versions.[]', 'diffs.[]')
get annotatedVersions() {
const versions = this.versions.sortBy('submitTime').reverse();
return versions.map((version, index) => {
const meta = {};
if (index === 0) {
meta.showDate = true;
} else {
const previousVersion = versions.objectAt(index - 1);
const previousStart = moment(previousVersion.get('submitTime')).startOf(
'day'
);
const currentStart = moment(version.get('submitTime')).startOf('day');
if (previousStart.diff(currentStart, 'days') > 0) {
meta.showDate = true;
}
}
const diff = this.diffs.objectAt(index);
return { version, meta, diff };
});
}
}