diff --git a/app/catalog-tab/launch/route.js b/app/catalog-tab/launch/route.js index b6a51637f..db3ebd609 100644 --- a/app/catalog-tab/launch/route.js +++ b/app/catalog-tab/launch/route.js @@ -64,6 +64,10 @@ export default Route.extend({ def = get(app, 'externalIdInfo.version'); } + if ( !links[def] ) { + def = get(results, 'tpl.latestVersion'); + } + catalogTemplateUrl = links[def]; var version = get(this, 'settings.rancherVersion'); diff --git a/app/models/template.js b/app/models/template.js index f417dbdf4..86a6537bc 100644 --- a/app/models/template.js +++ b/app/models/template.js @@ -4,6 +4,7 @@ import { inject as service } from '@ember/service'; import Resource from '@rancher/ember-api-store/models/resource'; import C from 'ui/utils/constants'; import { reference } from '@rancher/ember-api-store/utils/denormalize'; +import { compare as compareVersion } from 'ui/utils/parse-version'; const Template = Resource.extend({ scope: service(), @@ -14,6 +15,12 @@ const Template = Resource.extend({ clusterCatalog: reference('clusterCatalogId', 'clusterCatalog', 'store'), projectCatalog: reference('projectCatalogId'), + latestVersion: computed('versionLinks', function() { + const links = get(this, 'versionLinks'); + + return get(Object.keys(links || {}).sort((a, b) => compareVersion(a, b)), 'lastObject'); + }), + isGlobalCatalog: computed('clusterCatalog', 'projectCatalog', function() { if (!this.clusterCatalog && !this.projectCatalog) { return true; diff --git a/lib/global-admin/addon/components/new-multi-cluster-app/component.js b/lib/global-admin/addon/components/new-multi-cluster-app/component.js index 294a18c10..8e87cba15 100644 --- a/lib/global-admin/addon/components/new-multi-cluster-app/component.js +++ b/lib/global-admin/addon/components/new-multi-cluster-app/component.js @@ -726,6 +726,8 @@ export default Component.extend(NewOrEdit, CatalogApp, { initSelectedTemplateModel() { let def = get(this, 'templateResource.defaultVersion'); + const latest = get(this, 'templateResource.latestVersion'); + const links = get(this, 'versionLinks'); const app = get(this, 'primaryResource'); @@ -733,11 +735,7 @@ export default Component.extend(NewOrEdit, CatalogApp, { def = get(app, 'externalIdInfo.version'); } - if (links[def]) { - set(this, 'selectedTemplateUrl', links[def]); - } else { - set(this, 'selectedTemplateUrl', null); - } + set(this, 'selectedTemplateUrl', links[def] || links[latest] || null) return; },