]>
Commit | Line | Data |
---|---|---|
5f8b5df0 DM |
1 | Ext.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, | |
26fcae33 | 50 | resize: sp.get('novnc-scaling'), |
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 |