On 4/13/18 9:49 AM, Dominik Csapak wrote:
> if not available for a vm, we fallback to novnc like with spice
> 
> Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
> ---
>  www/manager6/Utils.js                | 40 
> ++++++++++++++++++++++++------------
>  www/manager6/button/ConsoleButton.js |  6 +++++-
>  www/manager6/qemu/CmdMenu.js         |  7 ++++++-
>  3 files changed, 38 insertions(+), 15 deletions(-)
> 
> diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js
> index af03958c..6163c2e6 100644
> --- a/www/manager6/Utils.js
> +++ b/www/manager6/Utils.js
> @@ -279,19 +279,23 @@ Ext.define('PVE.Utils', { utilities: {
>      },
>  
>      render_console_viewer: function(value) {
> -     if (!value || value === '__default__') {
> -         return Proxmox.Utils.defaultText + ' (HTML5)';
> -     } else if (value === 'vv') {
> -         return  'SPICE (remote-viewer)';
> -     } else if (value === 'html5') {
> -         return  'HTML5 (noVNC)';
> -     } else {
> -         return value;
> +     value = value || '__default__';
> +     switch (value) {
> +         case 'vv':
> +             return  'SPICE (remote-viewer)';
> +         case 'html5':
> +             return  'HTML5 (noVNC)';
> +         case 'xtermjs':
> +             return 'xterm.js';
> +         case '__default__':
> +             return Proxmox.Utils.defaultText + ' (HTML5)';
> +         default:
> +             return value;

maybe use an mapping here?

consoleMap = {
   vv: 'SPICE (remote-viewer)'
   ...
},

and a simple if (in map) return mapping; else return value;
you could then reuse this below...

>       }
>      },
>  
>      console_viewer_array: function() {
> -     return Ext.Array.map(['__default__','vv', 'html5'], function(v) {
> +     return Ext.Array.map(['__default__','vv', 'html5', 'xtermjs'], 
> function(v) {

... here, with Object.keys(consoleMap), for less duplication.
Could be done afterwards but as you already touch all this
here... :)

>           return [v, PVE.Utils.render_console_viewer(v)];
>       });
>      },
> @@ -723,8 +727,8 @@ Ext.define('PVE.Utils', { utilities: {
>              function(m, addr, offset, original) { return addr; });
>      },
>  
> -    openDefaultConsoleWindow: function(allowSpice, vmtype, vmid, nodename, 
> vmname) {
> -     var dv = PVE.Utils.defaultViewer(allowSpice);
> +    openDefaultConsoleWindow: function(consoles, vmtype, vmid, nodename, 
> vmname) {
> +     var dv = PVE.Utils.defaultViewer(consoles);
>       PVE.Utils.openConsoleWindow(dv, vmtype, vmid, nodename, vmname);
>      },
>  
> @@ -765,10 +769,20 @@ Ext.define('PVE.Utils', { utilities: {
>       }
>      },
>  
> -    defaultViewer: function(allowSpice) {
> +    defaultViewer: function(consoles) {
> +
> +     var allowSpice, allowXtermjs;
> +
> +     if (consoles === true) {
> +         allowSpice = true;
> +         allowXtermjs = true;
> +     } else if (typeof consoles === 'object') {
> +         allowSpice = consoles.spice;
> +         allowXtermjs = consoles.xtermjs;
> +     }
>       var vncdefault = 'html5';
>       var dv = PVE.VersionInfo.console || vncdefault;
> -     if (dv === 'vv' && !allowSpice) {
> +     if ((dv === 'vv' && !allowSpice) || (dv === 'xtermjs' && 
> !allowXtermjs)) {
>           dv = vncdefault;
>       }
>  
> diff --git a/www/manager6/button/ConsoleButton.js 
> b/www/manager6/button/ConsoleButton.js
> index 97bed170..d825e1fb 100644
> --- a/www/manager6/button/ConsoleButton.js
> +++ b/www/manager6/button/ConsoleButton.js
> @@ -33,7 +33,11 @@ Ext.define('PVE.button.ConsoleButton', {
>  
>      handler: function() {
>       var me = this;
> -     PVE.Utils.openDefaultConsoleWindow(me.enableSpice, me.consoleType, 
> me.vmid,
> +     var consoles = {
> +         spice: me.enableSpice,
> +         xtermjs: me.enableXtermjs
> +     };
> +     PVE.Utils.openDefaultConsoleWindow(consoles, me.consoleType, me.vmid,
>                                          me.nodename, me.consoleName);
>      },
>  
> diff --git a/www/manager6/qemu/CmdMenu.js b/www/manager6/qemu/CmdMenu.js
> index 00af7cbc..da6f556a 100644
> --- a/www/manager6/qemu/CmdMenu.js
> +++ b/www/manager6/qemu/CmdMenu.js
> @@ -169,7 +169,12 @@ Ext.define('PVE.qemu.CmdMenu', {
>                       },
>                       success: function(response, opts) {
>                           var allowSpice = response.result.data.spice;
> -                         PVE.Utils.openDefaultConsoleWindow(allowSpice, 
> 'kvm', vmid, nodename, vmname);
> +                         var allowXtermjs = response.result.data.serial;
> +                         var consoles = {
> +                             spice: allowSpice,
> +                             xtermjs: allowXtermjs
> +                         };
> +                         PVE.Utils.openDefaultConsoleWindow(consoles, 'kvm', 
> vmid, nodename, vmname);
>                       }
>                   });
>               }
> 


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to