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