added new parameter to pass a command to the newly opened terminal

Ext.urlEncode is deprecated, use Ext.Object.toQueryString instead

Signed-off-by: Tim Marx <t.marx@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
Tim Marx 2019-03-06 12:29:38 +01:00 committed by Thomas Lamprecht
parent 43f1b31f22
commit 798f377656
2 changed files with 20 additions and 13 deletions

View File

@ -809,12 +809,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')) {
@ -826,9 +826,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() };
@ -845,6 +845,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";
@ -871,14 +875,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");
if (nw) {

View File

@ -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);
}
}
],