Skip to content

Commit

Permalink
Offline messages are now tracked correctly
Browse files Browse the repository at this point in the history
  • Loading branch information
dj-emberex committed Mar 1, 2012
1 parent 0332bbe commit e9e0504
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 8 deletions.
23 changes: 17 additions & 6 deletions assets/js/client.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,11 @@ $(function() {
irc.appView.render();
irc.chatWindows.add({name: 'status', type: 'status'});
$.each(data.channels, function(key, value){
irc.chatWindows.add({name: value['serverName']});
if(value['serverName'][0] == '#'){
irc.chatWindows.add({name: value['serverName']});
} else {
irc.chatWindows.add({name: value['serverName'], type: 'pm'});
}
var channel = irc.chatWindows.getByName(value['serverName']);
var channelTabs = irc.appView.channelList.channelTabs;
var channelTab = channelTabs[channelTabs.length-1];
Expand All @@ -78,11 +82,18 @@ $(function() {
unreadMentions: value['unread_mentions']
});
channelTab.updateUnreadCounts();
channel.userList = new UserList(channel);
$.each(value.users, function(user, role) {
channel.userList.add({nick: user, role: role, idle:0, user_status: 'idle', activity: ''});
});
irc.socket.emit('getOldMessages',{channelName: value['serverName'], skip:-50, amount: 50});
if(value['serverName'][0] == '#'){
channel.userList = new UserList(channel);
$.each(value.users, function(user, role) {
channel.userList.add({nick: user, role: role, idle:0, user_status: 'idle', activity: ''});
});
irc.socket.emit('getOldMessages',{channelName: value['serverName'], skip:-50, amount: 50});
} else {
var myNick = irc.me.get('nick');
var logname = (myNick < value['serverName']) ? myNick + value['serverName'] : value['serverName'] + myNick;
irc.socket.emit('getOldMessages',{channelName: logname, skip:-50, amount: 50});
channel.stream.add(new Message({sender:'', raw:''}));
}
});

$('.channel:first').click();
Expand Down
1 change: 1 addition & 0 deletions assets/js/views/channel_tab.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ var ChannelTabView = Backbone.View.extend({
if (this.model.get('type') === 'channel')
irc.socket.emit('part', this.model.get('name'));
else
irc.socket.emit('part_pm', this.model.get('name'));
this.model.destroy();
},

Expand Down
2 changes: 2 additions & 0 deletions assets/js/views/chat.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@ var ChatView = Backbone.View.extend({
// when we switch tabs
this.setElement(ich.chat());
var name = this.model.get('name');
/*
if(name[0] === '#' || name === 'status'){
this.render();
}
*/
this.model.bind('change:topic', this.updateTitle, this);
this.model.stream.bind('add', this.addMessage, this);
},
Expand Down
22 changes: 20 additions & 2 deletions lib/irchandler.js
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,13 @@ var irchandler = exports.irchandler = function(socket) {
client.join(name);
});

socket.on('part_pm', function(name){
if(client.chans[name] !== undefined){
delete client.chans[name];
console.log(name);
}
});

socket.on('part', function(name) {
client.part(name);
if(current_user){
Expand Down Expand Up @@ -246,10 +253,20 @@ var irchandler = exports.irchandler = function(socket) {
var target;
target = (client.nick == args.from) ? args.to : args.from;
logname = (client.nick < target) ? client.nick + target : target + client.nick;
log_message(logname, {user: args.from, message: args.text});

}
if(socket.disconnected){
var channel = client.chans[args.to];
var channel;
if(args.to[0] !== '#'){
if(client.chans[args.from] === undefined){
client.chans[args.from] = {serverName: args.from,
unread_messages: 0, unread_mentions: 0};
}
channel = client.chans[args.from];
log_message(logname, {user: args.from, message: args.text});
} else {
channel = client.chans[args.to];
}
channel.unread_messages = channel.unread_messages+1;

var re = new RegExp('\\b' + client.nick + '\\b', 'g');
Expand All @@ -268,6 +285,7 @@ var irchandler = exports.irchandler = function(socket) {
}
}
}

});
};

Expand Down

0 comments on commit e9e0504

Please sign in to comment.