]>
Commit | Line | Data |
---|---|---|
5dcaa989 DM |
1 | Ext.define('PVE.button.ConsoleButton', { |
2 | extend: 'Ext.button.Split', | |
3 | alias: 'widget.pveConsoleButton', | |
4 | ||
8eccc68f TM |
5 | consoleType: 'shell', // one of 'shell', 'kvm', 'lxc', 'upgrade', 'cmd' |
6 | ||
7 | cmd: undefined, | |
5dcaa989 DM |
8 | |
9 | consoleName: undefined, | |
10 | ||
ea541321 EK |
11 | iconCls: 'fa fa-terminal', |
12 | ||
5dcaa989 | 13 | enableSpice: true, |
a71b4398 | 14 | enableXtermjs: true, |
5dcaa989 DM |
15 | |
16 | nodename: undefined, | |
17 | ||
18 | vmid: 0, | |
19 | ||
d345d7ad DC |
20 | text: gettext('Console'), |
21 | ||
8058410f | 22 | setEnableSpice: function(enable) { |
5dcaa989 DM |
23 | var me = this; |
24 | ||
25 | me.enableSpice = enable; | |
d345d7ad | 26 | me.down('#spicemenu').setDisabled(!enable); |
5dcaa989 DM |
27 | }, |
28 | ||
8058410f | 29 | setEnableXtermJS: function(enable) { |
a71b4398 DC |
30 | var me = this; |
31 | ||
32 | me.enableXtermjs = enable; | |
33 | me.down('#xtermjs').setDisabled(!enable); | |
34 | }, | |
35 | ||
d345d7ad DC |
36 | handler: function() { |
37 | var me = this; | |
3438c27e DC |
38 | var consoles = { |
39 | spice: me.enableSpice, | |
f6710aac | 40 | xtermjs: me.enableXtermjs, |
3438c27e DC |
41 | }; |
42 | PVE.Utils.openDefaultConsoleWindow(consoles, me.consoleType, me.vmid, | |
8eccc68f | 43 | me.nodename, me.consoleName, me.cmd); |
d345d7ad | 44 | }, |
5dcaa989 | 45 | |
d345d7ad DC |
46 | menu: [ |
47 | { | |
8058410f | 48 | xtype: 'menuitem', |
d345d7ad DC |
49 | text: 'noVNC', |
50 | iconCls: 'pve-itype-icon-novnc', | |
51 | type: 'html5', | |
52 | handler: function(button) { | |
53 | var me = this.up('button'); | |
8eccc68f | 54 | PVE.Utils.openConsoleWindow(button.type, me.consoleType, me.vmid, me.nodename, me.consoleName, me.cmd); |
f6710aac | 55 | }, |
d345d7ad DC |
56 | }, |
57 | { | |
58 | xterm: 'menuitem', | |
59 | itemId: 'spicemenu', | |
5dcaa989 | 60 | text: 'SPICE', |
d345d7ad | 61 | type: 'vv', |
5dcaa989 | 62 | iconCls: 'pve-itype-icon-virt-viewer', |
d345d7ad DC |
63 | handler: function(button) { |
64 | var me = this.up('button'); | |
8eccc68f | 65 | PVE.Utils.openConsoleWindow(button.type, me.consoleType, me.vmid, me.nodename, me.consoleName, me.cmd); |
f6710aac | 66 | }, |
d345d7ad DC |
67 | }, |
68 | { | |
69 | text: 'xterm.js', | |
70 | itemId: 'xtermjs', | |
d0f7ae46 | 71 | iconCls: 'pve-itype-icon-xtermjs', |
d345d7ad DC |
72 | type: 'xtermjs', |
73 | handler: function(button) { | |
74 | var me = this.up('button'); | |
8eccc68f | 75 | PVE.Utils.openConsoleWindow(button.type, me.consoleType, me.vmid, me.nodename, me.consoleName, me.cmd); |
f6710aac TL |
76 | }, |
77 | }, | |
d345d7ad | 78 | ], |
5dcaa989 | 79 | |
d345d7ad DC |
80 | initComponent: function() { |
81 | var me = this; | |
5dcaa989 | 82 | |
d345d7ad DC |
83 | if (!me.nodename) { |
84 | throw "no node name specified"; | |
26c5f8d7 | 85 | } |
5dcaa989 | 86 | |
5dcaa989 | 87 | me.callParent(); |
f6710aac | 88 | }, |
5dcaa989 | 89 | }); |