mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-11-23 20:49:21 +00:00
126 lines
3.4 KiB
JavaScript
126 lines
3.4 KiB
JavaScript
/**
|
|
* Menu bar object - common methods
|
|
*
|
|
* @author Pierre HUBERT
|
|
*/
|
|
|
|
ComunicWeb.components.menuBar.common = {
|
|
/**
|
|
* 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;
|
|
}
|
|
|
|
}
|
|
|
|
//So we have to initializate it
|
|
//Create menubar element
|
|
var menuBar = createElem("header");
|
|
byId("wrapper").insertBefore(menuBar, byId("wrapper").childNodes[0]);
|
|
menuBar.id = "menuBar";
|
|
|
|
//Initializate the menubar
|
|
return this.init(menuBar);
|
|
},
|
|
|
|
/**
|
|
* Initializate a menubar
|
|
*
|
|
* @param {HTMLElement} menuContainer The menu container
|
|
* @return {Boolan} True for a success
|
|
*/
|
|
init: function(menuContainer){
|
|
//Log action
|
|
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");
|
|
});
|
|
|
|
//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";
|
|
|
|
//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);
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 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);
|
|
|
|
}
|
|
}; |