From 575e309b6ea598cb9894d5531d8d329b20893d9d Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sun, 26 Dec 2010 19:28:20 -0200 Subject: [PATCH] Inform when a user leaves the room --- app.js | 13 +++++++++++++ public/javascripts/pool.js | 4 ++++ 2 files changed, 17 insertions(+) diff --git a/app.js b/app.js index cc26cf1..9ebecc4 100644 --- a/app.js +++ b/app.js @@ -162,6 +162,19 @@ app.get('/rooms/:room_id/join', filters.getRoom, function(req, res){ res.redirect('/rooms/' + req.room.id); }); +app.get('/rooms/:room_id/leave', filters.getRoom, filters.getUser, function(req, res){ + if (delete req.room.users[req.sessionID]) { + req.session.destroy(); + + var message = new Message(req.room.name, req.user.nick + ' left the room.'); + message.type = 'notice'; + req.room.appendMessage(message); + } + + res.writeHead(200); + res.end(); +}); + // Messages // List app.get('/rooms/:room_id/messages', filters.getRoom, function(req, res){ diff --git a/public/javascripts/pool.js b/public/javascripts/pool.js index 30f6753..6fc3be7 100644 --- a/public/javascripts/pool.js +++ b/public/javascripts/pool.js @@ -70,4 +70,8 @@ jQuery(function($){ else $('title').html('xpress chat'); } + + $(window).unload(function() { + $.get('/rooms/' + $('#room').data('room-id') + '/leave', null, null, 'json'); + }); });