The confirmation dialogs of the following actions are affected by this
change:
* Remove
* Clone
* Migrate
* Snapshot
* Snapshot rollback
* Backup VM/CT from config view
* Restore VM/CT from config view

The VM/CT name is considered optional in all handled cases. If it is
undefined, the parentheses and the guest name simply will not be
displayed in the dialog window. No exceptions are thrown in case of an
undefined guest name because it only extends the information displayed
to the user and is not essential for performing any of the actions
above.

Signed-off-by: Michael Köppl <m.koe...@proxmox.com>
---
 www/manager6/grid/BackupView.js   |  4 ++++
 www/manager6/lxc/CmdMenu.js       |  9 ++++++++-
 www/manager6/lxc/Config.js        | 11 +++++++++--
 www/manager6/qemu/CmdMenu.js      |  9 ++++++++-
 www/manager6/qemu/Config.js       | 11 +++++++++--
 www/manager6/tree/SnapshotTree.js |  3 +++
 www/manager6/window/Backup.js     |  3 +++
 www/manager6/window/Clone.js      |  7 ++++++-
 www/manager6/window/Migrate.js    | 10 +++++++---
 www/manager6/window/Restore.js    |  3 +++
 www/manager6/window/Snapshot.js   |  6 +++++-
 11 files changed, 65 insertions(+), 11 deletions(-)

