documentation: evaluate sample page code in a closure
[contrib/cloudeebus.git] / doc / sample / cloudeebus.html
1 <!DOCTYPE html>
2 <html>
3     <head>
4         <script src="../../lib/autobahn.min.js"></script>
5         <script src="../../cloudeebus/cloudeebus.js"></script>
6         <script type="text/javascript">
7                 var manifest = {
8                         name: "cloudeebus",
9                         key: "secret",
10                         permissions: [
11                                 "com.intel.media-service-upnp",
12                                 "com.intel.renderer-service-upnp",
13                                 "org.freedesktop.DBus",
14                                 "org.freedesktop.DisplayManager",
15                                 "org.freedesktop.FileManager1",
16                                 "org.freedesktop.ModemManager",
17                                 "org.freedesktop.NetworkManager",
18                                 "org.freedesktop.Notifications",
19                                 "org.freedesktop.Tracker1",
20                                 "org.gnome.Nautilus",
21                                 "org.gnome.Rygel1",
22                                 "org.gnome.ScreenSaver",
23                                 "org.neard",
24                                 "org.ofono"
25                         ]
26                 };
27                 function evalScript() {
28                         eval(
29                                 "var lambda = function() {" +
30                                         document.getElementById('script').value +
31                                 "};" + 
32                                 "lambda();"
33                         );
34                 }
35         </script>
36     </head>
37    <body>
38         <center><h1>cloudeebus</h1></center>
39         <br>
40                 <textarea cols="80" rows=24 id="script">
41 cloudeebus.log = function(msg) {
42   document.getElementById("log").innerHTML += msg + "\n";
43 }
44
45 var proxy, interval;
46
47 function connectSuccess() {
48   var bus = cloudeebus.SessionBus();
49   handler = bus.getObject("org.gnome.ScreenSaver", "/org/gnome/ScreenSaver");
50   handler.connectToSignal("org.gnome.ScreenSaver", "ActiveChanged", successCB, errorCB);
51   proxy = bus.getObject("org.gnome.ScreenSaver", "/", lock, errorCB);
52 }
53
54 function unLock() {
55   proxy.SetActive(false, successCB, errorCB);
56   clearInterval(interval);
57 }
58
59 function lock() {
60   proxy.SetActive(true, lockOk, errorCB);
61 }
62
63 function lockOk(res) {
64   interval = setInterval(unLock,3000);
65 }
66
67 function successCB(res) {
68   cloudeebus.log("got result: " + res + "\n");
69 }
70
71 function errorCB(error) {
72   cloudeebus.log("error: " + error + "\n");
73 }
74
75 cloudeebus.connect("ws://localhost:9000", manifest, connectSuccess, errorCB);
76 </textarea>
77                 <br>
78                 <input type="button" value="run script" onclick="evalScript()"/>
79                 <input type="button" value="clear log" onclick="document.getElementById('log').innerHTML='';"/>
80                 <br>
81                 <pre id="log" style="height: 20em; overflow-y: scroll; background-color: #faa;"></pre>
82    </body>
83 </html>