summaryrefslogtreecommitdiffstats
path: root/webclients/novnc/vnc_auto.html
diff options
context:
space:
mode:
authorChristian Beier <dontmind@freeshell.org>2014-10-02 18:06:18 +0200
committerChristian Beier <dontmind@freeshell.org>2014-10-02 18:06:18 +0200
commit465a5b0bd55fe7153700b3ce1b9d33697d794904 (patch)
tree1b4733471d40d39f4d36ab8448c122f613f620a3 /webclients/novnc/vnc_auto.html
parentad7a054e8c7dd95aec5685fb99a7b1e860d08397 (diff)
downloadlibvncserver-465a5b0bd55fe7153700b3ce1b9d33697d794904.zip
libvncserver-465a5b0bd55fe7153700b3ce1b9d33697d794904.tar.gz
Update noVNC HTML5 client to latest version from https://github.com/kanaka/noVNC.
Diffstat (limited to 'webclients/novnc/vnc_auto.html')
-rw-r--r--webclients/novnc/vnc_auto.html121
1 files changed, 100 insertions, 21 deletions
diff --git a/webclients/novnc/vnc_auto.html b/webclients/novnc/vnc_auto.html
index 2b60d77..ff376fe 100644
--- a/webclients/novnc/vnc_auto.html
+++ b/webclients/novnc/vnc_auto.html
@@ -1,33 +1,66 @@
<!DOCTYPE html>
<html>
- <!--
+<head>
+
+ <!--
noVNC example: simple example using default UI
Copyright (C) 2012 Joel Martin
- noVNC is licensed under the LGPL-3 (see LICENSE.txt)
+ Copyright (C) 2013 Samuel Mannehed for Cendio AB
+ noVNC is licensed under the MPL 2.0 (see LICENSE.txt)
This file is licensed under the 2-Clause BSD license (see LICENSE.txt).
Connect parameters are provided in query string:
http://example.com/?host=HOST&port=PORT&encrypt=1&true_color=1
-->
- <head>
- <title>noVNC</title>
- <meta http-equiv="X-UA-Compatible" content="chrome=1">
- <link rel="stylesheet" href="include/base.css" title="plain">
- <!--
- <script type='text/javascript'
- src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>
- -->
- <script src="include/vnc.js"></script>
- </head>
-
- <body style="margin: 0px;">
- <div id="noVNC_screen">
+ <title>noVNC</title>
+
+ <meta charset="utf-8">
+
+ <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
+ Remove this if you use the .htaccess -->
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+
+ <!-- Apple iOS Safari settings -->
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+ <meta name="apple-mobile-web-app-capable" content="yes" />
+ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
+ <!-- App Start Icon -->
+ <link rel="apple-touch-startup-image" href="images/screen_320x460.png" />
+ <!-- For iOS devices set the icon to use if user bookmarks app on their homescreen -->
+ <link rel="apple-touch-icon" href="images/screen_57x57.png">
+ <!--
+ <link rel="apple-touch-icon-precomposed" href="images/screen_57x57.png" />
+ -->
+
+
+ <!-- Stylesheets -->
+ <link rel="stylesheet" href="include/base.css" title="plain">
+
+ <!--
+ <script type='text/javascript'
+ src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>
+ -->
+ <script src="include/util.js"></script>
+</head>
+
+<body style="margin: 0px;">
+ <div id="noVNC_screen">
<div id="noVNC_status_bar" class="noVNC_status_bar" style="margin-top: 0px;">
<table border=0 width="100%"><tr>
- <td><div id="noVNC_status">Loading</div></td>
+ <td><div id="noVNC_status" style="position: relative; height: auto;">
+ Loading
+ </div></td>
<td width="1%"><div id="noVNC_buttons">
<input type=button value="Send CtrlAltDel"
id="sendCtrlAltDelButton">
+ <span id="noVNC_xvp_buttons">
+ <input type=button value="Shutdown"
+ id="xvpShutdownButton">
+ <input type=button value="Reboot"
+ id="xvpRebootButton">
+ <input type=button value="Reset"
+ id="xvpResetButton">
+ </span>
</div></td>
</tr></table>
</div>
@@ -41,6 +74,11 @@
/*global window, $, Util, RFB, */
"use strict";
+ // Load supporting scripts
+ Util.load_scripts(["webutil.js", "base64.js", "websock.js", "des.js",
+ "keysymdef.js", "keyboard.js", "input.js", "display.js",
+ "jsunzip.js", "rfb.js"]);
+
var rfb;
function passwordRequired(rfb) {
@@ -61,6 +99,18 @@
rfb.sendCtrlAltDel();
return false;
}
+ function xvpShutdown() {
+ rfb.xvpShutdown();
+ return false;
+ }
+ function xvpReboot() {
+ rfb.xvpReboot();
+ return false;
+ }
+ function xvpReset() {
+ rfb.xvpReset();
+ return false;
+ }
function updateState(rfb, state, oldstate, msg) {
var s, sb, cad, level;
s = $D('noVNC_status');
@@ -75,8 +125,12 @@
default: level = "warn"; break;
}
- if (state === "normal") { cad.disabled = false; }
- else { cad.disabled = true; }
+ if (state === "normal") {
+ cad.disabled = false;
+ } else {
+ cad.disabled = true;
+ xvpInit(0);
+ }
if (typeof(msg) !== 'undefined') {
sb.setAttribute("class", "noVNC_status_" + level);
@@ -84,17 +138,42 @@
}
}
- window.onload = function () {
+ function xvpInit(ver) {
+ var xvpbuttons;
+ xvpbuttons = $D('noVNC_xvp_buttons');
+ if (ver >= 1) {
+ xvpbuttons.style.display = 'inline';
+ } else {
+ xvpbuttons.style.display = 'none';
+ }
+ }
+
+ window.onscriptsload = function () {
var host, port, password, path, token;
$D('sendCtrlAltDelButton').style.display = "inline";
$D('sendCtrlAltDelButton').onclick = sendCtrlAltDel;
+ $D('xvpShutdownButton').onclick = xvpShutdown;
+ $D('xvpRebootButton').onclick = xvpReboot;
+ $D('xvpResetButton').onclick = xvpReset;
+ WebUtil.init_logging(WebUtil.getQueryVar('logging', 'warn'));
document.title = unescape(WebUtil.getQueryVar('title', 'noVNC'));
// By default, use the host and port of server that served this file
host = WebUtil.getQueryVar('host', window.location.hostname);
port = WebUtil.getQueryVar('port', window.location.port);
+ // if port == 80 (or 443) then it won't be present and should be
+ // set manually
+ if (!port) {
+ if (window.location.protocol.substring(0,5) == 'https') {
+ port = 443;
+ }
+ else if (window.location.protocol.substring(0,4) == 'http') {
+ port = 80;
+ }
+ }
+
// If a token variable is passed in, set the parameter in a cookie.
// This is used by nova-novncproxy.
token = WebUtil.getQueryVar('token', null);
@@ -119,7 +198,8 @@
'local_cursor': WebUtil.getQueryVar('cursor', true),
'shared': WebUtil.getQueryVar('shared', true),
'view_only': WebUtil.getQueryVar('view_only', false),
- 'updateState': updateState,
+ 'onUpdateState': updateState,
+ 'onXvpInit': xvpInit,
'onPasswordRequired': passwordRequired});
rfb.connect(host, port, password, path);
};
@@ -127,4 +207,3 @@
</body>
</html>
-
OpenPOWER on IntegriCloud