changed favouriting to wait for socket call to end before changing star class

This commit is contained in:
Baris Usakli
2013-08-13 15:05:35 -04:00
parent 6e17ff7981
commit 8dc7a0dbbf
2 changed files with 15 additions and 9 deletions

View File

@@ -254,11 +254,9 @@
var element = $(this).find('i'); var element = $(this).find('i');
if(element.attr('class') == 'icon-star-empty') { if(element.attr('class') == 'icon-star-empty') {
element.attr('class', 'icon-star');
socket.emit('api:posts.favourite', {pid: pid, room_id: app.current_room}); socket.emit('api:posts.favourite', {pid: pid, room_id: app.current_room});
} }
else { else {
element.attr('class', 'icon-star-empty');
socket.emit('api:posts.unfavourite', {pid: pid, room_id: app.current_room}); socket.emit('api:posts.unfavourite', {pid: pid, room_id: app.current_room});
} }
}); });
@@ -387,7 +385,14 @@
}); });
socket.on('api:posts.favourite', function(data) { socket.on('api:posts.favourite', function(data) {
if (data.status !== 'ok' && data.pid) { if (data.status === 'ok' && data.pid) {
var favEl = document.querySelector('.post_rep_' + data.pid).nextSibling;
if (favEl) favEl.className = 'icon-star';
}
});
socket.on('api:posts.unfavourite', function(data) {
if (data.status === 'ok' && data.pid) {
var favEl = document.querySelector('.post_rep_' + data.pid).nextSibling; var favEl = document.querySelector('.post_rep_' + data.pid).nextSibling;
if (favEl) favEl.className = 'icon-star-empty'; if (favEl) favEl.className = 'icon-star-empty';
} }

View File

@@ -13,11 +13,6 @@ var RDB = require('./redis.js'),
type: 'error', type: 'error',
timeout: 5000 timeout: 5000
}); });
socket.emit('api:posts.favourite', {
status: 'error',
pid: pid
});
return; return;
} }
@@ -39,7 +34,8 @@ var RDB = require('./redis.js'),
} }
socket.emit('api:posts.favourite', { socket.emit('api:posts.favourite', {
status: 'ok' status: 'ok',
pid: pid
}); });
} }
}); });
@@ -75,6 +71,11 @@ var RDB = require('./redis.js'),
if (room_id) { if (room_id) {
io.sockets.in(room_id).emit('event:rep_down', {uid: uid !== uid_of_poster ? uid_of_poster : 0, pid: pid}); io.sockets.in(room_id).emit('event:rep_down', {uid: uid !== uid_of_poster ? uid_of_poster : 0, pid: pid});
} }
socket.emit('api:posts.unfavourite', {
status: 'ok',
pid: pid
});
} }
}); });
}); });