]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/VNCConsole.js
lxc: add reboot button
[pve-manager.git] / www / manager6 / VNCConsole.js
CommitLineData
5f8b5df0
DM
1Ext.define('PVE.noVncConsole', {
2 extend: 'Ext.panel.Panel',
3 alias: 'widget.pveNoVncConsole',
4
5 nodename: undefined,
6
7 vmid: undefined,
8
b945c7c1
TM
9 cmd: undefined,
10
11 consoleType: undefined, // lxc, kvm, shell, cmd
c7218ab3
DC
12
13 layout: 'fit',
14
9f02743e
DC
15 xtermjs: false,
16
c7218ab3 17 border: false,
b135fd08 18
b945c7c1 19
5f8b5df0
DM
20 initComponent : function() {
21 var me = this;
22
23 if (!me.nodename) {
24 throw "no node name specified";
25 }
26
27 if (!me.consoleType) {
28 throw "no console type specified";
29 }
30
b945c7c1 31 if (!me.vmid && me.consoleType !== 'shell' && me.consoleType !== 'cmd') {
5f8b5df0
DM
32 throw "no VM ID specified";
33 }
b135fd08 34
5f8b5df0
DM
35 // always use same iframe, to avoid running several noVnc clients
36 // at same time (to avoid performance problems)
bc53e071 37 var box = Ext.create('Ext.ux.IFrame', { itemid : "vncconsole" });
5f8b5df0 38
9f02743e 39 var type = me.xtermjs ? 'xtermjs' : 'novnc';
5f8b5df0 40 Ext.apply(me, {
5f8b5df0
DM
41 items: box,
42 listeners: {
c7218ab3 43 activate: function() {
26fcae33 44 var sp = Ext.state.Manager.getProvider();
b945c7c1
TM
45 var queryDict = {
46 console: me.consoleType, // kvm, lxc, upgrade or shell
47 vmid: me.vmid,
48 node: me.nodename,
49 cmd: me.cmd,
635cc133 50 resize: sp.get('novnc-scaling', 'scale'),
b945c7c1
TM
51 };
52 queryDict[type] = 1;
53 PVE.Utils.cleanEmptyObjectKeys(queryDict);
54 var url = '/?' + Ext.Object.toQueryString(queryDict);
5f8b5df0
DM
55 box.load(url);
56 }
57 }
b135fd08 58 });
5f8b5df0
DM
59
60 me.callParent();
ff605c35
TL
61
62 me.on('afterrender', function() {
63 me.focus();
64 });
5f8b5df0
DM
65 }
66});
67