comparison www/martin/js/chat.js @ 74:b7f9ade92165

added template for guitar version
author Rob Canning <rc@kiben.net>
date Sun, 29 Jun 2014 16:53:50 +0000
parents
children
comparison
equal deleted inserted replaced
73:0c3a2942ddee 74:b7f9ade92165
1 var socket = io.connect();
2
3 socket.on('connect', function () {
4 $('#chat').addClass('connected');
5 });
6
7 socket.on('announcement', function (msg) {
8 $('#lines').append($('<p>').append($('<em>').text(msg)));
9 });
10
11 socket.on('nicknames', function (nicknames) {
12 $('#nicknames').empty().append($('<span>Online: </span>'));
13 for (var i in nicknames) {
14 $('#nicknames').append($('<b>').text(nicknames[i]));
15 }
16 });
17
18 socket.on('user message', message);
19 socket.on('reconnect', function () {
20 $('#lines').remove();
21 message('System', 'Reconnected to the server');
22 });
23
24 socket.on('reconnecting', function () {
25 message('System', 'Attempting to re-connect to the server');
26 });
27
28 socket.on('error', function (e) {
29 message('System', e ? e : 'A unknown error occurred');
30 });
31
32 function message (from, msg) {
33 $('#lines').append($('<p>').append($('<b>').text(from), msg));
34 }
35
36 // dom manipulation
37 $(function () {
38 $('#set-nickname').submit(function (ev) {
39 socket.emit('nickname', $('#nick').val(), function (set) {
40 if (!set) {
41 clear();
42 return $('#chat').addClass('nickname-set');
43 }
44 $('#nickname-err').css('visibility', 'visible');
45 });
46 return false;
47 });
48
49 $('#send-message').submit(function () {
50 message('me', $('#message').val());
51 socket.emit('user message', $('#message').val());
52 clear();
53 $('#lines').get(0).scrollTop = 10000000;
54 return false;
55 });
56
57 function clear () {
58 $('#message').val('').focus();
59 };
60 });