瀏覽代碼

Add WebSocket URL path to UI settings.

Joel Martin 14 年之前
父節點
當前提交
6209639f2c
共有 4 個文件被更改,包括 15 次插入6 次删除
  1. 3 0
      include/base.css
  2. 4 4
      include/rfb.js
  3. 7 2
      include/ui.js
  4. 1 0
      vnc.html

+ 3 - 0
include/base.css

@@ -36,6 +36,9 @@ html {
 #noVNC_connectTimeout {
   width: 30px;
 }
+#noVNC_path {
+  width: 100px;
+}
 #noVNC_connect_button {
   width: 110px;
   float:right;

+ 4 - 4
include/rfb.js

@@ -35,7 +35,7 @@ var that           = {},  // Public API methods
     rfb_host       = '',
     rfb_port       = 5900,
     rfb_password   = '',
-    rfb_uri        = '',
+    rfb_path       = '',
 
     rfb_state      = 'disconnected',
     rfb_version    = 0,
@@ -273,7 +273,7 @@ function connect() {
     } else {
         uri = "ws://";
     }
-    uri += rfb_host + ":" + rfb_port + "/" + rfb_uri;
+    uri += rfb_host + ":" + rfb_port + "/" + rfb_path;
     Util.Info("connecting to " + uri);
     ws.open(uri);
 
@@ -1526,13 +1526,13 @@ clientCutText = function(text) {
 // Public API interface functions
 //
 
-that.connect = function(host, port, password, uri) {
+that.connect = function(host, port, password, path) {
     //Util.Debug(">> connect");
 
     rfb_host       = host;
     rfb_port       = port;
     rfb_password   = (password !== undefined)   ? password : "";
-    rfb_uri        = (uri !== undefined) ? uri : "";
+    rfb_path       = (path !== undefined) ? path : "";
 
     if ((!rfb_host) || (!rfb_port)) {
         return fail("Must set host and port");

+ 7 - 2
include/ui.js

@@ -52,6 +52,7 @@ load: function() {
     UI.initSetting('cursor', false);
     UI.initSetting('shared', true); 
     UI.initSetting('connectTimeout', 2);
+    UI.initSetting('path', ''); 
 
     UI.rfb = RFB({'target': $D('noVNC_canvas'),
                   'onUpdateState': UI.updateState,
@@ -246,6 +247,7 @@ toggleSettingsPanel: function() {
         UI.updateSetting('clip');
         UI.updateSetting('shared');
         UI.updateSetting('connectTimeout');
+        UI.updateSetting('path');
         UI.updateSetting('stylesheet');
         UI.updateSetting('logging');
 
@@ -283,6 +285,7 @@ settingsApply: function() {
     UI.saveSetting('clip');
     UI.saveSetting('shared');
     UI.saveSetting('connectTimeout');
+    UI.saveSetting('path');
     UI.saveSetting('stylesheet');
     UI.saveSetting('logging');
 
@@ -394,6 +397,7 @@ updateVisualState: function() {
     }
     $D('noVNC_shared').disabled = connected;
     $D('noVNC_connectTimeout').disabled = connected;
+    $D('noVNC_path').disabled = connected;
 
     if (connected) {
         UI.setViewClip();
@@ -435,7 +439,7 @@ clipReceive: function(rfb, text) {
 
 
 connect: function() {
-    var host, port, password;
+    var host, port, password, path;
 
     UI.closeSettingsMenu();
     UI.toggleConnectPanel();
@@ -443,6 +447,7 @@ connect: function() {
     host = $D('noVNC_host').value;
     port = $D('noVNC_port').value;
     password = $D('noVNC_password').value;
+    path = $D('noVNC_path').value;
     if ((!host) || (!port)) {
         throw("Must set host and port");
     }
@@ -453,7 +458,7 @@ connect: function() {
     UI.rfb.set_shared(UI.getSetting('shared'));
     UI.rfb.set_connectTimeout(UI.getSetting('connectTimeout'));
 
-    UI.rfb.connect(host, port, password);
+    UI.rfb.connect(host, port, password, path);
     //Close dialog.
     setTimeout(UI.setBarPosition, 100);
     $D('noVNC_logo').style.display = "none";

+ 1 - 0
vnc.html

@@ -122,6 +122,7 @@
                     <li><input id="noVNC_clip" type="checkbox"> Clip to window</li>
                     <li><input id="noVNC_shared" type="checkbox"> Shared Mode</li>
                     <li><input id="noVNC_connectTimeout" type="input"> Connect Timeout (s)</li>
+                    <li><input id="noVNC_path" type="input"> Path</li>
                     <hr>
                     <!-- Stylesheet selection dropdown -->
                     <li><label><strong>Style: </strong>