/** * 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: '' }); dropdownToggle.setAttribute("data-toggle", "dropdown"); //Add notification number var notificationsNumber = createElem2({ appendTo: dropdownToggle, type: "span", class: "label label-danger", innerHTML: "0" }); //Add dropdown menu var dropdownMenu = createElem2({ appendTo: dropdown, type: "ul", class: "dropdown-menu" }); //Add dropdown header var dropdownHeader = createElem2({ appendTo: dropdownMenu, type: "li", class: "header", innerHTML: "Notifications" }); //Add notifications list var notificationsList = createElem2({ appendTo: dropdownMenu, type: "ul", class: "menu" }); //Enable slimscroll $(notificationsList).slimScroll({ height: '100%' }); //Initialize service ComunicWeb.components.notifications.service.init(notificationsNumber, true); //Refresh the notifications list if the user click the dropdown button dropdownToggle.onclick = function(){ ComunicWeb.components.notifications.dropdown.refresh_list(notificationsList); } }, /** * Refresh the list of notifications * * @param {HTMLElement} list The notifications list to refresh */ refresh_list: function(list){ //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; } }); }, }