diff --git a/ui/public/locales/en.json b/ui/public/locales/en.json index 99bf2cf7aef9..91f00e433fbf 100644 --- a/ui/public/locales/en.json +++ b/ui/public/locales/en.json @@ -3942,6 +3942,7 @@ "message.recover.vm": "Please confirm that you would like to recover this Instance.", "message.reinstall.vm": "NOTE: Proceed with caution. This will cause the Instance to be reinstalled from the Template; data on the root disk will be lost. Extra data volumes, if any, will not be touched.", "message.related.settings.changed": "'%x' has been changed. Would you like to review or update any related settings below?", +"message.related.settings.may.not.be.exhaustive": "This list of related settings may not be exhaustive. Please check the documentation for other settings that may need to be updated.", "message.release.ip.failed": "Failed to release IP", "message.releasing.dedicated.cluster": "Releasing dedicated Cluster...", "message.releasing.dedicated.host": "Releasing dedicated host...", diff --git a/ui/src/views/setting/ConfigurationValue.vue b/ui/src/views/setting/ConfigurationValue.vue index ea146df8cb3c..551a4589a9a8 100644 --- a/ui/src/views/setting/ConfigurationValue.vue +++ b/ui/src/views/setting/ConfigurationValue.vue @@ -199,6 +199,11 @@ :width="'60vw'" @cancel="closeRelatedModal">

{{ $t('message.related.settings.changed').replace('%x', relatedSourceConfigName) }}

+ { + const list = json?.listconfigurationsresponse?.configuration || [] + return list.filter(c => c.name.startsWith(prefix + '.')) + }) + ) } - getAPI('listConfigurations', params).then(json => { - const list = json?.listconfigurationsresponse?.configuration || [] - this.relatedConfigs = list.filter(c => c.name !== configrecord.name && c.name.startsWith(prefix + '.')) + requests.push( + getAPI('listConfigurations', { ...scopeParams, parent: configrecord.name }).then(json => { + return json?.listconfigurationsresponse?.configuration || [] + }) + ) + this.relatedLoading = true + Promise.all(requests).then(results => { + const merged = new Map() + results.flat().forEach(c => { + if (c.name !== configrecord.name) { + merged.set(c.name, c) + } + }) + this.relatedConfigs = Array.from(merged.values()) if (this.relatedConfigs.length > 0) { this.relatedSourceConfigName = configrecord.name this.relatedModalVisible = true