ninegate/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/public/themes/metice/local.js

72 lines
2.9 KiB
JavaScript

$(function() {
var _reduit_timeout=null
var _resize_timeout=null
var METICE= {
logoutSelector : ".navbar-top-links li:last-child a",
logoutSessionName : "_metice_logout"
}
window.addEventListener("message", function(msg){
var header = window.top.document.getElementsByClassName("header")
// logout url envoyé par message, pour changer le lien de logout
if (msg.data.message=="setLogoutUrl" && header && header.length!=0) {
// récupère la valeur de l'attribut href du lien de login/logout
var elt=header[0].querySelector(METICE.logoutSelector);
var logoutUrl=elt.getAttribute("href")
// Ce n'est pas du logout => on ne fait rien
if (logoutUrl.indexOf("logout")==-1) {
return;
}
// url de logout déja renseignée, on va l'utiliser
var logoutSession = sessionStorage.getItem(METICE.logoutSessionName)
if (logoutSession) {
if (header && header.length!=0) { header[0].querySelector(METICE.logoutSelector).setAttribute("href",logoutSession) }
return;
}
var elt=header[0].querySelector(METICE.logoutSelector);
logoutUrl = window.location.origin+logoutUrl
elt.setAttribute("href",msg.data.url+"?orign="+logoutUrl)
// Sauvegarde de l'url de logout, pour restauration lors de l'actualisation page
sessionStorage.setItem(METICE.logoutSessionName,msg.data.url+"?orign="+logoutUrl)
return;
}
// message on scroll, pour réduire le header
if (msg.data.message=="onScroll" && header && header.length!=0){
if (msg.data.position > 100 ) {
if(_reduit_timeout) {clearTimeout(_reduit_timeout);_reduit_timeout=null}
header[0].classList.add("reduit");
if (_resize_timeout==null) {
_resize_timeout=setTimeout(function() {console.log("resize");window.top.resizeFrame();_resize_timeout=null},100);
}
}
if (msg.data.position == 0 ) {
header[0].classList.remove("reduit");
_reduit_timeout = setTimeout(function(){ console.log("resize");window.top.resizeFrame();},100)
}
return;
}
});
// Remise en place de l'url de logout si c'est une url de logout qui est présente dans
var header = window.top.document.getElementsByClassName("header")
if (header && header.length!=0) {
var logout = sessionStorage.getItem(METICE.logoutSessionName)
var elt = header[0].querySelector(METICE.logoutSelector);
var logoutUrl = elt.getAttribute("href")
if (logout && logoutUrl.indexOf("logout")!=-1) {
header[0].querySelector(METICE.logoutSelector).setAttribute("href",logout)
}
}
})