]> git.proxmox.com Git - pve-manager.git/blobdiff - www/manager6/Utils.js
added new parameter to pass a command to the newly opened terminal
[pve-manager.git] / www / manager6 / Utils.js
index c594297eec01638e69e4666bce96f37534a48075..b9fa25b72784200529eaf2da651712b1e826bff4 100644 (file)
@@ -443,7 +443,8 @@ Ext.define('PVE.Utils', { utilities: {
        'backup': gettext('VZDump backup file'),
        'vztmpl': gettext('Container template'),
        'iso': gettext('ISO image'),
-       'rootdir': gettext('Container')
+       'rootdir': gettext('Container'),
+       'snippets': gettext('Snippets')
     },
 
     storageSchema: {
@@ -808,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')) {
@@ -825,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() };
@@ -844,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";
@@ -870,17 +875,20 @@ 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();
+       if (nw) {
+           nw.focus();
+       }
     },
 
     openSpiceViewer: function(url, params){
@@ -994,6 +1002,7 @@ Ext.define('PVE.Utils', { utilities: {
        }
 
        menu.showAt(event.getXY());
+       return menu;
     },
 
     // helper for deleting field which are set to there default values