thelounge/client/js/socket-events/sync_sort.js

40 lines
1.1 KiB
JavaScript
Raw Normal View History

2017-05-18 22:08:54 +02:00
"use strict";
const $ = require("jquery");
const socket = require("../socket");
socket.on("sync_sort", function(data) {
const type = data.type;
const order = data.order;
const container = $(".networks");
const network = container.find(`.network[data-uuid="${data.target}"]`);
2017-05-18 22:08:54 +02:00
if (type === "networks") {
$.each(order, function(index, value) {
const position = $(container.children(".network")[index]);
2017-05-18 22:08:54 +02:00
2018-07-19 12:46:30 +02:00
if (Number(position.attr("data-id")) === value) { // Network in correct place
2017-05-18 22:08:54 +02:00
return true; // No point in continuing
}
network.insertBefore(position);
2017-05-18 22:08:54 +02:00
});
} else if (type === "channels") {
$.each(order, function(index, value) {
if (index === 0) { // Shouldn't attempt to move lobby
return true; // same as `continue` -> skip to next item
}
const position = $(network.children(".chan")[index]); // Target channel at position
2017-05-18 22:08:54 +02:00
2018-07-19 12:46:30 +02:00
if (Number(position.attr("data-id")) === value) { // Channel in correct place
2017-05-18 22:08:54 +02:00
return true; // No point in continuing
}
const channel = network.find(".chan[data-id=" + value + "]"); // Channel at position
channel.insertBefore(position);
2017-05-18 22:08:54 +02:00
});
}
});