From 1eeb5f3190f936599f93455c4eaa7a6ad8748407 Mon Sep 17 00:00:00 2001 From: Samiul Date: Thu, 29 Jan 2026 12:57:53 +0600 Subject: [PATCH 1/2] handle empty version for updateversion ops Signed-off-by: Samiul --- .../ui/create-ui.yaml | 9 ++++ .../ui/functions.js | 43 ++++++++++++++++-- .../ui/create-ui.yaml | 9 ++++ .../ui/functions.js | 43 ++++++++++++++++-- .../ui/create-ui.yaml | 9 ++++ .../ui/functions.js | 39 +++++++++++++++- .../ui/create-ui.yaml | 9 ++++ .../ui/functions.js | 43 ++++++++++++++++-- .../ui/create-ui.yaml | 9 ++++ .../ui/functions.js | 39 +++++++++++++++- .../ui/create-ui.yaml | 18 ++++++++ .../ui/functions.js | 44 +++++++++++++++++-- .../ui/create-ui.yaml | 9 ++++ .../ui/functions.js | 39 +++++++++++++++- .../ui/create-ui.yaml | 9 ++++ .../ui/functions.js | 39 +++++++++++++++- .../ui/create-ui.yaml | 9 ++++ .../ui/functions.js | 39 +++++++++++++++- .../ui/create-ui.yaml | 9 ++++ .../ui/functions.js | 39 +++++++++++++++- .../ui/create-ui.yaml | 9 ++++ .../ui/functions.js | 39 +++++++++++++++- .../ui/create-ui.yaml | 9 ++++ .../ui/functions.js | 39 +++++++++++++++- .../ui/create-ui.yaml | 9 ++++ .../ui/functions.js | 39 +++++++++++++++- .../ui/create-ui.yaml | 9 ++++ .../ui/functions.js | 39 +++++++++++++++- .../ui/create-ui.yaml | 9 ++++ .../ui/functions.js | 39 +++++++++++++++- .../ui/create-ui.yaml | 9 ++++ .../ui/functions.js | 39 +++++++++++++++- .../ui/create-ui.yaml | 9 ++++ .../ui/functions.js | 39 +++++++++++++++- 34 files changed, 817 insertions(+), 25 deletions(-) diff --git a/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/create-ui.yaml index 244263ca7e..07fdda0d9d 100644 --- a/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/create-ui.yaml @@ -107,6 +107,15 @@ step: value: setValueFromDbDetails|/spec/version loader: getDbVersions schema: schema/properties/spec/properties/updateVersion/properties/targetVersion + - type: info + label: '' + loader: + name: getVersionInfo + watchPaths: + - temp/properties/filteredVersion + if: + type: function + name: isVersionEmpty # Horizontal Scale - type: block-layout label: Horizontal Scaling Form diff --git a/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/functions.js b/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/functions.js index 30f61f661d..a2007dc514 100644 --- a/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/functions.js @@ -518,6 +518,8 @@ export const useFunc = (model) => { // Database Version Functions // ===================================================== + let presetVersions = [] + setDiscriminatorValue('/filteredVersion', []) async function getDbVersions() { const owner = storeGet('/route/params/user') const cluster = storeGet('/route/params/cluster') @@ -533,7 +535,7 @@ export const useFunc = (model) => { } } try { - const presetVersions = presets.admin?.databases?.Elasticsearch?.versions?.available || [] + presetVersions = presets.admin?.databases?.Elasticsearch?.versions?.available || [] const queryParams = { filter: { items: { @@ -559,7 +561,7 @@ export const useFunc = (model) => { const limit = allowed.length ? allowed[0] : '0.0' // keep only non deprecated & kubedb-ui-presets & within constraints of current version // if presets.status is 404, it means no presets available, no need to filter with presets - const filteredElasticsearchVersions = sortedVersions.filter((item) => { + const filteredDbVersions = sortedVersions.filter((item) => { // default limit 0.0 means no restrictions, show all higher versions if (limit === '0.0') return ( @@ -582,7 +584,8 @@ export const useFunc = (model) => { isVersionWithinConstraints(item.spec?.version, limit) ) }) - return filteredElasticsearchVersions.map((item) => { + setDiscriminatorValue('/filteredVersion', filteredDbVersions) + return filteredDbVersions.map((item) => { const name = (item.metadata && item.metadata.name) || '' const specVersion = (item.spec && item.spec.version) || '' return { @@ -632,6 +635,37 @@ export const useFunc = (model) => { return true } + function getVersionInfo() { + const filteredVersion = getValue(discriminator, '/filteredVersion') + if (filteredVersion.length) return '' + + let txt = 'No versions from this list can be selected as the target version: [ ' + + presetVersions.forEach((v, idx) => { + txt = `${txt}"${v}"` + if (idx !== presetVersions.length - 1) txt = txt + ', ' + else txt = txt + ' ]' + }) + + return txt + } + + function getVersion() { + return filteredVersion.map((item) => { + const name = (item.metadata && item.metadata.name) || '' + const specVersion = (item.spec && item.spec.version) || '' + return { + text: `${name} (${specVersion})`, + value: name, + } + }) + } + + function isVersionEmpty() { + const val = getValue(discriminator, '/filteredVersion') + return val.length === 0 + } + // ===================================================== // OpsRequest Type Functions // ===================================================== @@ -1995,6 +2029,9 @@ export const useFunc = (model) => { // Database version functions getDbVersions, + getVersionInfo, + isVersionEmpty, + getVersion, // OpsRequest type functions ifRequestTypeEqualsTo, diff --git a/charts/opskubedbcom-ferretdbopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-ferretdbopsrequest-editor/ui/create-ui.yaml index 4ed9887acd..d5f4b70263 100644 --- a/charts/opskubedbcom-ferretdbopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-ferretdbopsrequest-editor/ui/create-ui.yaml @@ -101,6 +101,15 @@ step: value: setValueFromDbDetails|/spec/version loader: getDbVersions schema: schema/properties/spec/properties/updateVersion/properties/targetVersion + - type: info + label: '' + loader: + name: getVersionInfo + watchPaths: + - temp/properties/filteredVersion + if: + type: function + name: isVersionEmpty # Horizontal Scale - type: block-layout label: Horizontal Scaling Form diff --git a/charts/opskubedbcom-ferretdbopsrequest-editor/ui/functions.js b/charts/opskubedbcom-ferretdbopsrequest-editor/ui/functions.js index 835f7c4e5f..86f0ec00c5 100644 --- a/charts/opskubedbcom-ferretdbopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-ferretdbopsrequest-editor/ui/functions.js @@ -430,6 +430,8 @@ export const useFunc = (model) => { } else return {} } + let presetVersions = [] + setDiscriminatorValue('/filteredVersion', []) async function getDbVersions() { const owner = storeGet('/route/params/user') const cluster = storeGet('/route/params/cluster') @@ -445,7 +447,7 @@ export const useFunc = (model) => { } } try { - const presetVersions = presets.admin?.databases?.FerretDB?.versions?.available || [] + presetVersions = presets.admin?.databases?.FerretDB?.versions?.available || [] const queryParams = { filter: { items: { @@ -471,7 +473,7 @@ export const useFunc = (model) => { const limit = allowed.length ? allowed[0] : '0.0' // keep only non deprecated & kubedb-ui-presets & within constraints of current version // if presets.status is 404, it means no presets available, no need to filter with presets - const filteredFerretDBVersions = sortedVersions.filter((item) => { + const filteredDbVersions = sortedVersions.filter((item) => { // default limit 0.0 means no restrictions, show all higher versions if (limit === '0.0') return ( @@ -494,7 +496,8 @@ export const useFunc = (model) => { isVersionWithinConstraints(item.spec?.version, limit) ) }) - return filteredFerretDBVersions.map((item) => { + setDiscriminatorValue('/filteredVersion', filteredDbVersions) + return filteredDbVersions.map((item) => { const name = (item.metadata && item.metadata.name) || '' const specVersion = (item.spec && item.spec.version) || '' return { @@ -544,6 +547,37 @@ export const useFunc = (model) => { return true } + function getVersionInfo() { + const filteredVersion = getValue(discriminator, '/filteredVersion') + if (filteredVersion.length) return '' + + let txt = 'No versions from this list can be selected as the target version: [ ' + + presetVersions.forEach((v, idx) => { + txt = `${txt}"${v}"` + if (idx !== presetVersions.length - 1) txt = txt + ', ' + else txt = txt + ' ]' + }) + + return txt + } + + function getVersion() { + return filteredVersion.map((item) => { + const name = (item.metadata && item.metadata.name) || '' + const specVersion = (item.spec && item.spec.version) || '' + return { + text: `${name} (${specVersion})`, + value: name, + } + }) + } + + function isVersionEmpty() { + const val = getValue(discriminator, '/filteredVersion') + return val.length === 0 + } + function ifRequestTypeEqualsTo(type) { const selectedType = getValue(model, '/spec/type') // watchDependency('model#/spec/type') @@ -1243,6 +1277,9 @@ export const useFunc = (model) => { getDbs, getDbDetails, getDbVersions, + getVersionInfo, + isVersionEmpty, + getVersion, ifRequestTypeEqualsTo, onRequestTypeChange, getDbTls, diff --git a/charts/opskubedbcom-kafkaopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-kafkaopsrequest-editor/ui/create-ui.yaml index 1523e46af4..3a81f5d2c8 100644 --- a/charts/opskubedbcom-kafkaopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-kafkaopsrequest-editor/ui/create-ui.yaml @@ -110,6 +110,15 @@ step: value: setValueFromDbDetails|/spec/version loader: getDbVersions schema: schema/properties/spec/properties/updateVersion/properties/targetVersion + - type: info + label: '' + loader: + name: getVersionInfo + watchPaths: + - temp/properties/filteredVersion + if: + type: function + name: isVersionEmpty # Horizontal Scale - type: block-layout label: Horizontal Scaling Form diff --git a/charts/opskubedbcom-kafkaopsrequest-editor/ui/functions.js b/charts/opskubedbcom-kafkaopsrequest-editor/ui/functions.js index cd2e7bbf49..b324520e5f 100644 --- a/charts/opskubedbcom-kafkaopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-kafkaopsrequest-editor/ui/functions.js @@ -433,6 +433,8 @@ export const useFunc = (model) => { } else return {} } + let presetVersions = [] + setDiscriminatorValue('/filteredVersion', []) async function getDbVersions() { const owner = storeGet('/route/params/user') const cluster = storeGet('/route/params/cluster') @@ -448,7 +450,7 @@ export const useFunc = (model) => { } } try { - const presetVersions = presets.admin?.databases?.Kafka?.versions?.available || [] + presetVersions = presets.admin?.databases?.Kafka?.versions?.available || [] const queryParams = { filter: { items: { @@ -497,6 +499,7 @@ export const useFunc = (model) => { isVersionWithinConstraints(item.spec?.version, limit) ) }) + setDiscriminatorValue('/filteredVersion', filteredKafkaVersions) return filteredKafkaVersions.map((item) => { const name = (item.metadata && item.metadata.name) || '' const specVersion = (item.spec && item.spec.version) || '' @@ -547,6 +550,37 @@ export const useFunc = (model) => { return true } + function getVersionInfo() { + const filteredVersion = getValue(discriminator, '/filteredVersion') + if (filteredVersion.length) return '' + + let txt = 'No versions from this list can be selected as the target version: [ ' + + presetVersions.forEach((v, idx) => { + txt = `${txt}"${v}"` + if (idx !== presetVersions.length - 1) txt = txt + ', ' + else txt = txt + ' ]' + }) + + return txt + } + + function getVersion() { + return filteredVersion.map((item) => { + const name = (item.metadata && item.metadata.name) || '' + const specVersion = (item.spec && item.spec.version) || '' + return { + text: `${name} (${specVersion})`, + value: name, + } + }) + } + + function isVersionEmpty() { + const val = getValue(discriminator, '/filteredVersion') + return val.length === 0 + } + function ifRequestTypeEqualsTo(type) { const selectedType = getValue(model, '/spec/type') // watchDependency('model#/spec/type') @@ -1780,6 +1814,9 @@ export const useFunc = (model) => { getDbs, getDbDetails, getDbVersions, + getVersionInfo, + isVersionEmpty, + getVersion, ifRequestTypeEqualsTo, onRequestTypeChange, getDbTls, diff --git a/charts/opskubedbcom-mariadbopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-mariadbopsrequest-editor/ui/create-ui.yaml index 76e552167e..c4fb82daaa 100644 --- a/charts/opskubedbcom-mariadbopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-mariadbopsrequest-editor/ui/create-ui.yaml @@ -107,6 +107,15 @@ step: value: setValueFromDbDetails|/spec/version loader: getDbVersions schema: schema/properties/spec/properties/updateVersion/properties/targetVersion + - type: info + label: '' + loader: + name: getVersionInfo + watchPaths: + - temp/properties/filteredVersion + if: + type: function + name: isVersionEmpty # Horizontal Scale - type: block-layout label: Horizontal Scaling Form diff --git a/charts/opskubedbcom-mariadbopsrequest-editor/ui/functions.js b/charts/opskubedbcom-mariadbopsrequest-editor/ui/functions.js index 9813457014..7ad7d676c2 100644 --- a/charts/opskubedbcom-mariadbopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-mariadbopsrequest-editor/ui/functions.js @@ -432,6 +432,8 @@ export const useFunc = (model) => { } else return {} } + let presetVersions = [] + setDiscriminatorValue('/filteredVersion', []) async function getDbVersions() { const owner = storeGet('/route/params/user') const cluster = storeGet('/route/params/cluster') @@ -447,7 +449,7 @@ export const useFunc = (model) => { } } try { - const presetVersions = presets.admin?.databases?.MariaDB?.versions?.available || [] + presetVersions = presets.admin?.databases?.MariaDB?.versions?.available || [] const queryParams = { filter: { items: { @@ -473,7 +475,7 @@ export const useFunc = (model) => { const limit = allowed.length ? allowed[0] : '0.0' // keep only non deprecated & kubedb-ui-presets & within constraints of current version // if presets.status is 404, it means no presets available, no need to filter with presets - const filteredMariaDbVersions = sortedVersions.filter((item) => { + const filteredDbVersions = sortedVersions.filter((item) => { // default limit 0.0 means no restrictions, show all higher versions if (limit === '0.0') return ( @@ -496,7 +498,8 @@ export const useFunc = (model) => { isVersionWithinConstraints(item.spec?.version, limit) ) }) - return filteredMariaDbVersions.map((item) => { + setDiscriminatorValue('/filteredVersion', filteredDbVersions) + return filteredDbVersions.map((item) => { const name = (item.metadata && item.metadata.name) || '' const specVersion = (item.spec && item.spec.version) || '' return { @@ -546,6 +549,37 @@ export const useFunc = (model) => { return true } + function getVersionInfo() { + const filteredVersion = getValue(discriminator, '/filteredVersion') + if (filteredVersion.length) return '' + + let txt = 'No versions from this list can be selected as the target version: [ ' + + presetVersions.forEach((v, idx) => { + txt = `${txt}"${v}"` + if (idx !== presetVersions.length - 1) txt = txt + ', ' + else txt = txt + ' ]' + }) + + return txt + } + + function getVersion() { + return filteredVersion.map((item) => { + const name = (item.metadata && item.metadata.name) || '' + const specVersion = (item.spec && item.spec.version) || '' + return { + text: `${name} (${specVersion})`, + value: name, + } + }) + } + + function isVersionEmpty() { + const val = getValue(discriminator, '/filteredVersion') + return val.length === 0 + } + function ifRequestTypeEqualsTo(type) { const selectedType = getValue(model, '/spec/type') // watchDependency('model#/spec/type') @@ -1753,6 +1787,9 @@ export const useFunc = (model) => { getDbs, getDbDetails, getDbVersions, + getVersionInfo, + isVersionEmpty, + getVersion, ifRequestTypeEqualsTo, onRequestTypeChange, getDbTls, diff --git a/charts/opskubedbcom-memcachedopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-memcachedopsrequest-editor/ui/create-ui.yaml index 1661119dcb..8ef8200925 100644 --- a/charts/opskubedbcom-memcachedopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-memcachedopsrequest-editor/ui/create-ui.yaml @@ -101,6 +101,15 @@ step: value: setValueFromDbDetails|/spec/version loader: getDbVersions schema: schema/properties/spec/properties/updateVersion/properties/targetVersion + - type: info + label: '' + loader: + name: getVersionInfo + watchPaths: + - temp/properties/filteredVersion + if: + type: function + name: isVersionEmpty # Horizontal Scale - type: block-layout label: Horizontal Scaling Form diff --git a/charts/opskubedbcom-memcachedopsrequest-editor/ui/functions.js b/charts/opskubedbcom-memcachedopsrequest-editor/ui/functions.js index 7b673cf34c..1ea82c1a45 100644 --- a/charts/opskubedbcom-memcachedopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-memcachedopsrequest-editor/ui/functions.js @@ -423,6 +423,8 @@ export const useFunc = (model) => { } else return {} } + let presetVersions = [] + setDiscriminatorValue('/filteredVersion', []) async function getDbVersions() { const owner = storeGet('/route/params/user') const cluster = storeGet('/route/params/cluster') @@ -438,7 +440,7 @@ export const useFunc = (model) => { } } try { - const presetVersions = presets.admin?.databases?.Memcached?.versions?.available || [] + presetVersions = presets.admin?.databases?.Memcached?.versions?.available || [] const queryParams = { filter: { items: { @@ -487,6 +489,7 @@ export const useFunc = (model) => { isVersionWithinConstraints(item.spec?.version, limit) ) }) + setDiscriminatorValue('/filteredVersion', filteredMemcachedVersions) return filteredMemcachedVersions.map((item) => { const name = (item.metadata && item.metadata.name) || '' const specVersion = (item.spec && item.spec.version) || '' @@ -537,6 +540,37 @@ export const useFunc = (model) => { return true } + function getVersionInfo() { + const filteredVersion = getValue(discriminator, '/filteredVersion') + if (filteredVersion.length) return '' + + let txt = 'No versions from this list can be selected as the target version: [ ' + + presetVersions.forEach((v, idx) => { + txt = `${txt}"${v}"` + if (idx !== presetVersions.length - 1) txt = txt + ', ' + else txt = txt + ' ]' + }) + + return txt + } + + function getVersion() { + return filteredVersion.map((item) => { + const name = (item.metadata && item.metadata.name) || '' + const specVersion = (item.spec && item.spec.version) || '' + return { + text: `${name} (${specVersion})`, + value: name, + } + }) + } + + function isVersionEmpty() { + const val = getValue(discriminator, '/filteredVersion') + return val.length === 0 + } + function ifRequestTypeEqualsTo(type) { const selectedType = getValue(model, '/spec/type') // watchDependency('model#/spec/type') @@ -1511,6 +1545,9 @@ export const useFunc = (model) => { getDbs, getDbDetails, getDbVersions, + getVersionInfo, + isVersionEmpty, + getVersion, ifRequestTypeEqualsTo, onRequestTypeChange, getDbTls, diff --git a/charts/opskubedbcom-mongodbopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-mongodbopsrequest-editor/ui/create-ui.yaml index 6323f97243..b9b87b8e13 100644 --- a/charts/opskubedbcom-mongodbopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-mongodbopsrequest-editor/ui/create-ui.yaml @@ -110,6 +110,24 @@ step: value: setValueFromDbDetails|/spec/version loader: getDbVersions schema: schema/properties/spec/properties/updateVersion/properties/targetVersion + - type: info + label: '' + loader: + name: getVersionInfo + watchPaths: + - temp/properties/filteredVersion + if: + type: function + name: isVersionEmpty + - type: info + label: '' + loader: + name: getVersionInfo + watchPaths: + - temp/properties/filteredVersion + if: + type: function + name: isVersionEmpty # Horizontal Scale - type: block-layout label: Horizontal Scaling Form diff --git a/charts/opskubedbcom-mongodbopsrequest-editor/ui/functions.js b/charts/opskubedbcom-mongodbopsrequest-editor/ui/functions.js index e65c32d43f..2ef03535df 100644 --- a/charts/opskubedbcom-mongodbopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-mongodbopsrequest-editor/ui/functions.js @@ -443,6 +443,9 @@ export const useFunc = (model) => { } else return {} } + let presetVersions = [] + setDiscriminatorValue('/filteredVersion', []) + async function getDbVersions() { const owner = storeGet('/route/params/user') const cluster = storeGet('/route/params/cluster') @@ -458,7 +461,7 @@ export const useFunc = (model) => { } } try { - const presetVersions = presets.admin?.databases?.MongoDB?.versions?.available || [] + presetVersions = presets.admin?.databases?.MongoDB?.versions?.available || [] const queryParams = { filter: { items: { @@ -484,7 +487,7 @@ export const useFunc = (model) => { const limit = allowed.length ? allowed[0] : '0.0' // keep only non deprecated & kubedb-ui-presets & within constraints of current version // if presets.status is 404, it means no presets available, no need to filter with presets - const filteredMongoDbVersions = sortedVersions.filter((item) => { + const filteredDbVersions = sortedVersions.filter((item) => { // default limit 0.0 means no restrictions, show all higher versions if (limit === '0.0') return ( @@ -507,7 +510,8 @@ export const useFunc = (model) => { isVersionWithinConstraints(item.spec?.version, limit) ) }) - return filteredMongoDbVersions.map((item) => { + setDiscriminatorValue('/filteredVersion', filteredDbVersions) + return filteredDbVersions.map((item) => { const name = (item.metadata && item.metadata.name) || '' const specVersion = (item.spec && item.spec.version) || '' return { @@ -557,6 +561,37 @@ export const useFunc = (model) => { return true } + function getVersionInfo() { + const filteredVersion = getValue(discriminator, '/filteredVersion') + if (filteredVersion.length) return '' + + let txt = 'No versions from this list can be selected as the target version: [ ' + + presetVersions.forEach((v, idx) => { + txt = `${txt}"${v}"` + if (idx !== presetVersions.length - 1) txt = txt + ', ' + else txt = txt + ' ]' + }) + + return txt + } + + function getVersion() { + return filteredVersion.map((item) => { + const name = (item.metadata && item.metadata.name) || '' + const specVersion = (item.spec && item.spec.version) || '' + return { + text: `${name} (${specVersion})`, + value: name, + } + }) + } + + function isVersionEmpty() { + const val = getValue(discriminator, '/filteredVersion') + return val.length === 0 + } + function ifRequestTypeEqualsTo(type) { const selectedType = getValue(model, '/spec/type') // watchDependency('model#/spec/type') @@ -1827,6 +1862,9 @@ export const useFunc = (model) => { getDbs, getDbDetails, getDbVersions, + getVersionInfo, + isVersionEmpty, + getVersion, ifRequestTypeEqualsTo, onRequestTypeChange, getDbTls, diff --git a/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/create-ui.yaml index e8665373b9..a2ef24e031 100644 --- a/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/create-ui.yaml @@ -107,6 +107,15 @@ step: value: setValueFromDbDetails|/spec/version loader: getDbVersions schema: schema/properties/spec/properties/updateVersion/properties/targetVersion + - type: info + label: '' + loader: + name: getVersionInfo + watchPaths: + - temp/properties/filteredVersion + if: + type: function + name: isVersionEmpty # Horizontal Scale - type: block-layout label: Horizontal Scaling Form diff --git a/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/functions.js b/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/functions.js index 8595844a76..d115aaabaa 100644 --- a/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/functions.js @@ -423,6 +423,8 @@ export const useFunc = (model) => { } else return {} } + let presetVersions = [] + setDiscriminatorValue('/filteredVersion', []) async function getDbVersions() { const owner = storeGet('/route/params/user') const cluster = storeGet('/route/params/cluster') @@ -438,7 +440,7 @@ export const useFunc = (model) => { } } try { - const presetVersions = presets.admin?.databases?.MSSQLServer?.versions?.available || [] + presetVersions = presets.admin?.databases?.MSSQLServer?.versions?.available || [] const queryParams = { filter: { items: { @@ -487,6 +489,7 @@ export const useFunc = (model) => { isVersionWithinConstraints(item.spec?.version, limit) ) }) + setDiscriminatorValue('/filteredVersion', filteredMSSQLServerVersions) return filteredMSSQLServerVersions.map((item) => { const name = (item.metadata && item.metadata.name) || '' const specVersion = (item.spec && item.spec.version) || '' @@ -501,6 +504,37 @@ export const useFunc = (model) => { } } + function getVersionInfo() { + const filteredVersion = getValue(discriminator, '/filteredVersion') + if (filteredVersion.length) return '' + + let txt = 'No versions from this list can be selected as the target version: [ ' + + presetVersions.forEach((v, idx) => { + txt = `${txt}"${v}"` + if (idx !== presetVersions.length - 1) txt = txt + ', ' + else txt = txt + ' ]' + }) + + return txt + } + + function getVersion() { + return filteredVersion.map((item) => { + const name = (item.metadata && item.metadata.name) || '' + const specVersion = (item.spec && item.spec.version) || '' + return { + text: `${name} (${specVersion})`, + value: name, + } + }) + } + + function isVersionEmpty() { + const val = getValue(discriminator, '/filteredVersion') + return val.length === 0 + } + function versionCompare(v1, v2) { const arr1 = v1.split('.').map(Number) const arr2 = v2.split('.').map(Number) @@ -1718,6 +1752,9 @@ export const useFunc = (model) => { getDbs, getDbDetails, getDbVersions, + getVersionInfo, + isVersionEmpty, + getVersion, ifRequestTypeEqualsTo, onRequestTypeChange, getDbTls, diff --git a/charts/opskubedbcom-mysqlopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-mysqlopsrequest-editor/ui/create-ui.yaml index bea9915145..e8db964553 100644 --- a/charts/opskubedbcom-mysqlopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-mysqlopsrequest-editor/ui/create-ui.yaml @@ -110,6 +110,15 @@ step: value: setValueFromDbDetails|/spec/version loader: getDbVersions schema: schema/properties/spec/properties/updateVersion/properties/targetVersion + - type: info + label: '' + loader: + name: getVersionInfo + watchPaths: + - temp/properties/filteredVersion + if: + type: function + name: isVersionEmpty # Horizontal Scale - type: block-layout label: Horizontal Scaling Form diff --git a/charts/opskubedbcom-mysqlopsrequest-editor/ui/functions.js b/charts/opskubedbcom-mysqlopsrequest-editor/ui/functions.js index 9b2afbf891..2944819438 100644 --- a/charts/opskubedbcom-mysqlopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-mysqlopsrequest-editor/ui/functions.js @@ -432,6 +432,8 @@ export const useFunc = (model) => { } else return {} } + let presetVersions = [] + setDiscriminatorValue('/filteredVersion', []) async function getDbVersions() { const owner = storeGet('/route/params/user') const cluster = storeGet('/route/params/cluster') @@ -450,7 +452,7 @@ export const useFunc = (model) => { } try { - const presetVersions = presets.admin?.databases?.MySQL?.versions?.available || [] + presetVersions = presets.admin?.databases?.MySQL?.versions?.available || [] const queryParams = { filter: { items: { @@ -510,6 +512,7 @@ export const useFunc = (model) => { isVersionWithinConstraints(item.spec?.version, limit) ) }) + setDiscriminatorValue('/filteredVersion', filteredMySQLVersions) return filteredMySQLVersions.map((item) => { const name = (item.metadata && item.metadata.name) || '' @@ -525,6 +528,37 @@ export const useFunc = (model) => { } } + function getVersionInfo() { + const filteredVersion = getValue(discriminator, '/filteredVersion') + if (filteredVersion.length) return '' + + let txt = 'No versions from this list can be selected as the target version: [ ' + + presetVersions.forEach((v, idx) => { + txt = `${txt}"${v}"` + if (idx !== presetVersions.length - 1) txt = txt + ', ' + else txt = txt + ' ]' + }) + + return txt + } + + function getVersion() { + return filteredVersion.map((item) => { + const name = (item.metadata && item.metadata.name) || '' + const specVersion = (item.spec && item.spec.version) || '' + return { + text: `${name} (${specVersion})`, + value: name, + } + }) + } + + function isVersionEmpty() { + const val = getValue(discriminator, '/filteredVersion') + return val.length === 0 + } + function versionCompare(v1, v2) { const arr1 = v1.split('.').map(Number) const arr2 = v2.split('.').map(Number) @@ -1786,6 +1820,9 @@ export const useFunc = (model) => { getDbs, getDbDetails, getDbVersions, + getVersionInfo, + isVersionEmpty, + getVersion, ifRequestTypeEqualsTo, onRequestTypeChange, getDbTls, diff --git a/charts/opskubedbcom-pgbounceropsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-pgbounceropsrequest-editor/ui/create-ui.yaml index b162b03c98..70501199f7 100644 --- a/charts/opskubedbcom-pgbounceropsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-pgbounceropsrequest-editor/ui/create-ui.yaml @@ -105,6 +105,15 @@ step: value: setValueFromDbDetails|/spec/version loader: getDbVersions schema: schema/properties/spec/properties/updateVersion/properties/targetVersion + - type: info + label: '' + loader: + name: getVersionInfo + watchPaths: + - temp/properties/filteredVersion + if: + type: function + name: isVersionEmpty # Horizontal Scale - type: block-layout label: Horizontal Scaling Form diff --git a/charts/opskubedbcom-pgbounceropsrequest-editor/ui/functions.js b/charts/opskubedbcom-pgbounceropsrequest-editor/ui/functions.js index 44bab3fca1..4fb56dd623 100644 --- a/charts/opskubedbcom-pgbounceropsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-pgbounceropsrequest-editor/ui/functions.js @@ -423,6 +423,8 @@ export const useFunc = (model) => { } else return {} } + let presetVersions = [] + setDiscriminatorValue('/filteredVersion', []) async function getDbVersions() { const owner = storeGet('/route/params/user') const cluster = storeGet('/route/params/cluster') @@ -438,7 +440,7 @@ export const useFunc = (model) => { } } try { - const presetVersions = presets.admin?.databases?.PgBouncer?.versions?.available || [] + presetVersions = presets.admin?.databases?.PgBouncer?.versions?.available || [] const queryParams = { filter: { items: { @@ -487,6 +489,7 @@ export const useFunc = (model) => { isVersionWithinConstraints(item.spec?.version, limit) ) }) + setDiscriminatorValue('/filteredVersion', filteredPgBouncerVersions) return filteredPgBouncerVersions.map((item) => { const name = (item.metadata && item.metadata.name) || '' const specVersion = (item.spec && item.spec.version) || '' @@ -501,6 +504,37 @@ export const useFunc = (model) => { } } + function getVersionInfo() { + const filteredVersion = getValue(discriminator, '/filteredVersion') + if (filteredVersion.length) return '' + + let txt = 'No versions from this list can be selected as the target version: [ ' + + presetVersions.forEach((v, idx) => { + txt = `${txt}"${v}"` + if (idx !== presetVersions.length - 1) txt = txt + ', ' + else txt = txt + ' ]' + }) + + return txt + } + + function getVersion() { + return filteredVersion.map((item) => { + const name = (item.metadata && item.metadata.name) || '' + const specVersion = (item.spec && item.spec.version) || '' + return { + text: `${name} (${specVersion})`, + value: name, + } + }) + } + + function isVersionEmpty() { + const val = getValue(discriminator, '/filteredVersion') + return val.length === 0 + } + function versionCompare(v1, v2) { const arr1 = v1.split('.').map(Number) const arr2 = v2.split('.').map(Number) @@ -1676,6 +1710,9 @@ export const useFunc = (model) => { getDbs, getDbDetails, getDbVersions, + getVersionInfo, + isVersionEmpty, + getVersion, ifRequestTypeEqualsTo, onRequestTypeChange, getDbTls, diff --git a/charts/opskubedbcom-pgpoolopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-pgpoolopsrequest-editor/ui/create-ui.yaml index d6bbe84454..7f44a673a9 100644 --- a/charts/opskubedbcom-pgpoolopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-pgpoolopsrequest-editor/ui/create-ui.yaml @@ -107,6 +107,15 @@ step: value: setValueFromDbDetails|/spec/version loader: getDbVersions schema: schema/properties/spec/properties/updateVersion/properties/targetVersion + - type: info + label: '' + loader: + name: getVersionInfo + watchPaths: + - temp/properties/filteredVersion + if: + type: function + name: isVersionEmpty # Horizontal Scale - type: block-layout label: Horizontal Scaling Form diff --git a/charts/opskubedbcom-pgpoolopsrequest-editor/ui/functions.js b/charts/opskubedbcom-pgpoolopsrequest-editor/ui/functions.js index 5f7e18a66b..11d5268070 100644 --- a/charts/opskubedbcom-pgpoolopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-pgpoolopsrequest-editor/ui/functions.js @@ -434,6 +434,8 @@ export const useFunc = (model) => { } else return {} } + let presetVersions = [] + setDiscriminatorValue('/filteredVersion', []) async function getDbVersions() { const owner = storeGet('/route/params/user') const cluster = storeGet('/route/params/cluster') @@ -449,7 +451,7 @@ export const useFunc = (model) => { } } try { - const presetVersions = presets.admin?.databases?.Pgpool?.versions?.available || [] + presetVersions = presets.admin?.databases?.Pgpool?.versions?.available || [] const queryParams = { filter: { items: { @@ -498,6 +500,7 @@ export const useFunc = (model) => { isVersionWithinConstraints(item.spec?.version, limit) ) }) + setDiscriminatorValue('/filteredVersion', filteredPgpoolVersions) return filteredPgpoolVersions.map((item) => { const name = (item.metadata && item.metadata.name) || '' const specVersion = (item.spec && item.spec.version) || '' @@ -512,6 +515,37 @@ export const useFunc = (model) => { } } + function getVersionInfo() { + const filteredVersion = getValue(discriminator, '/filteredVersion') + if (filteredVersion.length) return '' + + let txt = 'No versions from this list can be selected as the target version: [ ' + + presetVersions.forEach((v, idx) => { + txt = `${txt}"${v}"` + if (idx !== presetVersions.length - 1) txt = txt + ', ' + else txt = txt + ' ]' + }) + + return txt + } + + function getVersion() { + return filteredVersion.map((item) => { + const name = (item.metadata && item.metadata.name) || '' + const specVersion = (item.spec && item.spec.version) || '' + return { + text: `${name} (${specVersion})`, + value: name, + } + }) + } + + function isVersionEmpty() { + const val = getValue(discriminator, '/filteredVersion') + return val.length === 0 + } + function versionCompare(v1, v2) { const arr1 = v1.split('.').map(Number) const arr2 = v2.split('.').map(Number) @@ -1716,6 +1750,9 @@ export const useFunc = (model) => { getDbs, getDbDetails, getDbVersions, + getVersionInfo, + isVersionEmpty, + getVersion, ifRequestTypeEqualsTo, onRequestTypeChange, getDbTls, diff --git a/charts/opskubedbcom-postgresopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-postgresopsrequest-editor/ui/create-ui.yaml index 6d03577d39..90b45f887d 100644 --- a/charts/opskubedbcom-postgresopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-postgresopsrequest-editor/ui/create-ui.yaml @@ -107,6 +107,15 @@ step: value: setValueFromDbDetails|/spec/version loader: getDbVersions schema: schema/properties/spec/properties/updateVersion/properties/targetVersion + - type: info + label: '' + loader: + name: getVersionInfo + watchPaths: + - temp/properties/filteredVersion + if: + type: function + name: isVersionEmpty # Horizontal Scale - type: block-layout label: Horizontal Scaling Form diff --git a/charts/opskubedbcom-postgresopsrequest-editor/ui/functions.js b/charts/opskubedbcom-postgresopsrequest-editor/ui/functions.js index 3f52e95c07..626405c913 100644 --- a/charts/opskubedbcom-postgresopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-postgresopsrequest-editor/ui/functions.js @@ -432,6 +432,8 @@ export const useFunc = (model) => { } else return {} } + let presetVersions = [] + setDiscriminatorValue('/filteredVersion', []) async function getDbVersions() { const owner = storeGet('/route/params/user') const cluster = storeGet('/route/params/cluster') @@ -447,7 +449,7 @@ export const useFunc = (model) => { } } try { - const presetVersions = presets.admin?.databases?.Postgres?.versions?.available || [] + presetVersions = presets.admin?.databases?.Postgres?.versions?.available || [] const queryParams = { filter: { items: { @@ -496,6 +498,7 @@ export const useFunc = (model) => { isVersionWithinConstraints(item.spec?.version, limit) ) }) + setDiscriminatorValue('/filteredVersion', filteredPostgresVersions) return filteredPostgresVersions.map((item) => { const name = (item.metadata && item.metadata.name) || '' const specVersion = (item.spec && item.spec.version) || '' @@ -510,6 +513,37 @@ export const useFunc = (model) => { } } + function getVersionInfo() { + const filteredVersion = getValue(discriminator, '/filteredVersion') + if (filteredVersion.length) return '' + + let txt = 'No versions from this list can be selected as the target version: [ ' + + presetVersions.forEach((v, idx) => { + txt = `${txt}"${v}"` + if (idx !== presetVersions.length - 1) txt = txt + ', ' + else txt = txt + ' ]' + }) + + return txt + } + + function getVersion() { + return filteredVersion.map((item) => { + const name = (item.metadata && item.metadata.name) || '' + const specVersion = (item.spec && item.spec.version) || '' + return { + text: `${name} (${specVersion})`, + value: name, + } + }) + } + + function isVersionEmpty() { + const val = getValue(discriminator, '/filteredVersion') + return val.length === 0 + } + function versionCompare(v1, v2) { const arr1 = v1.split('.').map(Number) const arr2 = v2.split('.').map(Number) @@ -1826,6 +1860,9 @@ export const useFunc = (model) => { getDbs, getDbDetails, getDbVersions, + getVersionInfo, + isVersionEmpty, + getVersion, ifRequestTypeEqualsTo, onRequestTypeChange, getDbTls, diff --git a/charts/opskubedbcom-proxysqlopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-proxysqlopsrequest-editor/ui/create-ui.yaml index 1fafd684b2..3d24380835 100644 --- a/charts/opskubedbcom-proxysqlopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-proxysqlopsrequest-editor/ui/create-ui.yaml @@ -107,6 +107,15 @@ step: value: setValueFromDbDetails|/spec/version loader: getDbVersions schema: schema/properties/spec/properties/updateVersion/properties/targetVersion + - type: info + label: '' + loader: + name: getVersionInfo + watchPaths: + - temp/properties/filteredVersion + if: + type: function + name: isVersionEmpty # Horizontal Scale - type: block-layout label: Horizontal Scaling Form diff --git a/charts/opskubedbcom-proxysqlopsrequest-editor/ui/functions.js b/charts/opskubedbcom-proxysqlopsrequest-editor/ui/functions.js index 937f50a1b4..bab4ff7183 100644 --- a/charts/opskubedbcom-proxysqlopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-proxysqlopsrequest-editor/ui/functions.js @@ -430,6 +430,8 @@ export const useFunc = (model) => { } else return {} } + let presetVersions = [] + setDiscriminatorValue('/filteredVersion', []) async function getDbVersions() { const owner = storeGet('/route/params/user') const cluster = storeGet('/route/params/cluster') @@ -445,7 +447,7 @@ export const useFunc = (model) => { } } try { - const presetVersions = presets.admin?.databases?.ProxySQL?.versions?.available || [] + presetVersions = presets.admin?.databases?.ProxySQL?.versions?.available || [] const queryParams = { filter: { items: { @@ -494,6 +496,7 @@ export const useFunc = (model) => { isVersionWithinConstraints(item.spec?.version, limit) ) }) + setDiscriminatorValue('/filteredVersion', filteredProxySQLVersions) return filteredProxySQLVersions.map((item) => { const name = (item.metadata && item.metadata.name) || '' const specVersion = (item.spec && item.spec.version) || '' @@ -508,6 +511,37 @@ export const useFunc = (model) => { } } + function getVersionInfo() { + const filteredVersion = getValue(discriminator, '/filteredVersion') + if (filteredVersion.length) return '' + + let txt = 'No versions from this list can be selected as the target version: [ ' + + presetVersions.forEach((v, idx) => { + txt = `${txt}"${v}"` + if (idx !== presetVersions.length - 1) txt = txt + ', ' + else txt = txt + ' ]' + }) + + return txt + } + + function getVersion() { + return filteredVersion.map((item) => { + const name = (item.metadata && item.metadata.name) || '' + const specVersion = (item.spec && item.spec.version) || '' + return { + text: `${name} (${specVersion})`, + value: name, + } + }) + } + + function isVersionEmpty() { + const val = getValue(discriminator, '/filteredVersion') + return val.length === 0 + } + function versionCompare(v1, v2) { const arr1 = v1.split('.').map(Number) const arr2 = v2.split('.').map(Number) @@ -1264,6 +1298,9 @@ export const useFunc = (model) => { getDbs, getDbDetails, getDbVersions, + getVersionInfo, + isVersionEmpty, + getVersion, ifRequestTypeEqualsTo, onRequestTypeChange, getDbTls, diff --git a/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/create-ui.yaml index 644c193ade..be01348874 100644 --- a/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/create-ui.yaml @@ -107,6 +107,15 @@ step: value: setValueFromDbDetails|/spec/version loader: getDbVersions schema: schema/properties/spec/properties/updateVersion/properties/targetVersion + - type: info + label: '' + loader: + name: getVersionInfo + watchPaths: + - temp/properties/filteredVersion + if: + type: function + name: isVersionEmpty # Horizontal Scale - type: block-layout label: Horizontal Scaling Form diff --git a/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/functions.js b/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/functions.js index a035202d37..ef09d63222 100644 --- a/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/functions.js @@ -432,6 +432,8 @@ export const useFunc = (model) => { } else return {} } + let presetVersions = [] + setDiscriminatorValue('/filteredVersion', []) async function getDbVersions() { const owner = storeGet('/route/params/user') const cluster = storeGet('/route/params/cluster') @@ -450,7 +452,7 @@ export const useFunc = (model) => { } try { - const presetVersions = presets.admin?.databases?.RabbitMQ?.versions?.available || [] + presetVersions = presets.admin?.databases?.RabbitMQ?.versions?.available || [] const queryParams = { filter: { items: { @@ -501,6 +503,7 @@ export const useFunc = (model) => { ) }) + setDiscriminatorValue('/filteredVersion', filteredRabbitMQVersions) return filteredRabbitMQVersions.map((item) => { const name = (item.metadata && item.metadata.name) || '' const specVersion = (item.spec && item.spec.version) || '' @@ -515,6 +518,37 @@ export const useFunc = (model) => { } } + function getVersionInfo() { + const filteredVersion = getValue(discriminator, '/filteredVersion') + if (filteredVersion.length) return '' + + let txt = 'No versions from this list can be selected as the target version: [ ' + + presetVersions.forEach((v, idx) => { + txt = `${txt}"${v}"` + if (idx !== presetVersions.length - 1) txt = txt + ', ' + else txt = txt + ' ]' + }) + + return txt + } + + function getVersion() { + return filteredVersion.map((item) => { + const name = (item.metadata && item.metadata.name) || '' + const specVersion = (item.spec && item.spec.version) || '' + return { + text: `${name} (${specVersion})`, + value: name, + } + }) + } + + function isVersionEmpty() { + const val = getValue(discriminator, '/filteredVersion') + return val.length === 0 + } + function versionCompare(v1, v2) { const arr1 = v1.split('.').map(Number) const arr2 = v2.split('.').map(Number) @@ -1753,6 +1787,9 @@ export const useFunc = (model) => { getDbs, getDbDetails, getDbVersions, + getVersionInfo, + isVersionEmpty, + getVersion, ifRequestTypeEqualsTo, onRequestTypeChange, getDbTls, diff --git a/charts/opskubedbcom-redisopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-redisopsrequest-editor/ui/create-ui.yaml index 1ff87ee479..c389a7d019 100644 --- a/charts/opskubedbcom-redisopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-redisopsrequest-editor/ui/create-ui.yaml @@ -107,6 +107,15 @@ step: value: setValueFromDbDetails|/spec/version loader: getDbVersions schema: schema/properties/spec/properties/updateVersion/properties/targetVersion + - type: info + label: '' + loader: + name: getVersionInfo + watchPaths: + - temp/properties/filteredVersion + if: + type: function + name: isVersionEmpty # Horizontal Scale - type: block-layout label: Horizontal Scaling Form diff --git a/charts/opskubedbcom-redisopsrequest-editor/ui/functions.js b/charts/opskubedbcom-redisopsrequest-editor/ui/functions.js index c7c3692709..fabd0c291a 100644 --- a/charts/opskubedbcom-redisopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-redisopsrequest-editor/ui/functions.js @@ -432,6 +432,8 @@ export const useFunc = (model) => { } else return {} } + let presetVersions = [] + setDiscriminatorValue('/filteredVersion', []) async function getDbVersions() { const owner = storeGet('/route/params/user') const cluster = storeGet('/route/params/cluster') @@ -447,7 +449,7 @@ export const useFunc = (model) => { } } try { - const presetVersions = presets.admin?.databases?.Redis?.versions?.available || [] + presetVersions = presets.admin?.databases?.Redis?.versions?.available || [] const queryParams = { filter: { items: { @@ -496,6 +498,7 @@ export const useFunc = (model) => { isVersionWithinConstraints(item.spec?.version, limit) ) }) + setDiscriminatorValue('/filteredVersion', filteredRedisVersions) return filteredRedisVersions.map((item) => { const name = (item.metadata && item.metadata.name) || '' const specVersion = (item.spec && item.spec.version) || '' @@ -510,6 +513,37 @@ export const useFunc = (model) => { } } + function getVersionInfo() { + const filteredVersion = getValue(discriminator, '/filteredVersion') + if (filteredVersion.length) return '' + + let txt = 'No versions from this list can be selected as the target version: [ ' + + presetVersions.forEach((v, idx) => { + txt = `${txt}"${v}"` + if (idx !== presetVersions.length - 1) txt = txt + ', ' + else txt = txt + ' ]' + }) + + return txt + } + + function getVersion() { + return filteredVersion.map((item) => { + const name = (item.metadata && item.metadata.name) || '' + const specVersion = (item.spec && item.spec.version) || '' + return { + text: `${name} (${specVersion})`, + value: name, + } + }) + } + + function isVersionEmpty() { + const val = getValue(discriminator, '/filteredVersion') + return val.length === 0 + } + function versionCompare(v1, v2) { const arr1 = v1.split('.').map(Number) const arr2 = v2.split('.').map(Number) @@ -1749,6 +1783,9 @@ export const useFunc = (model) => { getDbs, getDbDetails, getDbVersions, + getVersionInfo, + isVersionEmpty, + getVersion, ifRequestTypeEqualsTo, onRequestTypeChange, getDbTls, diff --git a/charts/opskubedbcom-singlestoreopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-singlestoreopsrequest-editor/ui/create-ui.yaml index e9ea07ff51..4f618f08b4 100644 --- a/charts/opskubedbcom-singlestoreopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-singlestoreopsrequest-editor/ui/create-ui.yaml @@ -107,6 +107,15 @@ step: value: setValueFromDbDetails|/spec/version loader: getDbVersions schema: schema/properties/spec/properties/updateVersion/properties/targetVersion + - type: info + label: '' + loader: + name: getVersionInfo + watchPaths: + - temp/properties/filteredVersion + if: + type: function + name: isVersionEmpty # Horizontal Scale - type: block-layout label: Horizontal Scaling Form diff --git a/charts/opskubedbcom-singlestoreopsrequest-editor/ui/functions.js b/charts/opskubedbcom-singlestoreopsrequest-editor/ui/functions.js index ebf2bba522..e277ac5c0a 100644 --- a/charts/opskubedbcom-singlestoreopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-singlestoreopsrequest-editor/ui/functions.js @@ -432,6 +432,8 @@ export const useFunc = (model) => { } else return {} } + let presetVersions = [] + setDiscriminatorValue('/filteredVersion', []) async function getDbVersions() { const owner = storeGet('/route/params/user') const cluster = storeGet('/route/params/cluster') @@ -447,7 +449,7 @@ export const useFunc = (model) => { } } try { - const presetVersions = presets.admin?.databases?.Singlestore?.versions?.available || [] + presetVersions = presets.admin?.databases?.Singlestore?.versions?.available || [] const queryParams = { filter: { items: { @@ -496,6 +498,7 @@ export const useFunc = (model) => { isVersionWithinConstraints(item.spec?.version, limit) ) }) + setDiscriminatorValue('/filteredVersion', filteredSinglestoreVersions) return filteredSinglestoreVersions.map((item) => { const name = (item.metadata && item.metadata.name) || '' const specVersion = (item.spec && item.spec.version) || '' @@ -510,6 +513,37 @@ export const useFunc = (model) => { } } + function getVersionInfo() { + const filteredVersion = getValue(discriminator, '/filteredVersion') + if (filteredVersion.length) return '' + + let txt = 'No versions from this list can be selected as the target version: [ ' + + presetVersions.forEach((v, idx) => { + txt = `${txt}"${v}"` + if (idx !== presetVersions.length - 1) txt = txt + ', ' + else txt = txt + ' ]' + }) + + return txt + } + + function getVersion() { + return filteredVersion.map((item) => { + const name = (item.metadata && item.metadata.name) || '' + const specVersion = (item.spec && item.spec.version) || '' + return { + text: `${name} (${specVersion})`, + value: name, + } + }) + } + + function isVersionEmpty() { + const val = getValue(discriminator, '/filteredVersion') + return val.length === 0 + } + function versionCompare(v1, v2) { const arr1 = v1.split('.').map(Number) const arr2 = v2.split('.').map(Number) @@ -1790,6 +1824,9 @@ export const useFunc = (model) => { getDbs, getDbDetails, getDbVersions, + getVersionInfo, + isVersionEmpty, + getVersion, ifRequestTypeEqualsTo, onRequestTypeChange, getDbTls, diff --git a/charts/opskubedbcom-solropsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-solropsrequest-editor/ui/create-ui.yaml index 85251a8359..61b2f3003b 100644 --- a/charts/opskubedbcom-solropsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-solropsrequest-editor/ui/create-ui.yaml @@ -110,6 +110,15 @@ step: value: setValueFromDbDetails|/spec/version loader: getDbVersions schema: schema/properties/spec/properties/updateVersion/properties/targetVersion + - type: info + label: '' + loader: + name: getVersionInfo + watchPaths: + - temp/properties/filteredVersion + if: + type: function + name: isVersionEmpty # Horizontal Scale - type: block-layout label: Horizontal Scaling Form diff --git a/charts/opskubedbcom-solropsrequest-editor/ui/functions.js b/charts/opskubedbcom-solropsrequest-editor/ui/functions.js index 79861c1456..edcd1dd6b3 100644 --- a/charts/opskubedbcom-solropsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-solropsrequest-editor/ui/functions.js @@ -436,6 +436,8 @@ export const useFunc = (model) => { } else return {} } + let presetVersions = [] + setDiscriminatorValue('/filteredVersion', []) async function getDbVersions() { const owner = storeGet('/route/params/user') const cluster = storeGet('/route/params/cluster') @@ -451,7 +453,7 @@ export const useFunc = (model) => { } } try { - const presetVersions = presets.admin?.databases?.Solr?.versions?.available || [] + presetVersions = presets.admin?.databases?.Solr?.versions?.available || [] const queryParams = { filter: { items: { @@ -500,6 +502,7 @@ export const useFunc = (model) => { isVersionWithinConstraints(item.spec?.version, limit) ) }) + setDiscriminatorValue('/filteredVersion', filteredSolrVersions) return filteredSolrVersions.map((item) => { const name = (item.metadata && item.metadata.name) || '' const specVersion = (item.spec && item.spec.version) || '' @@ -514,6 +517,37 @@ export const useFunc = (model) => { } } + function getVersionInfo() { + const filteredVersion = getValue(discriminator, '/filteredVersion') + if (filteredVersion.length) return '' + + let txt = 'No versions from this list can be selected as the target version: [ ' + + presetVersions.forEach((v, idx) => { + txt = `${txt}"${v}"` + if (idx !== presetVersions.length - 1) txt = txt + ', ' + else txt = txt + ' ]' + }) + + return txt + } + + function getVersion() { + return filteredVersion.map((item) => { + const name = (item.metadata && item.metadata.name) || '' + const specVersion = (item.spec && item.spec.version) || '' + return { + text: `${name} (${specVersion})`, + value: name, + } + }) + } + + function isVersionEmpty() { + const val = getValue(discriminator, '/filteredVersion') + return val.length === 0 + } + function versionCompare(v1, v2) { const arr1 = v1.split('.').map(Number) const arr2 = v2.split('.').map(Number) @@ -1783,6 +1817,9 @@ export const useFunc = (model) => { getDbs, getDbDetails, getDbVersions, + getVersionInfo, + isVersionEmpty, + getVersion, ifRequestTypeEqualsTo, onRequestTypeChange, getDbTls, diff --git a/charts/opskubedbcom-zookeeperopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-zookeeperopsrequest-editor/ui/create-ui.yaml index 00e7239749..393ce8310a 100644 --- a/charts/opskubedbcom-zookeeperopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-zookeeperopsrequest-editor/ui/create-ui.yaml @@ -110,6 +110,15 @@ step: value: setValueFromDbDetails|/spec/version loader: getDbVersions schema: schema/properties/spec/properties/updateVersion/properties/targetVersion + - type: info + label: '' + loader: + name: getVersionInfo + watchPaths: + - temp/properties/filteredVersion + if: + type: function + name: isVersionEmpty # Horizontal Scale - type: block-layout label: Horizontal Scaling Form diff --git a/charts/opskubedbcom-zookeeperopsrequest-editor/ui/functions.js b/charts/opskubedbcom-zookeeperopsrequest-editor/ui/functions.js index 8d0a4f3e70..c99b7dda10 100644 --- a/charts/opskubedbcom-zookeeperopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-zookeeperopsrequest-editor/ui/functions.js @@ -394,6 +394,8 @@ export const useFunc = (model) => { } else return {} } + let presetVersions = [] + setDiscriminatorValue('/filteredVersion', []) async function getDbVersions() { const owner = storeGet('/route/params/user') const cluster = storeGet('/route/params/cluster') @@ -412,7 +414,7 @@ export const useFunc = (model) => { } try { - const presetVersions = presets.admin?.databases?.ZooKeeper?.versions?.available || [] + presetVersions = presets.admin?.databases?.ZooKeeper?.versions?.available || [] const queryParams = { filter: { items: { @@ -468,6 +470,7 @@ export const useFunc = (model) => { ) }) + setDiscriminatorValue('/filteredVersion', filteredZooKeeperVersions) return filteredZooKeeperVersions.map((item) => { const name = (item.metadata && item.metadata.name) || '' const specVersion = (item.spec && item.spec.version) || '' @@ -482,6 +485,37 @@ export const useFunc = (model) => { } } + function getVersionInfo() { + const filteredVersion = getValue(discriminator, '/filteredVersion') + if (filteredVersion.length) return '' + + let txt = 'No versions from this list can be selected as the target version: [ ' + + presetVersions.forEach((v, idx) => { + txt = `${txt}"${v}"` + if (idx !== presetVersions.length - 1) txt = txt + ', ' + else txt = txt + ' ]' + }) + + return txt + } + + function getVersion() { + return filteredVersion.map((item) => { + const name = (item.metadata && item.metadata.name) || '' + const specVersion = (item.spec && item.spec.version) || '' + return { + text: `${name} (${specVersion})`, + value: name, + } + }) + } + + function isVersionEmpty() { + const val = getValue(discriminator, '/filteredVersion') + return val.length === 0 + } + function versionCompare(v1, v2) { const arr1 = v1.split('.').map(Number) const arr2 = v2.split('.').map(Number) @@ -1584,6 +1618,9 @@ export const useFunc = (model) => { getDbs, getDbDetails, getDbVersions, + getVersionInfo, + isVersionEmpty, + getVersion, ifRequestTypeEqualsTo, onRequestTypeChange, getDbTls, From 633e1982df08f34f8b78f531268c249e5e4f6518 Mon Sep 17 00:00:00 2001 From: Samiul Date: Thu, 29 Jan 2026 14:43:26 +0600 Subject: [PATCH 2/2] fix mongo Signed-off-by: Samiul --- .../ui/create-ui.yaml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/charts/opskubedbcom-mongodbopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-mongodbopsrequest-editor/ui/create-ui.yaml index b9b87b8e13..ff7ad0a091 100644 --- a/charts/opskubedbcom-mongodbopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-mongodbopsrequest-editor/ui/create-ui.yaml @@ -119,15 +119,6 @@ step: if: type: function name: isVersionEmpty - - type: info - label: '' - loader: - name: getVersionInfo - watchPaths: - - temp/properties/filteredVersion - if: - type: function - name: isVersionEmpty # Horizontal Scale - type: block-layout label: Horizontal Scaling Form