consoleName: undefined,
+ iconCls: 'fa fa-terminal',
+
enableSpice: true,
+ enableXtermjs: true,
nodename: undefined,
vmid: 0,
+ text: gettext('Console'),
+
setEnableSpice: function(enable){
var me = this;
me.enableSpice = enable;
- me.spiceMenu.setDisabled(!enable);
+ me.down('#spicemenu').setDisabled(!enable);
},
- initComponent: function() {
- var me = this;
+ setEnableXtermJS: function(enable){
+ var me = this;
- if (!me.nodename) {
- throw "no node name specified";
- }
+ me.enableXtermjs = enable;
+ me.down('#xtermjs').setDisabled(!enable);
+ },
- me.spiceMenu = Ext.create('Ext.menu.Item', {
- text: 'SPICE',
- iconCls: 'pve-itype-icon-virt-viewer',
- handler: function() {
- PVE.Utils.openConsoleWindow('vv', me.consoleType, me.vmid, me.nodename, me.consoleName);
- }
- });
+ handler: function() {
+ var me = this;
+ var consoles = {
+ spice: me.enableSpice,
+ xtermjs: me.enableXtermjs
+ };
+ PVE.Utils.openDefaultConsoleWindow(consoles, me.consoleType, me.vmid,
+ me.nodename, me.consoleName);
+ },
- var noVncMenu = Ext.create('Ext.menu.Item', {
+ menu: [
+ {
+ xtype:'menuitem',
text: 'noVNC',
iconCls: 'pve-itype-icon-novnc',
- handler: function() {
- PVE.Utils.openConsoleWindow('html5', me.consoleType, me.vmid, me.nodename, me.consoleName);
+ type: 'html5',
+ handler: function(button) {
+ var me = this.up('button');
+ PVE.Utils.openConsoleWindow(button.type, me.consoleType, me.vmid, me.nodename, me.consoleName);
+ }
+ },
+ {
+ xterm: 'menuitem',
+ itemId: 'spicemenu',
+ text: 'SPICE',
+ type: 'vv',
+ iconCls: 'pve-itype-icon-virt-viewer',
+ handler: function(button) {
+ var me = this.up('button');
+ PVE.Utils.openConsoleWindow(button.type, me.consoleType, me.vmid, me.nodename, me.consoleName);
+ }
+ },
+ {
+ text: 'xterm.js',
+ itemId: 'xtermjs',
+ iconCls: 'pve-itype-icon-xtermjs',
+ type: 'xtermjs',
+ handler: function(button) {
+ var me = this.up('button');
+ PVE.Utils.openConsoleWindow(button.type, me.consoleType, me.vmid, me.nodename, me.consoleName);
}
- });
-
- if (me.text === null) {
- me.text = gettext('Console');
}
+ ],
- Ext.apply(me, {
- handler: function() {
- PVE.Utils.openDefaultConsoleWindow(me.enableSpice, me.consoleType, me.vmid,
- me.nodename, me.consoleName);
- },
- menu: new Ext.menu.Menu({
- items: [ noVncMenu, me.spiceMenu ]
- })
- });
+ initComponent: function() {
+ var me = this;
+
+ if (!me.nodename) {
+ throw "no node name specified";
+ }
me.callParent();
}