Merge pull request #547 from pigshell/hashargs
Add hash fragment as an optional method to supply config variables. Closes #544
This commit is contained in:
commit
28646d978f
|
@ -97,7 +97,7 @@ var UI;
|
||||||
UI.initSetting('path', 'websockify');
|
UI.initSetting('path', 'websockify');
|
||||||
UI.initSetting('repeaterID', '');
|
UI.initSetting('repeaterID', '');
|
||||||
|
|
||||||
var autoconnect = WebUtil.getQueryVar('autoconnect', false);
|
var autoconnect = WebUtil.getConfigVar('autoconnect', false);
|
||||||
if (autoconnect === 'true' || autoconnect == '1') {
|
if (autoconnect === 'true' || autoconnect == '1') {
|
||||||
autoconnect = true;
|
autoconnect = true;
|
||||||
UI.connect();
|
UI.connect();
|
||||||
|
@ -355,7 +355,7 @@ var UI;
|
||||||
// Initial page load read/initialization of settings
|
// Initial page load read/initialization of settings
|
||||||
initSetting: function(name, defVal) {
|
initSetting: function(name, defVal) {
|
||||||
// Check Query string followed by cookie
|
// Check Query string followed by cookie
|
||||||
var val = WebUtil.getQueryVar(name);
|
var val = WebUtil.getConfigVar(name);
|
||||||
if (val === null) {
|
if (val === null) {
|
||||||
val = WebUtil.readSetting(name, defVal);
|
val = WebUtil.readSetting(name, defVal);
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,6 +90,29 @@ WebUtil.getQueryVar = function (name, defVal) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Read a hash fragment variable
|
||||||
|
WebUtil.getHashVar = function (name, defVal) {
|
||||||
|
"use strict";
|
||||||
|
var re = new RegExp('.*[&#]' + name + '=([^&]*)'),
|
||||||
|
match = document.location.hash.match(re);
|
||||||
|
if (typeof defVal === 'undefined') { defVal = null; }
|
||||||
|
if (match) {
|
||||||
|
return decodeURIComponent(match[1]);
|
||||||
|
} else {
|
||||||
|
return defVal;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Read a variable from the fragment or the query string
|
||||||
|
// Fragment takes precedence
|
||||||
|
WebUtil.getConfigVar = function (name, defVal) {
|
||||||
|
"use strict";
|
||||||
|
var val = WebUtil.getHashVar(name);
|
||||||
|
if (val === null) {
|
||||||
|
val = WebUtil.getQueryVar(name, defVal);
|
||||||
|
}
|
||||||
|
return val;
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Cookie handling. Dervied from: http://www.quirksmode.org/js/cookies.html
|
* Cookie handling. Dervied from: http://www.quirksmode.org/js/cookies.html
|
||||||
|
|
2
vnc.html
2
vnc.html
|
@ -11,6 +11,8 @@
|
||||||
|
|
||||||
Connect parameters are provided in query string:
|
Connect parameters are provided in query string:
|
||||||
http://example.com/?host=HOST&port=PORT&encrypt=1&true_color=1
|
http://example.com/?host=HOST&port=PORT&encrypt=1&true_color=1
|
||||||
|
or the fragment:
|
||||||
|
http://example.com/#host=HOST&port=PORT&encrypt=1&true_color=1
|
||||||
-->
|
-->
|
||||||
<title>noVNC</title>
|
<title>noVNC</title>
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
|
|
||||||
Connect parameters are provided in query string:
|
Connect parameters are provided in query string:
|
||||||
http://example.com/?host=HOST&port=PORT&encrypt=1&true_color=1
|
http://example.com/?host=HOST&port=PORT&encrypt=1&true_color=1
|
||||||
|
or the fragment:
|
||||||
|
http://example.com/#host=HOST&port=PORT&encrypt=1&true_color=1
|
||||||
-->
|
-->
|
||||||
<title>noVNC</title>
|
<title>noVNC</title>
|
||||||
|
|
||||||
|
@ -84,7 +86,7 @@
|
||||||
|
|
||||||
|
|
||||||
function UIresize() {
|
function UIresize() {
|
||||||
if (WebUtil.getQueryVar('resize', false)) {
|
if (WebUtil.getConfigVar('resize', false)) {
|
||||||
var innerW = window.innerWidth;
|
var innerW = window.innerWidth;
|
||||||
var innerH = window.innerHeight;
|
var innerH = window.innerHeight;
|
||||||
var controlbarH = $D('noVNC_status_bar').offsetHeight;
|
var controlbarH = $D('noVNC_status_bar').offsetHeight;
|
||||||
|
@ -183,11 +185,11 @@
|
||||||
$D('xvpRebootButton').onclick = xvpReboot;
|
$D('xvpRebootButton').onclick = xvpReboot;
|
||||||
$D('xvpResetButton').onclick = xvpReset;
|
$D('xvpResetButton').onclick = xvpReset;
|
||||||
|
|
||||||
WebUtil.init_logging(WebUtil.getQueryVar('logging', 'warn'));
|
WebUtil.init_logging(WebUtil.getConfigVar('logging', 'warn'));
|
||||||
document.title = unescape(WebUtil.getQueryVar('title', 'noVNC'));
|
document.title = unescape(WebUtil.getConfigVar('title', 'noVNC'));
|
||||||
// By default, use the host and port of server that served this file
|
// By default, use the host and port of server that served this file
|
||||||
host = WebUtil.getQueryVar('host', window.location.hostname);
|
host = WebUtil.getConfigVar('host', window.location.hostname);
|
||||||
port = WebUtil.getQueryVar('port', window.location.port);
|
port = WebUtil.getConfigVar('port', window.location.port);
|
||||||
|
|
||||||
// if port == 80 (or 443) then it won't be present and should be
|
// if port == 80 (or 443) then it won't be present and should be
|
||||||
// set manually
|
// set manually
|
||||||
|
@ -202,13 +204,13 @@
|
||||||
|
|
||||||
// If a token variable is passed in, set the parameter in a cookie.
|
// If a token variable is passed in, set the parameter in a cookie.
|
||||||
// This is used by nova-novncproxy.
|
// This is used by nova-novncproxy.
|
||||||
token = WebUtil.getQueryVar('token', null);
|
token = WebUtil.getConfigVar('token', null);
|
||||||
if (token) {
|
if (token) {
|
||||||
WebUtil.createCookie('token', token, 1)
|
WebUtil.createCookie('token', token, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
password = WebUtil.getQueryVar('password', '');
|
password = WebUtil.getConfigVar('password', '');
|
||||||
path = WebUtil.getQueryVar('path', 'websockify');
|
path = WebUtil.getConfigVar('path', 'websockify');
|
||||||
|
|
||||||
if ((!host) || (!port)) {
|
if ((!host) || (!port)) {
|
||||||
updateState(null, 'fatal', null, 'Must specify host and port in URL');
|
updateState(null, 'fatal', null, 'Must specify host and port in URL');
|
||||||
|
@ -217,13 +219,13 @@
|
||||||
|
|
||||||
try {
|
try {
|
||||||
rfb = new RFB({'target': $D('noVNC_canvas'),
|
rfb = new RFB({'target': $D('noVNC_canvas'),
|
||||||
'encrypt': WebUtil.getQueryVar('encrypt',
|
'encrypt': WebUtil.getConfigVar('encrypt',
|
||||||
(window.location.protocol === "https:")),
|
(window.location.protocol === "https:")),
|
||||||
'repeaterID': WebUtil.getQueryVar('repeaterID', ''),
|
'repeaterID': WebUtil.getConfigVar('repeaterID', ''),
|
||||||
'true_color': WebUtil.getQueryVar('true_color', true),
|
'true_color': WebUtil.getConfigVar('true_color', true),
|
||||||
'local_cursor': WebUtil.getQueryVar('cursor', true),
|
'local_cursor': WebUtil.getConfigVar('cursor', true),
|
||||||
'shared': WebUtil.getQueryVar('shared', true),
|
'shared': WebUtil.getConfigVar('shared', true),
|
||||||
'view_only': WebUtil.getQueryVar('view_only', false),
|
'view_only': WebUtil.getConfigVar('view_only', false),
|
||||||
'onUpdateState': updateState,
|
'onUpdateState': updateState,
|
||||||
'onXvpInit': xvpInit,
|
'onXvpInit': xvpInit,
|
||||||
'onPasswordRequired': passwordRequired,
|
'onPasswordRequired': passwordRequired,
|
||||||
|
|
Loading…
Reference in New Issue