]> cgit.babelmonkeys.de Git - adhocweb.git/blob - js/main.js
15a0fd079a41a87b3d9f4a807495856c41e42486
[adhocweb.git] / js / main.js
1 var BOSH_SERVICE = 'http://localhost:5280/http-bind/';
2 var show_log = true;
3
4 Strophe.addNamespace("ADHOC", "http://jabber.org/protocol/commands");
5
6 var localJID = null;
7 var connection   = null;
8
9 function log(msg) {
10     var entry = $('<div></div>').append(document.createTextNode(msg));
11     $('#log').append(entry);
12 }
13
14 function rawInput(data) {
15     log('RECV: ' + data);
16 }
17
18 function rawOutput(data) {
19     log('SENT: ' + data);
20 }
21
22 function onConnect(status) {
23     if (status == Strophe.Status.CONNECTING) {
24         log('Strophe is connecting.');
25     } else if (status == Strophe.Status.CONNFAIL) {
26         log('Strophe failed to connect.');
27         showConnect();
28     } else if (status == Strophe.Status.DISCONNECTING) {
29         log('Strophe is disconnecting.');
30     } else if (status == Strophe.Status.DISCONNECTED) {
31         log('Strophe is disconnected.');
32         showConnect();
33     } else if (status == Strophe.Status.AUTHFAIL) {
34         log('Authentication failed');
35         if (connection) {
36             connection.disconnect();
37         }
38     } else if (status == Strophe.Status.CONNECTED) {
39         log('Strophe is connected.');
40         $('#queryJID').val(connection.domain);
41         $('#query').show();
42         Adhoc.checkFeatures("#output", connection.domain);
43     }
44 }
45
46 function showConnect() {
47     var jid = $('#jid');
48     var pass = $('#pass');
49     var button = $('#connect').get(0);        
50
51     button.value = 'connect';
52     $('#query').hide();
53     pass.show();
54     jid.show();
55     $('#cred label').show();
56     $('#cred br').show();
57     $('#output').empty();
58 }
59
60 function showDisconnect() {
61     var jid = $('#jid');
62     var pass = $('#pass');
63     var button = $('#connect').get(0);        
64
65     button.value = 'disconnect';
66     pass.hide();
67     jid.hide();
68     $('#cred label').hide();
69     $('#cred br').hide();
70 }
71
72 $(document).ready(function () {
73     connection = new Strophe.Connection(BOSH_SERVICE);
74     if (show_log) {
75         $('#log_container').show();
76         connection.rawInput = rawInput;
77         connection.rawOutput = rawOutput;
78     }
79
80     $("#log_toggle").click(function () {
81         $("#log").toggle();
82       });
83
84     $('#cred').bind('submit', function (event) {
85         var button = $('#connect').get(0);
86         var jid = $('#jid');
87         var pass = $('#pass');        
88         localJID = jid.get(0).value;
89
90         if (button.value == 'connect') {
91             showDisconnect();
92             $('#log').empty();
93             connection.connect(localJID,
94                pass.get(0).value,
95                onConnect);
96         } else {
97             connection.disconnect();
98         }
99         event.preventDefault();
100     });
101
102     $('#queryForm').bind('submit', function (event) {
103         Adhoc.checkFeatures("#output", $('#queryJID').val());
104         event.preventDefault();
105     });
106 });
107
108 window.onunload = window.onbeforeunload = function() {
109     if (connection) {
110         connection.disconnect();
111     }
112 }