2018-02-18 18:12:17 +00:00
|
|
|
/**
|
|
|
|
* Notifications menu bar dropdown
|
|
|
|
*
|
|
|
|
* @author Pierre HUBERT
|
|
|
|
*/
|
|
|
|
|
|
|
|
ComunicWeb.components.notifications.dropdown = {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Display notifications dropdown
|
|
|
|
*
|
|
|
|
* @param {HTMLElement} target The target of the notification dropdown
|
|
|
|
*/
|
|
|
|
display: function(target){
|
|
|
|
|
|
|
|
//Create the button
|
|
|
|
var dropdown = createElem2({
|
|
|
|
appendTo: target,
|
|
|
|
type: "li",
|
|
|
|
class: "dropdown notifications-menu"
|
|
|
|
});
|
|
|
|
|
|
|
|
//Add dropdown toggle
|
|
|
|
var dropdownToggle = createElem2({
|
|
|
|
appendTo: dropdown,
|
|
|
|
type: "a",
|
|
|
|
class: "dropdown-toggle",
|
|
|
|
href: "#",
|
|
|
|
innerHTML: '<i class="fa fa-bell-o"></i>'
|
|
|
|
});
|
2018-02-18 18:16:48 +00:00
|
|
|
dropdownToggle.setAttribute("data-toggle", "dropdown");
|
2018-02-18 18:12:17 +00:00
|
|
|
|
|
|
|
//Add notification number
|
|
|
|
var notificationsNumber = createElem2({
|
|
|
|
appendTo: dropdownToggle,
|
|
|
|
type: "span",
|
|
|
|
class: "label label-danger",
|
|
|
|
innerHTML: "0"
|
|
|
|
});
|
|
|
|
|
|
|
|
//Add dropdown menu
|
2018-02-18 18:16:48 +00:00
|
|
|
var dropdownMenu = createElem2({
|
|
|
|
appendTo: dropdown,
|
|
|
|
type: "ul",
|
|
|
|
class: "dropdown-menu"
|
|
|
|
});
|
|
|
|
|
|
|
|
//Add dropdown header
|
|
|
|
var dropdownHeader = createElem2({
|
|
|
|
appendTo: dropdownMenu,
|
|
|
|
type: "li",
|
|
|
|
class: "header",
|
|
|
|
innerHTML: "Notifications"
|
|
|
|
});
|
2018-02-18 18:12:17 +00:00
|
|
|
|
2018-02-19 08:46:51 +00:00
|
|
|
//Add notifications list
|
|
|
|
var notificationsList = createElem2({
|
|
|
|
appendTo: dropdownMenu,
|
|
|
|
type: "ul",
|
|
|
|
class: "menu"
|
|
|
|
});
|
|
|
|
|
|
|
|
//Enable slimscroll
|
|
|
|
$(notificationsList).slimScroll({
|
|
|
|
height: '100%'
|
|
|
|
});
|
|
|
|
|
2018-02-19 08:39:00 +00:00
|
|
|
//Initialize service
|
|
|
|
ComunicWeb.components.notifications.service.init(notificationsNumber, true);
|
2018-02-19 08:46:51 +00:00
|
|
|
|
|
|
|
//Refresh the notifications list if the user click the dropdown button
|
|
|
|
dropdownToggle.onclick = function(){
|
|
|
|
|
|
|
|
ComunicWeb.components.notifications.dropdown.refresh_list(notificationsList);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2018-02-18 18:12:17 +00:00
|
|
|
},
|
|
|
|
|
2018-02-19 08:46:51 +00:00
|
|
|
/**
|
|
|
|
* Refresh the list of notifications
|
|
|
|
*
|
|
|
|
* @param {HTMLElement} list The notifications list to refresh
|
|
|
|
*/
|
2018-02-19 13:09:15 +00:00
|
|
|
refresh_list: function(list){
|
2018-02-19 08:46:51 +00:00
|
|
|
|
2018-02-19 13:09:15 +00:00
|
|
|
//Perform a request on the API
|
|
|
|
ComunicWeb.components.notifications.interface.get_list_unread(function(result){
|
|
|
|
|
|
|
|
//Check for errors
|
|
|
|
if(result.error){
|
|
|
|
ComunicWeb.common.notificationSystem.showNotification("An error occured while trying to retrieve notifications list !", "danger");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
2018-02-19 08:46:51 +00:00
|
|
|
|
|
|
|
},
|
2018-02-18 18:12:17 +00:00
|
|
|
}
|