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