Merge pull request #3142 from loganhz/catalog-21008

Fallback to latest version if default version not exists in a catalog app
This commit is contained in:
Westly Wright 2019-07-22 09:37:24 -07:00 committed by GitHub
commit a297dff4dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 5 deletions

View File

@ -64,6 +64,10 @@ export default Route.extend({
def = get(app, 'externalIdInfo.version'); def = get(app, 'externalIdInfo.version');
} }
if ( !links[def] ) {
def = get(results, 'tpl.latestVersion');
}
catalogTemplateUrl = links[def]; catalogTemplateUrl = links[def];
var version = get(this, 'settings.rancherVersion'); var version = get(this, 'settings.rancherVersion');

View File

@ -4,6 +4,7 @@ import { inject as service } from '@ember/service';
import Resource from '@rancher/ember-api-store/models/resource'; import Resource from '@rancher/ember-api-store/models/resource';
import C from 'ui/utils/constants'; import C from 'ui/utils/constants';
import { reference } from '@rancher/ember-api-store/utils/denormalize'; import { reference } from '@rancher/ember-api-store/utils/denormalize';
import { compare as compareVersion } from 'ui/utils/parse-version';
const Template = Resource.extend({ const Template = Resource.extend({
scope: service(), scope: service(),
@ -14,6 +15,12 @@ const Template = Resource.extend({
clusterCatalog: reference('clusterCatalogId', 'clusterCatalog', 'store'), clusterCatalog: reference('clusterCatalogId', 'clusterCatalog', 'store'),
projectCatalog: reference('projectCatalogId'), 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() { isGlobalCatalog: computed('clusterCatalog', 'projectCatalog', function() {
if (!this.clusterCatalog && !this.projectCatalog) { if (!this.clusterCatalog && !this.projectCatalog) {
return true; return true;

View File

@ -726,6 +726,8 @@ export default Component.extend(NewOrEdit, CatalogApp, {
initSelectedTemplateModel() { initSelectedTemplateModel() {
let def = get(this, 'templateResource.defaultVersion'); let def = get(this, 'templateResource.defaultVersion');
const latest = get(this, 'templateResource.latestVersion');
const links = get(this, 'versionLinks'); const links = get(this, 'versionLinks');
const app = get(this, 'primaryResource'); const app = get(this, 'primaryResource');
@ -733,11 +735,7 @@ export default Component.extend(NewOrEdit, CatalogApp, {
def = get(app, 'externalIdInfo.version'); def = get(app, 'externalIdInfo.version');
} }
if (links[def]) { set(this, 'selectedTemplateUrl', links[def] || links[latest] || null)
set(this, 'selectedTemplateUrl', links[def]);
} else {
set(this, 'selectedTemplateUrl', null);
}
return; return;
}, },