diff --git a/www/manager6/grid/BackupView.js b/www/manager6/grid/BackupView.js
index e71d1c88..99f2a49b 100644
--- a/www/manager6/grid/BackupView.js
+++ b/www/manager6/grid/BackupView.js
@@ -39,6 +39,8 @@ Ext.define('PVE.grid.BackupView', {
            throw "unsupported VM type '" + vmtype + "'";
        }
 
+       let vmname = me.pveSelNode.data.name;
+
        var searchFilter = {
            property: 'volid',
            value: '',
@@ -167,6 +169,7 @@ Ext.define('PVE.grid.BackupView', {
                    nodename: nodename,
                    vmid: vmid,
                    vmtype: vmtype,
+                   vmname: vmname,
                    storage: storagesel.getValue(),
                    listeners: {
                        close: function() {
@@ -189,6 +192,7 @@ Ext.define('PVE.grid.BackupView', {
                let win = Ext.create('PVE.window.Restore', {
                    nodename: nodename,
                    vmid: vmid,
+                   vmname: vmname,
                    volid: rec.data.volid,
                    volidText: PVE.Utils.render_storage_content(rec.data.volid, 
{}, rec),
                    vmtype: vmtype,
diff --git a/www/manager6/lxc/CmdMenu.js b/www/manager6/lxc/CmdMenu.js
index e30989a6..e4dadd2f 100644
--- a/www/manager6/lxc/CmdMenu.js
+++ b/www/manager6/lxc/CmdMenu.js
@@ -89,7 +89,13 @@ Ext.define('PVE.lxc.CmdMenu', {
                text: gettext('Clone'),
                iconCls: 'fa fa-fw fa-clone',
                hidden: !caps.vms['VM.Clone'],
-               handler: () => PVE.window.Clone.wrap(info.node, info.vmid, 
me.isTemplate, 'lxc'),
+               handler: () => PVE.window.Clone.wrap(
+                   info.node,
+                   info.vmid,
+                   info.name,
+                   me.isTemplate,
+                   'lxc',
+               ),
            },
            {
                text: gettext('Migrate'),
@@ -100,6 +106,7 @@ Ext.define('PVE.lxc.CmdMenu', {
                        vmtype: 'lxc',
                        nodename: info.node,
                        vmid: info.vmid,
+                       vmname: info.name,
                        autoShow: true,
                    });
                },
diff --git a/www/manager6/lxc/Config.js b/www/manager6/lxc/Config.js
index a7191fa2..9e33ca56 100644
--- a/www/manager6/lxc/Config.js
+++ b/www/manager6/lxc/Config.js
@@ -100,6 +100,7 @@ Ext.define('PVE.lxc.Config', {
                    vmtype: 'lxc',
                    nodename: nodename,
                    vmid: vmid,
+                   vmname: vm.name,
                });
                win.show();
            },
@@ -115,7 +116,13 @@ Ext.define('PVE.lxc.Config', {
                    iconCls: 'fa fa-fw fa-clone',
                    hidden: !caps.vms['VM.Clone'],
                    handler: function() {
-                       PVE.window.Clone.wrap(nodename, vmid, template, 'lxc');
+                       PVE.window.Clone.wrap(
+                           nodename,
+                           vmid,
+                           vm.name,
+                           template,
+                           'lxc',
+                       );
                    },
                },
                {
@@ -156,7 +163,7 @@ Ext.define('PVE.lxc.Config', {
                    handler: function() {
                        Ext.create('PVE.window.SafeDestroyGuest', {
                            url: base_url,
-                           item: { type: 'CT', id: vmid },
+                           item: { type: 'CT', id: vmid, name: vm.name },
                            taskName: 'vzdestroy',
                        }).show();
                    },
diff --git a/www/manager6/qemu/CmdMenu.js b/www/manager6/qemu/CmdMenu.js
index 7a4e0a0e..e7dd6782 100644
--- a/www/manager6/qemu/CmdMenu.js
+++ b/www/manager6/qemu/CmdMenu.js
@@ -121,6 +121,7 @@ Ext.define('PVE.qemu.CmdMenu', {
                        vmtype: 'qemu',
                        nodename: info.node,
                        vmid: info.vmid,
+                       vmname: info.name,
                        autoShow: true,
                    });
                },
@@ -129,7 +130,13 @@ Ext.define('PVE.qemu.CmdMenu', {
                text: gettext('Clone'),
                iconCls: 'fa fa-fw fa-clone',
                hidden: !caps.vms['VM.Clone'],
-               handler: () => PVE.window.Clone.wrap(info.node, info.vmid, 
me.isTemplate, 'qemu'),
+               handler: () => PVE.window.Clone.wrap(
+                   info.node,
+                   info.vmid,
+                   info.name,
+                   me.isTemplate,
+                   'qemu',
+               ),
            },
            {
                text: gettext('Convert to template'),
diff --git a/www/manager6/qemu/Config.js b/www/manager6/qemu/Config.js
index 48eb753e..c4f904e8 100644
--- a/www/manager6/qemu/Config.js
+++ b/www/manager6/qemu/Config.js
@@ -73,6 +73,7 @@ Ext.define('PVE.qemu.Config', {
                    vmtype: 'qemu',
                    nodename: nodename,
                    vmid: vmid,
+                   vmname: vm.name,
                });
                win.show();
            },
@@ -88,7 +89,13 @@ Ext.define('PVE.qemu.Config', {
                    iconCls: 'fa fa-fw fa-clone',
                    hidden: !caps.vms['VM.Clone'],
                    handler: function() {
-                       PVE.window.Clone.wrap(nodename, vmid, template, 'qemu');
+                       PVE.window.Clone.wrap(
+                           nodename,
+                           vmid,
+                           vm.name,
+                           template,
+                           'qemu',
+                       );
                    },
                },
                {
@@ -128,7 +135,7 @@ Ext.define('PVE.qemu.Config', {
                    handler: function() {
                        Ext.create('PVE.window.SafeDestroyGuest', {
                            url: base_url,
-                           item: { type: 'VM', id: vmid },
+                           item: { type: 'VM', id: vmid, name: vm.name },
                            taskName: 'qmdestroy',
                        }).show();
                    },
diff --git a/www/manager6/tree/SnapshotTree.js 
b/www/manager6/tree/SnapshotTree.js
index 97268072..835245c1 100644
--- a/www/manager6/tree/SnapshotTree.js
+++ b/www/manager6/tree/SnapshotTree.js
@@ -50,6 +50,7 @@ Ext.define('PVE.guest.SnapshotTree', {
            let win = Ext.create('PVE.window.Snapshot', {
                nodename: vm.get('nodename'),
                vmid: vm.get('vmid'),
+               vmname: vm.get('vmname'),
                viewonly: !vm.get('snapshotAllowed'),
                type: vm.get('type'),
                isCreate: !edit,
@@ -213,6 +214,8 @@ Ext.define('PVE.guest.SnapshotTree', {
            }
            vm.set('vmid', view.pveSelNode.data.vmid);
 
+           vm.set('vmname', view.pveSelNode.data.name);
+
            let caps = Ext.state.Manager.get('GuiCap');
            vm.set('snapshotAllowed', !!caps.vms['VM.Snapshot']);
            vm.set('rollbackAllowed', !!caps.vms['VM.Snapshot.Rollback']);
diff --git a/www/manager6/window/Backup.js b/www/manager6/window/Backup.js
index 4418a9c7..2b0ab153 100644
--- a/www/manager6/window/Backup.js
+++ b/www/manager6/window/Backup.js
@@ -331,6 +331,9 @@ Ext.define('PVE.window.Backup', {
        var title = gettext('Backup') + " " +
            (me.vmtype === 'lxc' ? "CT" : "VM") +
            " " + me.vmid;
+       if (me.vmname) {
+           title += " (" + me.vmname + ")";
+       }
 
        Ext.apply(me, {
            title: title,
diff --git a/www/manager6/window/Clone.js b/www/manager6/window/Clone.js
index 2d3f2678..b139cb46 100644
--- a/www/manager6/window/Clone.js
+++ b/www/manager6/window/Clone.js
@@ -21,7 +21,7 @@ Ext.define('PVE.window.Clone', {
 
     statics: {
        // display a snapshot selector only if needed
-       wrap: function(nodename, vmid, isTemplate, guestType) {
+       wrap: function(nodename, vmid, vmname, isTemplate, guestType) {
            Proxmox.Utils.API2Request({
                url: '/nodes/' + nodename + '/' + guestType + '/' + vmid 
+'/snapshot',
                failure: function(response, opts) {
@@ -36,6 +36,7 @@ Ext.define('PVE.window.Clone', {
                        nodename: nodename,
                        guestType: guestType,
                        vmid: vmid,
+                       vmname: vmname,
                        isTemplate: isTemplate,
                        hasSnapshots: hasSnapshots,
                    }).show();
@@ -155,7 +156,11 @@ Ext.define('PVE.window.Clone', {
        if (me.isTemplate) {
            titletext += ' Template';
        }
+
        me.title = "Clone " + titletext + " " + me.vmid;
+       if (me.vmname) {
+           me.title += " (" + me.vmname + ")";
+       }
 
        var col1 = [];
        var col2 = [];
diff --git a/www/manager6/window/Migrate.js b/www/manager6/window/Migrate.js
index 78d03921..69792af8 100644
--- a/www/manager6/window/Migrate.js
+++ b/www/manager6/window/Migrate.js
@@ -4,6 +4,7 @@ Ext.define('PVE.window.Migrate', {
     vmtype: undefined,
     nodename: undefined,
     vmid: undefined,
+    vmname: undefined,
     maxHeight: 450,
 
     viewModel: {
@@ -92,9 +93,12 @@ Ext.define('PVE.window.Migrate', {
            }
            vm.set('vmtype', view.vmtype);
 
-           view.setTitle(
-               Ext.String.format('{0} {1} {2}', gettext('Migrate'), 
vm.get(view.vmtype).commonName, view.vmid),
-           );
+           let title = Ext.String.format('{0} {1} {2}', gettext('Migrate'), 
vm.get(view.vmtype).commonName, view.vmid);
+           if (view.vmname) {
+               title += Ext.String.format(" ({0})", view.vmname);
+           }
+           view.setTitle(title);
+
            me.lookup('proxmoxHelpButton').setHelpConfig({
                onlineHelp: vm.get(view.vmtype).onlineHelp,
            });
diff --git a/www/manager6/window/Restore.js b/www/manager6/window/Restore.js
index 6efe1313..d98f3e53 100644
--- a/www/manager6/window/Restore.js
+++ b/www/manager6/window/Restore.js
@@ -357,6 +357,9 @@ Ext.define('PVE.window.Restore', {
        let title = gettext('Restore') + ": " + (me.vmtype === 'lxc' ? 'CT' : 
'VM');
        if (me.vmid) {
            title = `${gettext('Overwrite')} ${title} ${me.vmid}`;
+           if (me.vmname) {
+               title += " (" + me.vmname + ")";
+           }
        }
 
        Ext.apply(me, {
diff --git a/www/manager6/window/Snapshot.js b/www/manager6/window/Snapshot.js
index 426be7cc..c1816e69 100644
--- a/www/manager6/window/Snapshot.js
+++ b/www/manager6/window/Snapshot.js
@@ -137,7 +137,11 @@ Ext.define('PVE.window.Snapshot', {
 
        let subject;
        if (me.isCreate) {
-           subject = (me.type === 'qemu' ? 'VM' : 'CT') + me.vmid + ' ' + 
gettext('Snapshot');
+           subject = (me.type === 'qemu' ? 'VM' : 'CT') + me.vmid;
+           if (me.vmname) {
+               subject += " (" + me.vmname + ")";
+           }
+           subject += ' ' + gettext('Snapshot');
            me.method = 'POST';
            me.showTaskViewer = true;
        } else {
-- 
2.39.5



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to