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