Merge pull request #1598 from thelounge/xpaw/fix-863

Synchronize unread marker when other client opens a channel
This commit is contained in:
Pavel Djundik 2017-10-18 21:21:50 +03:00 committed by GitHub
commit ded79a184d

View File

@ -3,9 +3,27 @@
const $ = require("jquery"); const $ = require("jquery");
const socket = require("../socket"); const socket = require("../socket");
// Sync unread badge and marker when other clients open a channel
socket.on("open", function(id) { socket.on("open", function(id) {
// Another client opened the channel, clear the unread counter if (id < 1) {
return;
}
const channel = $("#chat #chan-" + id);
// Don't do anything if the channel is active on this client
if (channel.length === 0 || channel.hasClass("active")) {
return;
}
// Clear the unread badge
$("#sidebar").find(".chan[data-id='" + id + "'] .badge") $("#sidebar").find(".chan[data-id='" + id + "'] .badge")
.removeClass("highlight") .removeClass("highlight")
.empty(); .empty();
// Move unread marker to the bottom
channel
.find(".unread-marker")
.data("unread-id", 0)
.appendTo(channel.find(".messages"));
}); });