From 00ea8db6876b1183dccd470ec9f4b3c8ea19f09f Mon Sep 17 00:00:00 2001 From: mDuo13 Date: Tue, 9 Jun 2015 16:31:50 -0700 Subject: [PATCH] [FEATURE] websocket tool - url parameter for connecting to other servers --- js/apitool-websocket.js | 54 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/js/apitool-websocket.js b/js/apitool-websocket.js index 46ae633426..f33efdb7ac 100644 --- a/js/apitool-websocket.js +++ b/js/apitool-websocket.js @@ -1,3 +1,15 @@ +var urlParams; +(window.onpopstate = function () { + var match, + pl = /\+/g, // Regex for replacing addition symbol with a space + search = /([^&=]+)=?([^&]*)/g, + decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); }, + query = window.location.search.substring(1); + + urlParams = {}; + while (match = search.exec(query)) + urlParams[decode(match[1])] = decode(match[2]); +})(); ;(function() { @@ -16,6 +28,9 @@ var status = $(command_wrapper).find('#status'); var info = $(command_wrapper).find('#info'); var spinner = $(".loader"); + + var BASE_HOST_DEFAULT = 's2.ripple.com'; + var BASE_PORT_DEFAULT = 443; var remote = new ripple.Remote({ trusted: true, @@ -23,12 +38,16 @@ local_fee: false, servers: [ { - host: 's2.ripple.com', - port: 443, + host: BASE_HOST_DEFAULT, + port: BASE_PORT_DEFAULT, secure: true } ] }); + + function new_remote(options) { + remote = new ripple.Remote(options); + } function set_online_state(state) { var state = state.toLowerCase(); @@ -648,6 +667,37 @@ $(function() { set_online_state('connecting'); + + if (urlParams["base_url"]) { + base_url = urlParams["base_url"].split(":"); + if (base_url.length == 2) { + base_host = base_url[0]; + base_port = base_url[1]; + } else { + base_host = base_url[0]; + base_port = BASE_PORT_DEFAULT; + } + + if (urlParams["use_wss"] + && urlParams["use_wss"].toLowerCase() === "false") { + use_wss = false; + } else { + use_wss = true; + } + + new_remote({ + trusted: true, + local_signing: true, + local_fee: false, + servers: [ + { + host: base_host, + port: base_port, + secure: use_wss + } + ] + }); + } remote.connect(init);