ComunicWeb/assets/js/components/menuBar/common.js

126 lines
3.4 KiB
JavaScript
Raw Normal View History

2017-05-21 15:55:19 +00:00
/**
* Menu bar object - common methods
2017-05-21 15:55:19 +00:00
*
* @author Pierre HUBERT
*/
ComunicWeb.components.menuBar.common = {
2017-05-21 15:55:19 +00:00
/**
* Display menu bar
*
* @return {Boolean} True for a success
*/
display: function(){
//Log message
ComunicWeb.debug.logMessage("Display menu bar");
//Try to get menubar element
var menuBar = byId("menuBar");
//We check if the menubar is present or not on the page
if(menuBar){
//We check if menubar is made for a logged user when not any is logged in or vice-versa
if(menuBar.getAttribute("forActiveUser") !== ComunicWeb.user.userLogin.getUserLoginState().toString()){
//Remove previously created menuBar
this.reset(menuBar);
}
else {
//Nothing to be done
ComunicWeb.debug.logMessage("Info: The menubar is already present on the page");
return true;
}
2017-05-21 15:55:19 +00:00
}
//So we have to initializate it
//Create menubar element
2017-05-21 16:10:55 +00:00
var menuBar = createElem("header");
2017-05-21 15:55:19 +00:00
byId("wrapper").insertBefore(menuBar, byId("wrapper").childNodes[0]);
menuBar.id = "menuBar";
//Initializate the menubar
return this.init(menuBar);
},
/**
* Initializate a menubar
*
2017-05-21 16:10:55 +00:00
* @param {HTMLElement} menuContainer The menu container
2017-05-21 15:55:19 +00:00
* @return {Boolan} True for a success
*/
2017-05-21 16:10:55 +00:00
init: function(menuContainer){
2017-05-21 15:55:19 +00:00
//Log action
2017-05-21 16:10:55 +00:00
ComunicWeb.debug.logMessage("Info: Initializate a menuBar in element : '"+menuContainer.id+"'");
//Change menu container informations
menuContainer.className = "main-header";
//Create main menu
var menuElem = createElem("div", menuContainer);
menuElem.className = "navbar navbar-static-top";
//Create nav element
var navElem = createElem("nav", menuElem);
navElem.className = "navbar navbar-static-top";
//Create conatiner
var containerElem = createElem("div", navElem);
containerElem.className = "container";
//Create navbar header
var navbarHeader = createElem("div", containerElem);
navbarHeader.className = "navbar-header";
//Create site name link
var siteNameElem = createElem("a", navbarHeader);
siteNameElem.className = "navbar-brand";
siteNameElem.innerText = "Comunic";
siteNameElem.onclick = (function(){
ComunicWeb.common.page.openPage("home");
});
2017-05-21 15:55:19 +00:00
2017-05-24 14:21:34 +00:00
//Create navbar collapsed button
var navbarCollapsedButton = createElem("button", navbarHeader);
navbarCollapsedButton.type = "button";
navbarCollapsedButton.className = "navbar-toggle collapsed";
navbarCollapsedButton.setAttribute("data-toggle", "collapse");
navbarCollapsedButton.setAttribute("data-target", "#navbar-collapse");
//Create navbar icon
var navbarCollapsIcon = createElem("i", navbarCollapsedButton);
navbarCollapsIcon.className = "fa fa-bars";
2017-05-21 16:18:29 +00:00
//Now we need to know if user is logged in or not
var userLoggedIn = ComunicWeb.user.userLogin.getUserLoginState();
//Save login information in menubar before continuing
menuContainer.setAttribute("forActiveUser", userLoggedIn);
//Call specific menu
if(userLoggedIn){
//Call authenticated menubar
ComunicWeb.components.menuBar.authenticated.addElements(containerElem);
}
else{
//Call not-logged-in menubar
ComunicWeb.components.menuBar.notAuthenticated.addElements(containerElem);
}
2017-05-21 15:55:19 +00:00
},
/**
* Reset a specified menubar
*
* @param {HTMLElement} menuBar The menuBar to reset
* @return {Boolean} True for a success
*/
reset: function(menuBar){
//Log action
ComunicWeb.debug.logMessage("Cleaning a menuBar element.");
//Perform action
return emptyElem(menuBar);
}
2017-05-21 15:55:19 +00:00
};