Add UI support for cloning Compute and System Service offerings

This commit is contained in:
Pearl Dsilva 2026-01-07 14:26:52 -05:00
parent db8fb3bffd
commit d58fea299b
3 changed files with 1436 additions and 0 deletions

View File

@ -558,6 +558,8 @@
"label.clear.list": "Clear list",
"label.clear.notification": "Clear notification",
"label.clientid": "Provider Client ID",
"label.clone.compute.offering": "Clone Compute Offering",
"label.clone.system.service.offering": "Clone System Service Offering",
"label.close": "Close",
"label.cloud.managed": "CloudManaged",
"label.cloudian.admin.password": "Admin Service Password",
@ -3215,6 +3217,10 @@
"message.create.bucket.failed": "Failed to create bucket.",
"message.create.bucket.processing": "Bucket creation in progress",
"message.create.compute.offering": "Compute Offering created",
"message.clone.compute.offering": "Compute Offering cloned",
"message.clone.service.offering": "Service Offering cloned",
"message.clone.offering.from": "Cloning from",
"message.clone.offering.edit.hint": "All values are pre-filled from the source offering. Edit any field to customize the new offering.",
"message.create.sharedfs.failed": "Failed to create Shared FileSystem.",
"message.create.sharedfs.processing": "Shared FileSystem creation in progress.",
"message.create.tungsten.public.network": "Create Tungsten-Fabric public Network",

View File

@ -143,6 +143,14 @@ export default {
},
show: (record) => { return record.state === 'Active' },
groupMap: (selection) => { return selection.map(x => { return { id: x, state: 'Inactive' } }) }
}, {
api: 'cloneServiceOffering',
icon: 'copy-outlined',
label: 'label.clone.compute.offering',
docHelp: 'adminguide/service_offerings.html#creating-a-new-compute-offering',
dataView: true,
popup: true,
component: shallowRef(defineAsyncComponent(() => import('@/views/offering/CloneComputeOffering.vue')))
}]
},
{
@ -225,6 +233,15 @@ export default {
},
show: (record) => { return record.state === 'Active' },
groupMap: (selection) => { return selection.map(x => { return { id: x, state: 'Inactive' } }) }
}, {
api: 'cloneServiceOffering',
icon: 'copy-outlined',
label: 'label.clone.system.service.offering',
docHelp: 'adminguide/service_offerings.html#creating-a-new-system-service-offering',
dataView: true,
params: { issystem: 'true' },
popup: true,
component: shallowRef(defineAsyncComponent(() => import('@/views/offering/CloneComputeOffering.vue')))
}]
},
{

File diff suppressed because it is too large Load Diff