Merge pull request #39 from fpaut/master
[contrib/cloudeebus.git] / doc / dbus-tools / dbus-register.html
1 <!DOCTYPE html>
2 <html>
3         <head>
4                 <!-- include AutobahnJS .. that's all you need -->
5                 <script src="../../lib/autobahn.min.js"></script>
6                 <script language="javascript" type="text/javascript">
7                 // WAMP session object
8                 var mSession = null;
9
10                 // HTML DOM elements
11                 var mLog, mBus, mSender, mObject, mInterface, mSignal, mArgs, mUri;
12
13                 // RPC success callback
14                 function myAsyncFuncSuccessCB(res) {
15                         log_append("subscribing to: " + res + "\n");
16                         mSession.subscribe(res, sigHandler);
17                 }
18
19                 // RPC error callback
20                 function myAsyncFuncErrorCB(error, desc) {
21                         var str = error.desc ? error.desc : desc;
22                         log_append("error: " + str + "\n");
23                 }
24
25                 window.onload = function() {
26
27                         function onSessionAuthenticatedCB() { // WAMP session was authenticated
28                                 log_append("Session successfully connected.");
29                         }
30
31                         function onSessionConnectedCB(session) { // WAMP session was established
32                                 mSession = session;
33                                 mSession.authreq().then(function() {
34                                         mSession.auth().then(onSessionAuthenticatedCB, myAsyncFuncErrorCB);
35                                 }, myAsyncFuncErrorCB);
36                         }
37
38                         function onSessionErrorCB(code, reason) { // WAMP session is gone
39                                 mSession = null;
40                                 if (code == ab.CONNECTION_UNSUPPORTED) {
41                                         log_append("Browser is not supported");
42                                 } else {
43                                         log_append("Failed to open session, code = " + code + ", reason = " + reason);
44                                 }
45                         }
46
47                         mLog = document.getElementById('log');
48                         mBus = document.getElementById('bus');
49                         mSender = document.getElementById('sender');
50                         mObject = document.getElementById('object');
51                         mInterface = document.getElementById('interface');
52                         mSignal = document.getElementById('signal');
53                         mArgs = document.getElementById('args');
54                         mUri = document.getElementById('uri');
55
56                         // Connect to WAMP server
57                         ab.connect(mUri.value, onSessionConnectedCB, onSessionErrorCB);
58                 };
59
60                 function sigHandler(id, data) {
61                         log_append("got signal: " + id);
62                         log_append("data: " + data + "\n");
63                 }
64
65                 function dbus_register() 
66                 {
67                         log_append("dbusRegister: "
68                                 + mBus.options[mBus.selectedIndex].value + "\n\t"
69                                 + mSender.value + "\n\t"
70                                 + mObject.value + "\n\t"
71                                 + mInterface.value + "\n\t"
72                                 + mSignal.value + "\n"
73                                 );
74
75                         var arglist = [
76                                 mBus.options[mBus.selectedIndex].value,
77                                 mSender.value,
78                                 mObject.value,
79                                 mInterface.value,
80                                 mSignal.value
81                                 ]
82
83                         // call dbusRegister with bus type, sender, object, and signal
84                         mSession.call("dbusRegister", arglist).then(myAsyncFuncSuccessCB, myAsyncFuncErrorCB);
85                 };
86
87                 function log_append(message) {
88                     mLog.innerHTML += message + '\n';
89                     mLog.scrollTop = mLog.scrollHeight;
90                 };
91
92                 function clear_log() {
93                 mLog.innerHTML = "";
94                 mLog.scrollTop = mLog.scrollHeight;
95                 };
96                 </script>
97         </head>
98         <body>
99                 <center><h1>dbus-register</h1></center>
100                 <br>
101                 <table>
102                         <tr>
103                                 <td>bus:</td>
104                                 <td>
105                                         <select id="bus">
106                                                 <option value="session">session</option>
107                                                 <option value="system">system</option>
108                                         </select>
109                                 </td>
110                         </tr>
111                         <tr>
112                                 <td>sender:</td>
113                                 <td><input type="text" size="40" id="sender" value="org.gnome.ScreenSaver"/></td>
114                         </tr>
115                         <tr>
116                                 <td>object:</td>
117                                 <td><input type="text" size="40" id="object" value="/org/gnome/ScreenSaver"/></td>
118                         </tr>
119                         <tr>
120                                 <td>interface:</td>
121                                 <td><input type="text" size="40" id="interface" value="org.gnome.ScreenSaver"/></td>
122                         </tr>
123                         <tr>
124                                 <td>signal:</td>
125                                 <td><input type="text" size="40" id="signal" value="ActiveChanged"/></td>
126                         </tr>
127                         <tr>
128                                 <td><input style="width:100%" type="button" value="register" onclick="dbus_register();"/></td>
129                                 <td><input type="text" size="40" id="uri" value="ws://localhost:9001"/></td>
130                         </tr>
131                 </table>
132                 <br>
133                 <input type="button" value="clear log" onclick="clear_log();"/>
134                 <br>
135                 <pre id="log" style="height: 20em; overflow-y: scroll; background-color: #faa;"></pre>
136         </body>
137 </html>