mirror of
https://github.com/pierre42100/ComunicWeb
synced 2025-07-04 10:25:01 +00:00
Show banners
This commit is contained in:
@ -4,7 +4,7 @@
|
||||
* @author Pierre HUBERT
|
||||
*/
|
||||
|
||||
ComunicWeb.components.menuBar.authenticated = {
|
||||
const AuthenticatedMenuBar = {
|
||||
|
||||
/**
|
||||
* Dropdown menu links list
|
||||
@ -28,8 +28,8 @@ ComunicWeb.components.menuBar.authenticated = {
|
||||
//Dark theme
|
||||
{
|
||||
innerLang: "menu_bar_action_dark_theme",
|
||||
onclick: function(b){ComunicWeb.components.menuBar.authenticated.darkThemeButtonClicked(true, b)},
|
||||
oninit: function(b){ComunicWeb.components.menuBar.authenticated.darkThemeButtonClicked(false, b)},
|
||||
onclick: function(b){AuthenticatedMenuBar.darkThemeButtonClicked(true, b)},
|
||||
oninit: function(b){AuthenticatedMenuBar.darkThemeButtonClicked(false, b)},
|
||||
icon: "fa-sun-o"
|
||||
},
|
||||
|
||||
@ -56,7 +56,7 @@ ComunicWeb.components.menuBar.authenticated = {
|
||||
*/
|
||||
addElements: function(container){
|
||||
|
||||
// Site logo
|
||||
// Site name
|
||||
createElem2({
|
||||
appendTo: container,
|
||||
type: "a",
|
||||
@ -112,6 +112,13 @@ ComunicWeb.components.menuBar.authenticated = {
|
||||
|
||||
//Add dropdown menu
|
||||
this.addDropdown(navbarRightElemList);
|
||||
|
||||
// Banner
|
||||
const banner = MenubarBanner.addBanner(undefined)
|
||||
if(banner) {
|
||||
container.parentNode.insertBefore(banner, container.nextElementSibling)
|
||||
banner.classList.add("content-wrapper")
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
|
71
assets/js/components/menuBar/banner.js
Normal file
71
assets/js/components/menuBar/banner.js
Normal file
@ -0,0 +1,71 @@
|
||||
/**
|
||||
* Menu bar banner
|
||||
*
|
||||
* @author Pierre Hubert
|
||||
*/
|
||||
|
||||
let hasClosedBanner = false;
|
||||
|
||||
const MenubarBanner = {
|
||||
/**
|
||||
* Add menubar banner if required
|
||||
*
|
||||
* @param {HTMLElement} target Target element
|
||||
* @returns {HTMLElement} The banner (if it was created)
|
||||
*/
|
||||
addBanner: function(target) {
|
||||
if(hasClosedBanner ||
|
||||
!ServerConfig.conf.banner ||
|
||||
!ServerConfig.conf.banner.enabled &&
|
||||
ServerConfig.conf.banner.expire < ComunicDate.time())
|
||||
return;
|
||||
|
||||
const banner = ServerConfig.conf.banner;
|
||||
|
||||
const rootEl = createElem2({
|
||||
appendTo: target,
|
||||
type: "div",
|
||||
class: "banner alert alert-dismissible alert-" +(banner.nature == "information" ? "info" : (banner.nature == "success" ? "success" : "danger"))
|
||||
})
|
||||
|
||||
// Close button
|
||||
createElem2({
|
||||
appendTo: rootEl,
|
||||
type: "button",
|
||||
class: "close",
|
||||
elemType: "button",
|
||||
innerHTML: "x",
|
||||
onclick: () => {
|
||||
rootEl.remove();
|
||||
hasClosedBanner = true;
|
||||
}
|
||||
})
|
||||
|
||||
// icon
|
||||
createElem2({
|
||||
appendTo: rootEl,
|
||||
type: "i",
|
||||
class: "icon fa "+(banner.nature == "information" ? "fa-info" : (banner.nature == "success" ? "fa-check" : "fa-warning"))
|
||||
})
|
||||
|
||||
// message
|
||||
createElem2({
|
||||
appendTo: rootEl,
|
||||
type: "span",
|
||||
innerHTML: banner.message.hasOwnProperty(currLang()) ? banner.message[currLang()] : banner.message["en"]
|
||||
})
|
||||
|
||||
// link
|
||||
if (banner.link) {
|
||||
const link = createElem2({
|
||||
appendTo: rootEl,
|
||||
type: "a",
|
||||
href: banner.link,
|
||||
innerHTML: tr("Learn more")
|
||||
})
|
||||
link.target = "_blank";
|
||||
}
|
||||
|
||||
return rootEl;
|
||||
}
|
||||
};
|
@ -4,7 +4,7 @@
|
||||
* @author Pierre HUBERT
|
||||
*/
|
||||
|
||||
ComunicWeb.components.menuBar.common = {
|
||||
const MenuBar = {
|
||||
/**
|
||||
* Display menu bar
|
||||
*
|
||||
@ -61,11 +61,11 @@ ComunicWeb.components.menuBar.common = {
|
||||
//Call specific menu
|
||||
if(signed_in()){
|
||||
//Call authenticated menubar
|
||||
ComunicWeb.components.menuBar.authenticated.addElements(menuContainer);
|
||||
AuthenticatedMenuBar.addElements(menuContainer);
|
||||
}
|
||||
else {
|
||||
//Call not-logged-in menubar
|
||||
ComunicWeb.components.menuBar.notAuthenticated.addElements(menuContainer);
|
||||
NotAuthenticatedMenuBar.addElements(menuContainer);
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
* @author Pierre HUBERT
|
||||
*/
|
||||
|
||||
ComunicWeb.components.menuBar.notAuthenticated = {
|
||||
const NotAuthenticatedMenuBar = {
|
||||
/**
|
||||
* Add not-authenticated user specific elements
|
||||
*
|
||||
@ -124,5 +124,7 @@ ComunicWeb.components.menuBar.notAuthenticated = {
|
||||
//Block form
|
||||
return false;
|
||||
}
|
||||
|
||||
MenubarBanner.addBanner(menuHeader)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user