Files
WebDB/website/public/js/menu.js
Lars van Hijfte b7a6fae4d9 BUG FIX: Menu loading
Menu's now load slower but update when needed.
Also frozen users now catch the forbidden error
2017-02-01 14:14:49 +01:00

126 lines
3.4 KiB
JavaScript

var menuFriendsData;
var menuGroupsData;
var notificationMessagesData;
var notificationRequestsData;
var updatingMenus = 0;
// On document load, load menus and loops loading menus every 10 seconds.
$(document).ready(function() {
updateMenus();
setInterval(updateMenus, 10000);
});
// Update the menu and notification items.
function updateMenus() {
if (updatingMenus <= 0) {
loadMenuFriends(5);
loadNotificationFriends();
loadUnreadMessages();
loadMenuGroups();
}
}
// Get the friends and insert them in the menu.
function loadMenuFriends(limit) {
updatingMenus ++;
$.post(
"API/loadFriends.php",
{
limit: 5
}
).done(function(data) {
if (data == "" || data == "[]") {
$("#friends-menu-section").hide();
} else {
$("#friends-menu-section").show();
}
if (menuFriendsData != data) {
menuFriendsData = data;
if (!showFriends(data, "#menu-friends-list", 5, "profile.php", "GET", limit)) {
$("#friends-menu-section").hide();
}
}
}).fail(function() {
$("#friends-menu-section").hide();
}).always(function() {
updatingMenus --;
});
}
// Get the groups and insert them in the menu.
function loadMenuGroups() {
updatingMenus ++;
$.post(
"API/loadGroups.php",
{
limit: 5
}
).done(function(data) {
if (data == "" || data == "[]") {
$("#groups-menu-section").hide();
} else {
$("#groups-menu-section").show();
}
if (menuGroupsData != data) {
menuGroupsData = data;
if (!showGroups(data, "#menu-groups-list")) {
$("#groups-menu-section").hide();
}
}
}).fail(function() {
$("#groups-menu-section").hide();
}).always(function() {
updatingMenus --;
});
}
// Get the friends requests and insert them in the notification center.
function loadNotificationFriends() {
updatingMenus ++;
$.post(
"API/loadFriendRequest.php"
).done(function(data) {
if (data == "" || data == "[]") {
$("#friend-request-section").hide();
} else {
$("#friend-request-section").show();
}
if (notificationRequestsData != data) {
notificationRequestsData = data;
if (!showFriendsPlus(data, "#friend-requests-list", 5, "profile.php", "GET")) {
$("#friend-request-section").hide();
}
}
}).fail(function() {
$("#friend-request-section").hide();
}).always(function() {
updatingMenus --;
});
}
// Get the unread messages and insert them in the notification center.
function loadUnreadMessages() {
updatingMenus ++;
$.post(
"API/loadChatNotifications.php"
).done(function(data) {
if (data == "" || data == "[]") {
$("#unread-messages-section").hide();
} else {
$("#unread-messages-section").show();
}
if (notificationMessagesData != data) {
notificationMessagesData = data;
if (!showFriendsPlus(data, "#unread-chat-list", 5, "chat.php", "GET")) {
$("#unread-messages-section").hide();
}
}
}).fail(function() {
$("#unread-messages-section").hide();
}).always(function() {
updatingMenus --;
});
}