From c44e9ca6e677be4c337ffbc484d41984a87df995 Mon Sep 17 00:00:00 2001 From: Westly Wright Date: Tue, 6 Aug 2019 12:29:01 -0700 Subject: [PATCH] Add date created & default label to the cluster temp revision select --- .../cluster-driver/driver-rke/component.js | 47 +++++++++++++++++-- .../components/form-versions/component.js | 2 +- 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/lib/shared/addon/components/cluster-driver/driver-rke/component.js b/lib/shared/addon/components/cluster-driver/driver-rke/component.js index 0fe786b40..9a3b9f3b1 100644 --- a/lib/shared/addon/components/cluster-driver/driver-rke/component.js +++ b/lib/shared/addon/components/cluster-driver/driver-rke/component.js @@ -14,7 +14,7 @@ import layout from './template'; import { resolve } from 'rsvp'; import { isEmpty } from '@ember/utils'; import InputTextFile from 'ui/components/input-text-file/component'; -import { scheduleOnce } from '@ember/runloop'; +import { scheduleOnce, once } from '@ember/runloop'; import { azure as AzureInfo } from 'shared/components/cru-cloud-provider/cloud-provider-info'; import moment from 'moment'; import ManageLabels from 'shared/mixins/manage-labels'; @@ -442,11 +442,52 @@ export default InputTextFile.extend(ManageLabels, ClusterDriver, { }), filteredClusterTemplates: computed('model.clusterTemplates.@each.{id,state,name,members}', function() { - return get(this, 'model.clusterTemplates'); + let { model: { clusterTemplates } } = this; + + let mapped = clusterTemplates.map((clusterTemplate) => { + return { + name: clusterTemplate.name, + id: clusterTemplate.id, + } + }) + + return mapped.sortBy('created').reverse(); }), filteredTemplateRevisions: computed('selectedClusterTemplateId', 'model.clusterTemplateRevisions.@each.{id,state,name,members}', function() { - return get(this, 'model.clusterTemplateRevisions').filterBy('enabled').filterBy('clusterTemplateId', this.selectedClusterTemplateId); + let { + selectedClusterTemplateId, + model: { + clusterTemplateRevisions, + clusterTemplates, + } + } = this; + let clusterTemplate; + + clusterTemplateRevisions = clusterTemplateRevisions.filterBy('enabled'); + clusterTemplate = clusterTemplates.findBy('id', selectedClusterTemplateId) + + if (clusterTemplate) { + once(() => { + set(this, 'clusterTemplateRevisionId', clusterTemplate.defaultRevisionId); + }); + } + + let mapped = clusterTemplateRevisions.filterBy('clusterTemplateId', selectedClusterTemplateId).map((clusterTemplateRevision) => { + let d = moment(clusterTemplateRevision.created); + let name = `${ clusterTemplateRevision.name } - created: ${ d.fromNow() } `; + + if (clusterTemplate.defaultRevisionId === clusterTemplateRevision.id) { + name = `${ clusterTemplateRevision.name } (default) - created: ${ d.fromNow() } ` + } + + return { + name, + id: clusterTemplateRevision.id, + } + }) + + return mapped.sortBy('created').reverse(); }), allTemplates: computed('model.clusterTemplates.[]', 'model.clusterTemplateRevisions.[]', function() { diff --git a/lib/shared/addon/components/form-versions/component.js b/lib/shared/addon/components/form-versions/component.js index d95da7e74..9653a6aa5 100644 --- a/lib/shared/addon/components/form-versions/component.js +++ b/lib/shared/addon/components/form-versions/component.js @@ -75,7 +75,7 @@ export default Component.extend({ if (overrideMatch) { if (isEmpty(overrideMatch.satisfies) && initialVersion.endsWith('.x')) { // the template creator lets them override this but the initial version is a dot x so we should choose the biggest version in the .x range - maxVersion = maxSatisfying(versions, initialVersion); + maxVersion = maxSatisfying(versions, initialVersion); } else { if (overrideMatch.satisfies) { supportedVersionsRange = overrideMatch.satisfies;