support-chat/js/supportchat.js

Fri, 16 Apr 2010 18:35:33 +0100

author
matthew@heavyhorse.vm.bytemark.co.uk
date
Fri, 16 Apr 2010 18:35:33 +0100
changeset 54
e5e70a46ace8
parent 53
5cb47f4087a8
child 55
6f0822a428b7
permissions
-rw-r--r--

Add set_assistant and show_message functions

12
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
1 /* Config */
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
2
16
ebc14a22a0c1 Switch to using a table of config options (will allow for easier configuration later)
Matthew Wild <mwild1@gmail.com>
parents: 15
diff changeset
3 var support_config = {
ebc14a22a0c1 Switch to using a table of config options (will allow for easier configuration later)
Matthew Wild <mwild1@gmail.com>
parents: 15
diff changeset
4 login_domain: "anon.localhost",
ebc14a22a0c1 Switch to using a table of config options (will allow for easier configuration later)
Matthew Wild <mwild1@gmail.com>
parents: 15
diff changeset
5 bosh_url: "/http-bind",
21
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
6 muc_server: "support.localhost",
16
ebc14a22a0c1 Switch to using a table of config options (will allow for easier configuration later)
Matthew Wild <mwild1@gmail.com>
parents: 15
diff changeset
7 team_rooms: {
ebc14a22a0c1 Switch to using a table of config options (will allow for easier configuration later)
Matthew Wild <mwild1@gmail.com>
parents: 15
diff changeset
8 "Sales": "sales@support.localhost",
ebc14a22a0c1 Switch to using a table of config options (will allow for easier configuration later)
Matthew Wild <mwild1@gmail.com>
parents: 15
diff changeset
9 "Technical": "technical@support.localhost"
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
10 },
37
010783d24970 Commit the rest of the assistants-offline handling code, now check the affiliations of assistants
Matthew Wild <mwild1@gmail.com>
parents: 36
diff changeset
11 send_invites: true,
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
12 offline_support: "support@localhost",
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
13 alternative_url: "http://www.google.co.uk/"
16
ebc14a22a0c1 Switch to using a table of config options (will allow for easier configuration later)
Matthew Wild <mwild1@gmail.com>
parents: 15
diff changeset
14 };
12
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
15
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
16 /*** XMPP handling */
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
17 var conn = null;
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
18
37
010783d24970 Commit the rest of the assistants-offline handling code, now check the affiliations of assistants
Matthew Wild <mwild1@gmail.com>
parents: 36
diff changeset
19 /*** Query information */
39
0b18fb969bd3 Remove part of a comment accidentally copy/pasted
Matthew Wild <mwild1@gmail.com>
parents: 38
diff changeset
20 var question_type; // E.g. "Sales", "Technical"
37
010783d24970 Commit the rest of the assistants-offline handling code, now check the affiliations of assistants
Matthew Wild <mwild1@gmail.com>
parents: 36
diff changeset
21 var question_name; // Name of the submitter
010783d24970 Commit the rest of the assistants-offline handling code, now check the affiliations of assistants
Matthew Wild <mwild1@gmail.com>
parents: 36
diff changeset
22 var question_text; // The query itself
010783d24970 Commit the rest of the assistants-offline handling code, now check the affiliations of assistants
Matthew Wild <mwild1@gmail.com>
parents: 36
diff changeset
23
53
5cb47f4087a8 Declare question_muc/team_muc as global singletons
matthew@heavyhorse.vm.bytemark.co.uk
parents: 51
diff changeset
24 /*** XMPP rooms */
5cb47f4087a8 Declare question_muc/team_muc as global singletons
matthew@heavyhorse.vm.bytemark.co.uk
parents: 51
diff changeset
25 var team_muc; // MUC of the assistant team
5cb47f4087a8 Declare question_muc/team_muc as global singletons
matthew@heavyhorse.vm.bytemark.co.uk
parents: 51
diff changeset
26 var question_muc; // Temporary room for query discussion
5cb47f4087a8 Declare question_muc/team_muc as global singletons
matthew@heavyhorse.vm.bytemark.co.uk
parents: 51
diff changeset
27
12
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
28 /* Called by Strophe when status of connection changes
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
29 (from disconnected to connected, vice-versa, etc.)
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
30 */
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
31 function handle_connection_status(status, err)
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
32 {
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
33 if(err)
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
34 set_ui_state("error");
12
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
35 }
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
36
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
37 /* Initiate the connection to the XMPP server */
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
38 function start_connection()
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
39 {
16
ebc14a22a0c1 Switch to using a table of config options (will allow for easier configuration later)
Matthew Wild <mwild1@gmail.com>
parents: 15
diff changeset
40 conn = new Strophe.Connection(support_config.bosh_url);
12
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
41 var ret = true;
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
42 try
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
43 {
16
ebc14a22a0c1 Switch to using a table of config options (will allow for easier configuration later)
Matthew Wild <mwild1@gmail.com>
parents: 15
diff changeset
44 conn.connect(support_config.login_domain, null, handle_connection_status, 50);
12
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
45 }
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
46 catch(e)
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
47 {
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
48 ret = false;
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
49 }
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
50 return ret;
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
51 }
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
52
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
53 /*** UI handling */
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
54
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
55 /* Initial UI state */
23
ee84e7c22600 New logic for controlling the current UI state
Matthew Wild <mwild1@gmail.com>
parents: 22
diff changeset
56 var ui_state = "question";
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
57
37
010783d24970 Commit the rest of the assistants-offline handling code, now check the affiliations of assistants
Matthew Wild <mwild1@gmail.com>
parents: 36
diff changeset
58 /* Called to change the UI state (question, wait, converse) */
23
ee84e7c22600 New logic for controlling the current UI state
Matthew Wild <mwild1@gmail.com>
parents: 22
diff changeset
59 function set_ui_state(new_state)
ee84e7c22600 New logic for controlling the current UI state
Matthew Wild <mwild1@gmail.com>
parents: 22
diff changeset
60 {
ee84e7c22600 New logic for controlling the current UI state
Matthew Wild <mwild1@gmail.com>
parents: 22
diff changeset
61 if(ui_state != new_state)
ee84e7c22600 New logic for controlling the current UI state
Matthew Wild <mwild1@gmail.com>
parents: 22
diff changeset
62 {
ee84e7c22600 New logic for controlling the current UI state
Matthew Wild <mwild1@gmail.com>
parents: 22
diff changeset
63 $("#support-"+ui_state).hide();
ee84e7c22600 New logic for controlling the current UI state
Matthew Wild <mwild1@gmail.com>
parents: 22
diff changeset
64 $("#support-"+(ui_state=new_state)).show();
ee84e7c22600 New logic for controlling the current UI state
Matthew Wild <mwild1@gmail.com>
parents: 22
diff changeset
65 }
ee84e7c22600 New logic for controlling the current UI state
Matthew Wild <mwild1@gmail.com>
parents: 22
diff changeset
66 }
ee84e7c22600 New logic for controlling the current UI state
Matthew Wild <mwild1@gmail.com>
parents: 22
diff changeset
67
54
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
68 var current_assistant = null;
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
69 function set_assistant(new_assistant)
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
70 {
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
71 if(new_assistant == null)
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
72 {
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
73 $("#support-assistant-name").text("No assistant present.");
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
74 question_muc.send_message("{System} There is now no active assistant");
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
75 team_muc.send_message("Query has no active assistant");
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
76 show_message(null, current_assistant + " has left, please stand by.");
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
77 }
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
78 else
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
79 {
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
80 $("#support-assistant-name").html("<u>Assistant:</u> "+htmlescape(new_assistant));
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
81 question_muc.send_message("{System} "+new_assistant+": You are now the selected assistant");
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
82 team_muc.send_message("Query being handled by "+new_assistant);
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
83 show_message(null, "You are now being assisted by " + new_assistant)
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
84 }
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
85 current_assistant = new_assistant;
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
86 }
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
87
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
88 function show_message(nick, message)
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
89 {
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
90 var html = "<span class='muc-"+(nick?"message":"system")+"'>";
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
91 if(nick)
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
92 html += "<span class='muc-nick'>" + htmlescape(nick) + "</span>" + ": ";
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
93 html += htmlescape(message) + "</span><br/>\n";
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
94 $("#support-log").append(html).scrollTop($("#support-log")[0].scrollHeight);
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
95 }
e5e70a46ace8 Add set_assistant and show_message functions
matthew@heavyhorse.vm.bytemark.co.uk
parents: 53
diff changeset
96
12
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
97 /* Handle the user submitting the question form */
7
53201a5347f9 Add dummy event handler for question submit
Matthew Wild <mwild1@gmail.com>
parents: 4
diff changeset
98 function on_question_submit()
53201a5347f9 Add dummy event handler for question submit
Matthew Wild <mwild1@gmail.com>
parents: 4
diff changeset
99 {
37
010783d24970 Commit the rest of the assistants-offline handling code, now check the affiliations of assistants
Matthew Wild <mwild1@gmail.com>
parents: 36
diff changeset
100 question_type = $("#support-question-type").val();
010783d24970 Commit the rest of the assistants-offline handling code, now check the affiliations of assistants
Matthew Wild <mwild1@gmail.com>
parents: 36
diff changeset
101 question_name = $("#support-question-name").val();
010783d24970 Commit the rest of the assistants-offline handling code, now check the affiliations of assistants
Matthew Wild <mwild1@gmail.com>
parents: 36
diff changeset
102 question_text = $("#support-question-text").val();
9
6677316d8834 Example question submit handler until BOSH backend integrated
Matthew Wild <mwild1@gmail.com>
parents: 7
diff changeset
103
21
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
104 var our_nick = question_name;
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
105
23
ee84e7c22600 New logic for controlling the current UI state
Matthew Wild <mwild1@gmail.com>
parents: 22
diff changeset
106 set_ui_state("wait");
ee84e7c22600 New logic for controlling the current UI state
Matthew Wild <mwild1@gmail.com>
parents: 22
diff changeset
107
21
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
108 // Create our question room
53
5cb47f4087a8 Declare question_muc/team_muc as global singletons
matthew@heavyhorse.vm.bytemark.co.uk
parents: 51
diff changeset
109 question_muc = new MUC(conn, {
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
110 // Handle room joins
43
a3febc43e4e9 Changes to work with new callback syntax
Matthew Wild <mwild1@gmail.com>
parents: 39
diff changeset
111 joined: function (stanza, muc, occupant)
21
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
112 {
43
a3febc43e4e9 Changes to work with new callback syntax
Matthew Wild <mwild1@gmail.com>
parents: 39
diff changeset
113 if(occupant.nick == our_nick)
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
114 // We joined the question room, now join the team room and tell them
21
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
115 team_muc.join(support_config.team_rooms[question_type], our_nick);
23
ee84e7c22600 New logic for controlling the current UI state
Matthew Wild <mwild1@gmail.com>
parents: 22
diff changeset
116 else if(ui_state == "wait")
ee84e7c22600 New logic for controlling the current UI state
Matthew Wild <mwild1@gmail.com>
parents: 22
diff changeset
117 {
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
118 // We were waiting for an assistant, and one just joined
43
a3febc43e4e9 Changes to work with new callback syntax
Matthew Wild <mwild1@gmail.com>
parents: 39
diff changeset
119 var html = "<span class='muc-message'><span class='muc-nick'>" + htmlescape(occupant.nick) + "</span>" + " is answering your query</span><br/>\n";
34
510ca613996a Add support for sending messages from the converse UI
Matthew Wild <mwild1@gmail.com>
parents: 33
diff changeset
120 $("#support-log").append(html).scrollTop($("#support-log")[0].scrollHeight);
510ca613996a Add support for sending messages from the converse UI
Matthew Wild <mwild1@gmail.com>
parents: 33
diff changeset
121 $("#support-send-button").click(function ()
510ca613996a Add support for sending messages from the converse UI
Matthew Wild <mwild1@gmail.com>
parents: 33
diff changeset
122 {
510ca613996a Add support for sending messages from the converse UI
Matthew Wild <mwild1@gmail.com>
parents: 33
diff changeset
123 question_muc.send_message($("#support-input").val());
510ca613996a Add support for sending messages from the converse UI
Matthew Wild <mwild1@gmail.com>
parents: 33
diff changeset
124 $("#support-input").val("");
510ca613996a Add support for sending messages from the converse UI
Matthew Wild <mwild1@gmail.com>
parents: 33
diff changeset
125 });
23
ee84e7c22600 New logic for controlling the current UI state
Matthew Wild <mwild1@gmail.com>
parents: 22
diff changeset
126 set_ui_state("converse");
ee84e7c22600 New logic for controlling the current UI state
Matthew Wild <mwild1@gmail.com>
parents: 22
diff changeset
127 }
28
85fb6653b6e0 Display incoming messages in the UI
Matthew Wild <mwild1@gmail.com>
parents: 27
diff changeset
128 },
85fb6653b6e0 Display incoming messages in the UI
Matthew Wild <mwild1@gmail.com>
parents: 27
diff changeset
129
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
130 // Handle incoming messages
28
85fb6653b6e0 Display incoming messages in the UI
Matthew Wild <mwild1@gmail.com>
parents: 27
diff changeset
131 message: function (stanza, muc, nick, message)
85fb6653b6e0 Display incoming messages in the UI
Matthew Wild <mwild1@gmail.com>
parents: 27
diff changeset
132 {
85fb6653b6e0 Display incoming messages in the UI
Matthew Wild <mwild1@gmail.com>
parents: 27
diff changeset
133 var html = "<span class='muc-message'><span class='muc-nick'>" + htmlescape(nick) + "</span>" + ": " + htmlescape(message) + "</span><br/>\n";
85fb6653b6e0 Display incoming messages in the UI
Matthew Wild <mwild1@gmail.com>
parents: 27
diff changeset
134 $("#support-log").append(html).scrollTop($("#support-log")[0].scrollHeight);
21
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
135 }
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
136 });
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
137
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
138 // Get a unique room name from the server and then join the question MUC
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
139 conn.sendIQ($iq({to: support_config.muc_server, type: "get"})
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
140 .c("query", { xmlns: "http://jabber.org/protocol/muc#unique" }),
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
141 function (result) // Success
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
142 {
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
143 var unique = Strophe.getText(result.getElementsByTagName("unique")[0]);
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
144 question_muc.join(unique + "@" + support_config.muc_server, our_nick);
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
145 },
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
146 function (result) // Failure to get unique room name
21
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
147 {
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
148 var unique = "support-"+Math.floor(Math.random()*512);
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
149 question_muc.join(unique + "@" + support_config.muc_server, our_nick);
21
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
150 });
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
151
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
152 // Create the team MUC object (it will be joined after we join the question MUC)
53
5cb47f4087a8 Declare question_muc/team_muc as global singletons
matthew@heavyhorse.vm.bytemark.co.uk
parents: 51
diff changeset
153 team_muc = new MUC(conn, {
37
010783d24970 Commit the rest of the assistants-offline handling code, now check the affiliations of assistants
Matthew Wild <mwild1@gmail.com>
parents: 36
diff changeset
154 // Someone joined the team MUC
43
a3febc43e4e9 Changes to work with new callback syntax
Matthew Wild <mwild1@gmail.com>
parents: 39
diff changeset
155 joined: function (stanza, muc, occupant)
21
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
156 {
43
a3febc43e4e9 Changes to work with new callback syntax
Matthew Wild <mwild1@gmail.com>
parents: 39
diff changeset
157 if(occupant.nick != our_nick)
21
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
158 return;
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
159
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
160 var sent = false;
21
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
161 for(var nick in team_muc.occupants)
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
162 {
43
a3febc43e4e9 Changes to work with new callback syntax
Matthew Wild <mwild1@gmail.com>
parents: 39
diff changeset
163 if(team_muc.occupants[nick].affiliation == "none" || nick == our_nick)
37
010783d24970 Commit the rest of the assistants-offline handling code, now check the affiliations of assistants
Matthew Wild <mwild1@gmail.com>
parents: 36
diff changeset
164 continue;
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
165 sent = true;
37
010783d24970 Commit the rest of the assistants-offline handling code, now check the affiliations of assistants
Matthew Wild <mwild1@gmail.com>
parents: 36
diff changeset
166 if(support_config.send_invites)
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
167 team_muc.send_invite(team_muc.jid+"/"+nick, question_text + "\n" + question_muc.jid);
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
168 else
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
169 team_muc.send_private_message(nick, question_text + "\n" + question_muc.jid);
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
170 }
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
171 if(!sent)
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
172 {
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
173 set_ui_state("offline");
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
174 }
21
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
175 },
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
176
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
177 error: function (stanza, muc, error)
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
178 {
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
179 if(error == "conflict")
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
180 {
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
181 our_nick += "_";
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
182 muc.join(support_config.team_rooms[question_type], our_nick);
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
183 }
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
184 else
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
185 set_ui_state("error");
21
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
186 }
b691536ed125 Support for joining the question and team MUCs, and notifying team members of the question
Matthew Wild <mwild1@gmail.com>
parents: 16
diff changeset
187 });
7
53201a5347f9 Add dummy event handler for question submit
Matthew Wild <mwild1@gmail.com>
parents: 4
diff changeset
188 }
53201a5347f9 Add dummy event handler for question submit
Matthew Wild <mwild1@gmail.com>
parents: 4
diff changeset
189
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
190 function build_ui()
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
191 {
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
192 return $(" \
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
193 <div id='support-chat'> \
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
194 <div id='support-question'> \
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
195 <h2>What is the nature of your question?</h2> \
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
196 <select id='support-question-type'> \
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
197 <option>Sales</option> \
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
198 <option>Technical</option> \
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
199 </select> \
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
200 <h2>What is your name?</h2> \
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
201 <input id='support-question-name' type='text' /> \
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
202 <h2>Your question:</h2> \
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
203 <textarea id='support-question-text'></textarea><br/> \
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
204 <input id='support-question-submit' type='submit' /> \
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
205 </div> \
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
206 <div id='support-wait'> \
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
207 Please wait while we find someone to \
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
208 answer your query... \
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
209 <br/><br/><br/><br/> \
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
210 <center><img src='waiting.gif' alt='Waiting' /></center> \
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
211 </div> \
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
212 <div id='support-converse'> \
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
213 <div id='support-log'></div> \
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
214 <div id='support-input-container'><textarea id='support-input' type='text' value=''></textarea></div> \
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
215 <input id='support-send-button' type='submit' value='Send' /> \
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
216 <div style='clear:right;'></div> \
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
217 </div> \
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
218 <div id='support-offline'> \
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
219 <p>Sorry, there are no assistants available \
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
220 to answer your question at the moment. \
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
221 </p> \
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
222 <div id='support-offline-form'> \
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
223 <p>To receive a reply to your question via \
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
224 email, please enter your email address \
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
225 below: \
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
226 </p> \
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
227 <input id='support-offline-email' type='text' /> \
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
228 <input id='support-offline-submit-button' type='submit' value='Submit' /> \
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
229 </div> \
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
230 <div id='support-offline-thanks'> \
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
231 <p>Thank you. Your question has been submitted \
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
232 and will be replied to as soon as an assistant \
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
233 becomes available.</p> \
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
234 </div> \
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
235 </div> \
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
236 <div id='support-error'> \
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
237 <p>Sorry, there is a problem with the live support \
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
238 service at the moment. Please see our \
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
239 <a href='"+support_config.alternative_url+"'>alternative \
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
240 support channels</a> to receive assistance. \
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
241 </p> \
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
242 </div> \
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
243 </div> \
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
244 ");
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
245 }
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
246
3
de7fbf06cfa5 Add skeleton supportchat.js
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
247 function display_ui()
de7fbf06cfa5 Add skeleton supportchat.js
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
248 {
de7fbf06cfa5 Add skeleton supportchat.js
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
249 // Display pop-up, showing question form
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
250 var ui = build_ui();
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
251
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
252 ui.appendTo("body");
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
253
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
254 $("#support-question-submit").click(on_question_submit);
50
53bfdcb686f7 Bind enter to the send button in the chat UI
Matthew Wild <mwild1@gmail.com>
parents: 48
diff changeset
255 $("#support-input").keypress(function (event) {
53bfdcb686f7 Bind enter to the send button in the chat UI
Matthew Wild <mwild1@gmail.com>
parents: 48
diff changeset
256 if(event.keyCode == 13)
51
7f893f429760 Suppress enter key press so it doesn't reach the textbox
matthew@heavyhorse.vm.bytemark.co.uk
parents: 50
diff changeset
257 {
7f893f429760 Suppress enter key press so it doesn't reach the textbox
matthew@heavyhorse.vm.bytemark.co.uk
parents: 50
diff changeset
258 event.preventDefault();
50
53bfdcb686f7 Bind enter to the send button in the chat UI
Matthew Wild <mwild1@gmail.com>
parents: 48
diff changeset
259 $("#support-send-button").click();
51
7f893f429760 Suppress enter key press so it doesn't reach the textbox
matthew@heavyhorse.vm.bytemark.co.uk
parents: 50
diff changeset
260 }
50
53bfdcb686f7 Bind enter to the send button in the chat UI
Matthew Wild <mwild1@gmail.com>
parents: 48
diff changeset
261 });
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
262 $("#support-offline-submit-button").click(function ()
12
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
263 {
38
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
264 $("#support-offline-form").hide();
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
265 conn.send($msg({to: support_config.offline_support, type: "normal"})
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
266 .c("subject").t("Support query from " + question_name).up()
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
267 .c("body").t(question_text + "\n\nReply via email to: "+
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
268 $("#support-offline-email").val()));
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
269 $("#support-offline-thanks").show();
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
270 });
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
271
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
272 ui.dialog({
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
273 title:"Live Support",
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
274 height: 400,
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
275 width: 285
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
276 });
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
277
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
278 if(!start_connection())
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
279 {
536e0a618d4a Add error page to the UI, and use it on connection errors
Matthew Wild <mwild1@gmail.com>
parents: 37
diff changeset
280 set_ui_state("error");
12
7b0df9aad29c Connecting to the XMPP server
Matthew Wild <mwild1@gmail.com>
parents: 9
diff changeset
281 }
3
de7fbf06cfa5 Add skeleton supportchat.js
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
282 }
de7fbf06cfa5 Add skeleton supportchat.js
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
283
27
8ca116c827cf Add htmlescape() helper function
Matthew Wild <mwild1@gmail.com>
parents: 26
diff changeset
284 /*** Helper functions */
8ca116c827cf Add htmlescape() helper function
Matthew Wild <mwild1@gmail.com>
parents: 26
diff changeset
285 function htmlescape(s)
8ca116c827cf Add htmlescape() helper function
Matthew Wild <mwild1@gmail.com>
parents: 26
diff changeset
286 {
8ca116c827cf Add htmlescape() helper function
Matthew Wild <mwild1@gmail.com>
parents: 26
diff changeset
287 return s.replace(/&/g,'&amp;').
8ca116c827cf Add htmlescape() helper function
Matthew Wild <mwild1@gmail.com>
parents: 26
diff changeset
288 replace(/>/g,'&gt;').
8ca116c827cf Add htmlescape() helper function
Matthew Wild <mwild1@gmail.com>
parents: 26
diff changeset
289 replace(/</g,'&lt;').
8ca116c827cf Add htmlescape() helper function
Matthew Wild <mwild1@gmail.com>
parents: 26
diff changeset
290 replace(/"/g,'&quot;');
8ca116c827cf Add htmlescape() helper function
Matthew Wild <mwild1@gmail.com>
parents: 26
diff changeset
291 }
8ca116c827cf Add htmlescape() helper function
Matthew Wild <mwild1@gmail.com>
parents: 26
diff changeset
292
36
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
293 function activate_links()
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
294 {
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
295 $("[href='#support-chat']").click(display_ui);
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
296 }
562ff07a3968 Large commit - reorganises directory structure, lots of small fixes
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
297
37
010783d24970 Commit the rest of the assistants-offline handling code, now check the affiliations of assistants
Matthew Wild <mwild1@gmail.com>
parents: 36
diff changeset
298 $(activate_links);

mercurial