diff options
author | Loïc Collignon <loic.collignon@iot.bzh> | 2017-07-31 11:27:20 +0200 |
---|---|---|
committer | Loïc Collignon <loic.collignon@iot.bzh> | 2017-07-31 11:27:20 +0200 |
commit | 55de83c544b3066ff883886c837df87d8291f298 (patch) | |
tree | c1e19023aad1ca8be205b5ae9b91838cda963c8a /ll-auth-binding/htdocs | |
parent | 0de5dda373fc97aabbcab78f5c2abf02c7bd36d2 (diff) |
added alternative UI.
Change-Id: Ic90ee4fdf051d3b467771f87a598605831bb53d6
Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
Diffstat (limited to 'll-auth-binding/htdocs')
-rw-r--r-- | ll-auth-binding/htdocs/IdentityBinding2.js | 87 | ||||
-rw-r--r-- | ll-auth-binding/htdocs/auth2.html | 19 |
2 files changed, 106 insertions, 0 deletions
diff --git a/ll-auth-binding/htdocs/IdentityBinding2.js b/ll-auth-binding/htdocs/IdentityBinding2.js new file mode 100644 index 0000000..26495ba --- /dev/null +++ b/ll-auth-binding/htdocs/IdentityBinding2.js @@ -0,0 +1,87 @@ + var afb = new AFB("api", "mysecret"); + var ws; + var evtidx=0; + + function getParameterByName(name, url) { + if (!url) { + url = window.location.href; + } + name = name.replace(/[\[\]]/g, "\\$&"); + var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), + results = regex.exec(url); + if (!results) return null; + if (!results[2]) return ''; + return decodeURIComponent(results[2].replace(/\+/g, " ")); + } + + // default soundcard is "PCH" + var devid=getParameterByName("devid"); + if (!devid) devid="hw:0"; + + var sndname=getParameterByName("sndname"); + if (!sndname) sndname="PCH"; + + var quiet=getParameterByName("quiet"); + if (!quiet) quiet="99"; + + function init() { + ws = new afb.ws(onopen, onabort); + } + + function onopen() { + document.getElementById("background").style.background = "lightgray"; + ws.onevent("*", gotevent); + } + + function onabort() { + document.getElementById("background").style.background = "IndianRed"; + } + + function replyok(obj) { + console.log("replyok:" + JSON.stringify(obj)); + document.getElementById("output").innerHTML = "OK: "+JSON.stringify(obj); + } + + function replyerr(obj) { + console.log("replyerr:" + JSON.stringify(obj)); + document.getElementById("output").innerHTML = "ERROR: "+JSON.stringify(obj); + } + + function gotevent(obj) { + console.log("gotevent:" + JSON.stringify(obj)); + //document.getElementById("outevt").innerHTML = (evtidx++) +": "+JSON.stringify(obj); + + document.getElementById("message").innerHTML = ""; + + if (obj.event == "ll-auth/login") { + document.getElementById("usertitle").innerHTML = "A valid user is logged in"; + document.getElementById("userid").innerHTML = obj.data.user; + document.getElementById("userdevice").innerHTML = obj.data.device; + document.getElementById("background").style.background = "lightgreen"; + } + + if (obj.event == "ll-auth/logout") { + document.getElementById("usertitle").innerHTML = "No user"; + document.getElementById("userid").innerHTML = ""; + document.getElementById("userdevice").innerHTML = ""; + document.getElementById("background").style.background = "lightgray"; + } + + if (obj.event == "ll-auth/failed") { + document.getElementById("message").innerHTML = obj.data.message; + } + } + + function send(message) { + var api = document.getElementById("api").value; + var verb = document.getElementById("verb").value; + document.getElementById("question").innerHTML = "subscribe: "+api+"/"+verb + " (" + JSON.stringify(message) +")"; + ws.call(api+"/"+verb, {data:message}).then(replyok, replyerr); + } + + + function callbinder(api, verb, query) { + console.log ("subscribe api="+api+" verb="+verb+" query=" +query); + document.getElementById("question").innerHTML = "apicall: " + api+"/"+verb +" ("+ JSON.stringify(query)+")"; + ws.call(api+"/"+verb, query).then(replyok, replyerr); + } diff --git a/ll-auth-binding/htdocs/auth2.html b/ll-auth-binding/htdocs/auth2.html new file mode 100644 index 0000000..01e5e4f --- /dev/null +++ b/ll-auth-binding/htdocs/auth2.html @@ -0,0 +1,19 @@ +<html> + <head> + <title>ll-auth-binding test</title> + <script type="text/javascript" src="AFB-websock.js"></script> + <script type="text/javascript" src="IdentityBinding2.js"></script> + </head> + + <body onload="init();" id="background"> + <!--<button onclick="init()">Refresh</button>--> + <div> + <h1 id="usertitle">No user</h1> + <ul> + <li>User Id : <span id="userid"></span></li> + <li>Device : <span id="userdevice"></span></li> + </ul> + </div> + <div id="message" style="color:red;"></div> + </body> +</html> |