[pve-devel] [PATCH v4 manager 4/5] added new parameter to pass a command to the newly opened terminal
Tim Marx
t.marx at proxmox.com
Mon Jan 28 14:55:52 CET 2019
Ext.urlEncode is deprecated, use Ext.Object.toQueryString instead
Signed-off-by: Tim Marx <t.marx at proxmox.com>
---
www/manager6/Utils.js | 21 +++++++++++++--------
www/manager6/button/ConsoleButton.js | 12 +++++++-----
2 files changed, 20 insertions(+), 13 deletions(-)
diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js
index cf9cbdc9..4cc5ffe4 100644
--- a/www/manager6/Utils.js
+++ b/www/manager6/Utils.js
@@ -805,12 +805,12 @@ Ext.define('PVE.Utils', { utilities: {
function(m, addr, offset, original) { return addr; });
},
- openDefaultConsoleWindow: function(consoles, vmtype, vmid, nodename, vmname) {
+ openDefaultConsoleWindow: function(consoles, vmtype, vmid, nodename, vmname, cmd) {
var dv = PVE.Utils.defaultViewer(consoles);
- PVE.Utils.openConsoleWindow(dv, vmtype, vmid, nodename, vmname);
+ PVE.Utils.openConsoleWindow(dv, vmtype, vmid, nodename, vmname, cmd);
},
- openConsoleWindow: function(viewer, vmtype, vmid, nodename, vmname) {
+ openConsoleWindow: function(viewer, vmtype, vmid, nodename, vmname, cmd) {
// kvm, lxc, shell, upgrade
if (vmid == undefined && (vmtype === 'kvm' || vmtype === 'lxc')) {
@@ -822,9 +822,9 @@ Ext.define('PVE.Utils', { utilities: {
}
if (viewer === 'html5') {
- PVE.Utils.openVNCViewer(vmtype, vmid, nodename, vmname);
+ PVE.Utils.openVNCViewer(vmtype, vmid, nodename, vmname, cmd);
} else if (viewer === 'xtermjs') {
- Proxmox.Utils.openXtermJsViewer(vmtype, vmid, nodename, vmname);
+ Proxmox.Utils.openXtermJsViewer(vmtype, vmid, nodename, vmname, cmd);
} else if (viewer === 'vv') {
var url;
var params = { proxy: PVE.Utils.windowHostname() };
@@ -841,6 +841,10 @@ Ext.define('PVE.Utils', { utilities: {
url = '/nodes/' + nodename + '/spiceshell';
params.upgrade = 1;
PVE.Utils.openSpiceViewer(url, params);
+ } else if (vmtype === 'cmd') {
+ url = '/nodes/' + nodename + '/spiceshell';
+ params.cmd = cmd;
+ PVE.Utils.openSpiceViewer(url, params);
}
} else {
throw "unknown viewer type";
@@ -867,14 +871,15 @@ Ext.define('PVE.Utils', { utilities: {
return dv;
},
- openVNCViewer: function(vmtype, vmid, nodename, vmname) {
- var url = Ext.urlEncode({
+ openVNCViewer: function(vmtype, vmid, nodename, vmname, cmd) {
+ var url = Ext.Object.toQueryString({
console: vmtype, // kvm, lxc, upgrade or shell
novnc: 1,
vmid: vmid,
vmname: vmname,
node: nodename,
- resize: 'off'
+ resize: 'off',
+ cmd: cmd
});
var nw = window.open("?" + url, '_blank', "innerWidth=745,innerheight=427");
nw.focus();
diff --git a/www/manager6/button/ConsoleButton.js b/www/manager6/button/ConsoleButton.js
index d825e1fb..0451bf59 100644
--- a/www/manager6/button/ConsoleButton.js
+++ b/www/manager6/button/ConsoleButton.js
@@ -2,7 +2,9 @@ Ext.define('PVE.button.ConsoleButton', {
extend: 'Ext.button.Split',
alias: 'widget.pveConsoleButton',
- consoleType: 'shell', // one of 'shell', 'kvm', 'lxc', 'upgrade'
+ consoleType: 'shell', // one of 'shell', 'kvm', 'lxc', 'upgrade', 'cmd'
+
+ cmd: undefined,
consoleName: undefined,
@@ -38,7 +40,7 @@ Ext.define('PVE.button.ConsoleButton', {
xtermjs: me.enableXtermjs
};
PVE.Utils.openDefaultConsoleWindow(consoles, me.consoleType, me.vmid,
- me.nodename, me.consoleName);
+ me.nodename, me.consoleName, me.cmd);
},
menu: [
@@ -49,7 +51,7 @@ Ext.define('PVE.button.ConsoleButton', {
type: 'html5',
handler: function(button) {
var me = this.up('button');
- PVE.Utils.openConsoleWindow(button.type, me.consoleType, me.vmid, me.nodename, me.consoleName);
+ PVE.Utils.openConsoleWindow(button.type, me.consoleType, me.vmid, me.nodename, me.consoleName, me.cmd);
}
},
{
@@ -60,7 +62,7 @@ Ext.define('PVE.button.ConsoleButton', {
iconCls: 'pve-itype-icon-virt-viewer',
handler: function(button) {
var me = this.up('button');
- PVE.Utils.openConsoleWindow(button.type, me.consoleType, me.vmid, me.nodename, me.consoleName);
+ PVE.Utils.openConsoleWindow(button.type, me.consoleType, me.vmid, me.nodename, me.consoleName, me.cmd);
}
},
{
@@ -70,7 +72,7 @@ Ext.define('PVE.button.ConsoleButton', {
type: 'xtermjs',
handler: function(button) {
var me = this.up('button');
- PVE.Utils.openConsoleWindow(button.type, me.consoleType, me.vmid, me.nodename, me.consoleName);
+ PVE.Utils.openConsoleWindow(button.type, me.consoleType, me.vmid, me.nodename, me.consoleName, me.cmd);
}
}
],
--
2.11.0
More information about the pve-devel
mailing list