diff options
Diffstat (limited to 'web-static/socket.html')
-rw-r--r-- | web-static/socket.html | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/web-static/socket.html b/web-static/socket.html new file mode 100644 index 0000000..fda00e9 --- /dev/null +++ b/web-static/socket.html @@ -0,0 +1,159 @@ +<!DOCTYPE HTML> +<html> + <head> + <title>rhimportd Websocket Testclient</title> + <meta charset="utf-8"> + <style type="text/css"> + body { + background-color: #555; + } + + div.data { + background-color: white; + border: 1px solid; + padding: 1em; + font-family: monospace; + margin-top: 1em; + margin-bottom: 1em; + } + + td { + text-align: right; + } + </style> + <script src="jquery.min.js"></script> + <script type="text/javascript"> + function SessionList(req) { + this.req = req + this.sock = new WebSocket("ws://localhost:4080/public/socket"); + this.sock_onmessage = function (event) { + $('#listmsg').text(event.data); + this.sock.close(); + } + this.sock.onmessage = this.sock_onmessage.bind(this); + + this.sock_onopen = function() { + this.sock.send(JSON.stringify(this.req)); + } + this.sock.onopen = this.sock_onopen.bind(this); + } + + var sl; + + function list() { + req = { COMMAND: "list", + LOGIN_NAME: $('#username').val(), + PASSWORD: $('#token').val()}; + sl = new SessionList(req); + } + + + function Session(req) { + this.req = req + $('#rawmsg').text(""); + this.sock = new WebSocket("ws://localhost:4080/public/socket"); + this.sock_onmessage = function (event) { + $('#rawmsg').append(event.data + "\n"); + msg = $.parseJSON(event.data) + switch (msg.TYPE) { + case "ack": + $('#sessionid').val(msg.ID); + buttonsRunning(); + break; + case "done": + case "error": + this.sock.close(); + init(); + break; + } + } + this.sock.onmessage = this.sock_onmessage.bind(this); + + this.sock_onopen = function() { + this.sock.send(JSON.stringify(this.req)); + } + this.sock.onopen = this.sock_onopen.bind(this); + + this.cancel = function() { + this.sock.send(JSON.stringify({COMMAND: "cancel"})); + } + } + + var s; + + function run() { + req = { COMMAND: "new", + TIMEOUT: 200, + REFERENCE_ID: $('#refid').val(), + LOGIN_NAME: $('#username').val(), + PASSWORD: $('#token').val(), + SHOW_ID: 10002, + CLEAR_SHOW_CARTS: true, + SOURCE_URI: $('#source').val() }; + s = new Session(req); + } + + function reconnect() { + req = { COMMAND: "reconnect", + LOGIN_NAME: $('#username').val(), + ID: $('#sessionid').val() }; + s = new Session(req); + } + + function cancel() { + s.cancel(); + } + + function detach() { + s.sock.close(); + buttonsIdle(); + } + + function buttonsIdle() { + $('#buttonrun').removeAttr('disabled') + $('#buttonreconnect').removeAttr('disabled') + $('#buttondetach').attr('disabled','disabled') + $('#buttoncancel').attr('disabled','disabled') + } + + function buttonsRunning() { + $('#buttonrun').attr('disabled','disabled') + $('#buttonreconnect').attr('disabled','disabled') + $('#buttondetach').removeAttr('disabled') + $('#buttoncancel').removeAttr('disabled') + } + + function init() { + $('#sessionid').val(""); + buttonsIdle(); + } +</script> + </head> + <body onload="init()"> + + <h1>rhimportd Websocket Testclient</h1> + + <div> + <table> + <tr><td>Username</td><td><input id="username" type="text" size="20" value="heslinki" /></td></tr> + <tr><td>Token</td><td><input id="token" type="text" size="20" /></td></tr> + </table> + </div> + + <div> + <button id="buttonlist" onclick="list()">list</button> + <div id="listmsg" class="data"></div> + </div> + + <div> + <input id="source" type="text" size="30" value="fake://10000"> + <input id="refid" type="text" size="15" value="test-reference-id"> + <button id="buttonrun" onclick="run()">start</button> + <button id="buttondetach" onclick="detach()">detach</button> + <input id="sessionid" type="text" size="45"> + <button id="buttonreconnect" onclick="reconnect()">reconnect</button> + <button id="buttoncancel" onclick="cancel()">cancel</button> + <div id="rawmsg" class="data"></div> + </div> + </body> +</html> |