aboutsummaryrefslogtreecommitdiffstats
path: root/ll-auth-binding
diff options
context:
space:
mode:
authorLoïc Collignon <loic.collignon@iot.bzh>2017-07-31 11:27:20 +0200
committerLoïc Collignon <loic.collignon@iot.bzh>2017-07-31 11:27:20 +0200
commit55de83c544b3066ff883886c837df87d8291f298 (patch)
treec1e19023aad1ca8be205b5ae9b91838cda963c8a /ll-auth-binding
parent0de5dda373fc97aabbcab78f5c2abf02c7bd36d2 (diff)
added alternative UI.
Change-Id: Ic90ee4fdf051d3b467771f87a598605831bb53d6 Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
Diffstat (limited to 'll-auth-binding')
-rw-r--r--ll-auth-binding/htdocs/IdentityBinding2.js87
-rw-r--r--ll-auth-binding/htdocs/auth2.html19
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>