mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
feature #3748: Add VNC libraries
This commit is contained in:
parent
9dafd0db16
commit
20740ad583
@ -48,7 +48,10 @@ require.config({
|
||||
'flot.tooltip': '../bower_components/flot.tooltip/js/jquery.flot.tooltip.min',
|
||||
|
||||
/* noUiSlider */
|
||||
'nouislider': '../vendor/4.0/nouislider/jquery.nouislider.min'
|
||||
'nouislider': '../vendor/4.0/nouislider/jquery.nouislider.min',
|
||||
|
||||
/* VNC */
|
||||
'vnc-util': '../bower_components/no-vnc/include/util'
|
||||
},
|
||||
shim: {
|
||||
/* jQuery */
|
||||
@ -152,6 +155,11 @@ require.config({
|
||||
'nouislider': {
|
||||
deps: ['jquery']
|
||||
},
|
||||
|
||||
/* VNC */
|
||||
'vnc-util': {
|
||||
exports: 'Util'
|
||||
},
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -99,7 +99,9 @@ define(function(require) {
|
||||
},
|
||||
|
||||
'autoRefresh' : _config['view']['autorefresh'],
|
||||
'tableOrder': _config['user_config']['table_order']
|
||||
'tableOrder': _config['user_config']['table_order'],
|
||||
'vncProxyPort': _config['system_config']['vnc_proxy_port'],
|
||||
'vncWSS': _config['user_config']['vnc_wss']
|
||||
}
|
||||
|
||||
return Config;
|
||||
|
95
src/sunstone/public/app/utils/vnc.js
Normal file
95
src/sunstone/public/app/utils/vnc.js
Normal file
@ -0,0 +1,95 @@
|
||||
define(function(require) {
|
||||
INCLUDE_URI = "bower_components/no-vnc/include/";
|
||||
require('vnc-util');
|
||||
var Config = require('sunstone-config');
|
||||
|
||||
var _lock = false;
|
||||
var _rfb;
|
||||
|
||||
Util.load_scripts(["webutil.js", "base64.js", "websock.js", "des.js",
|
||||
"keysymdef.js", "keyboard.js", "input.js", "display.js",
|
||||
"jsunzip.js", "rfb.js", "keysym.js"]);
|
||||
|
||||
return {
|
||||
'lockStatus': lockStatus,
|
||||
'lock': lock,
|
||||
'unlock': unlock,
|
||||
'vncCallback': vncCallback,
|
||||
'disconnect': disconnect,
|
||||
'sendCtrlAltDel': sendCtrlAltDel
|
||||
}
|
||||
|
||||
function lockStatus() {
|
||||
return _lock;
|
||||
}
|
||||
|
||||
function lock() {
|
||||
_lock = true;
|
||||
}
|
||||
|
||||
function unlock() {
|
||||
_lock = false;
|
||||
}
|
||||
|
||||
function vncCallback(response) {
|
||||
_rfb = new RFB({'target': $D('VNC_canvas'),
|
||||
'encrypt': Config.vncWSS == "yes",
|
||||
'true_color': true,
|
||||
'local_cursor': true,
|
||||
'shared': true,
|
||||
'onUpdateState': updateVNCState});
|
||||
|
||||
var proxy_host = window.location.hostname;
|
||||
var proxy_port = Config.vncProxyPort;
|
||||
var pw = response["password"];
|
||||
var token = response["token"];
|
||||
var vm_name = response["vm_name"];
|
||||
var path = '?token=' + token;
|
||||
|
||||
var url = "vnc?";
|
||||
url += "host=" + proxy_host;
|
||||
url += "&port=" + proxy_port;
|
||||
url += "&token=" + token;
|
||||
url += "&password=" + pw;
|
||||
url += "&encrypt=" + Config.vncWSS;
|
||||
url += "&title=" + vm_name;
|
||||
|
||||
$("#open_in_a_new_window").attr('href', url)
|
||||
_rfb.connect(proxy_host, proxy_port, pw, path);
|
||||
}
|
||||
|
||||
function disconnect() {
|
||||
if (_rfb) { _rfb.disconnect(); }
|
||||
}
|
||||
|
||||
function sendCtrlAltDel() {
|
||||
if (_rfb) { rfb.sendCtrlAltDel(); }
|
||||
}
|
||||
|
||||
//This is taken from noVNC examples
|
||||
function updateVNCState(rfb, state, oldstate, msg) {
|
||||
var s, sb, cad, klass;
|
||||
s = $D('VNC_status');
|
||||
sb = $D('VNC_status_bar');
|
||||
cad = $D('sendCtrlAltDelButton');
|
||||
switch (state) {
|
||||
case 'failed': level = "error"; break;
|
||||
case 'fatal': level = "error"; break;
|
||||
case 'normal': level = "normal"; break;
|
||||
case 'disconnected': level = "normal"; break;
|
||||
case 'loaded': level = "normal"; break;
|
||||
default: level = "warn"; break;
|
||||
}
|
||||
|
||||
if (state === "normal") {
|
||||
cad.disabled = false;
|
||||
} else {
|
||||
cad.disabled = true;
|
||||
}
|
||||
|
||||
if (typeof(msg) !== 'undefined') {
|
||||
sb.setAttribute("class", "noVNC_status_" + level);
|
||||
s.innerHTML = msg;
|
||||
}
|
||||
}
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user