diff options
Diffstat (limited to 'webclients/novnc/vnc_auto.html')
-rw-r--r-- | webclients/novnc/vnc_auto.html | 121 |
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> - |