1
0
mirror of https://git.topisto.net/tibo/template.git synced 2026-03-31 13:09:09 +00:00
Files
template/frontend/src/scripts/default.js
2025-06-02 13:40:19 +02:00

217 lines
6.1 KiB
JavaScript

window.addEventListener('load', function() { window.scrollTo(0,0); }, false);
/*
* Personnalisation HEADER visibility
* Que se passe-t-il lorsque la bannière est invisible ?
*/
function setLogoVisiblity(visibilityFlag) {
let element = document.querySelector("nav>*>#settings");
let value = 'hidden';
if (visibilityFlag) value = "visible";
element.style.visibility = value;
}
function setSynthesisTopHeight(hauteur) {
let element = document.querySelector("#synthesis_top");
element.style.height = hauteur+'px';
}
function headerIsNowVisible(header) {
setLogoVisiblity(false);
setSynthesisTopHeight(6);
}
function headerIsNowInvisible(header) {
setLogoVisiblity(true);
setSynthesisTopHeight(80);
scrollToElement('#synthesis_top');
}
/*
* Personnalisation SYNTHESIS visibility
* Que se passe-t-il lorsque la synthèse est invisible ?
*/
function setDatagridFirstColSticky(stickyFlag) {
let element = null;
if (stickyFlag) {
/*
* Mettre la première case sticky au top left
*/
element = document.querySelector("#datagrid>table>thead>tr>th:first-child");
element.style.setProperty('position', 'sticky');
element.style.setProperty('left', '0px');
element.style.setProperty('z-index', '30');
//
// Mettre la dernière case sticky au bottom left
//
element = document.querySelector("#datagrid>table>tfoot>tr>th:first-child");
element.style.setProperty('position', 'sticky');
element.style.setProperty('left', '0px');
element.style.setProperty('z-index', '30');
} else {
element = document.querySelector("#datagrid>table>thead>tr>th:first-child");
element.style.setProperty('position', 'sticky');
element.style.setProperty('left', '0px');
element.style.setProperty('z-index', '10');
element = document.querySelector("#datagrid>table>tfoot>tr>th:first-child");
element.style.setProperty('position', 'sticky');
element.style.setProperty('left', '0px');
element.style.setProperty('z-index', '10');
}
}
function setDatagridHeadSticky(stickyFlag) {
let element = document.querySelector("#datagrid>table>thead");
let navbar = document.querySelector("nav");
let offset = navbar.offsetHeight;
if (stickyFlag) {
/*
* Mettre le thead sticky au top
*/
//element = document.querySelector("#datagrid>table>thead");
element.style.setProperty('position', 'sticky');
element.style.setProperty('top', offset+'px');
element.style.setProperty('z-index', '30');
} else {
//element = document.querySelector("#datagrid>table>thead");
element.style.setProperty('position', 'relative');
element.style.setProperty('top', '0px');
element.style.setProperty('z-index', '10');
}
}
function setDataGridFootSticky(stickyFlag) {
let element = document.querySelector("#datagrid>table>tfoot");;
if (stickyFlag) {
//
// Mettre le tfoot sticky au bottom
//
element.style.setProperty('position', 'sticky');
element.style.setProperty('bottom', '0px');
element.style.setProperty('z-index', '30');
setDataGridHeadSticky(stickyFlag);
} else {
element.style.setProperty('position', 'relative');
element.style.setProperty('z-index', '10');
}
}
function synthesisIsNowVisible(entry) {
setDatagridHeadSticky(false);
setDataGridFootSticky(false);
/*
setDatagridFirstColSticky(true);
*/
myLog('Trigger synthesis is visible');
}
function synthesisIsNowInvisible(entry) {
setDatagridHeadSticky(true);
setDataGridFootSticky(true);
/*
setDatagridFirstColSticky(true);
*/
myLog('Trigger synthesis is invisible');
}
function smoothJump(hash) {
location.replace("#" + hash);
}
function documentGetElementById(id){
element = document.getElementById(id);
if (element === null ) return '';
return element.value;
}
function setElementHeight(elementSelector, elementHeight) {
let element = document.querySelector(elementSelector);
element.style.height = elementHeight;
}
function slideElement(elementSelector, elementHeight) {
let element = document.querySelector(elementSelector);
element.style.transition = "all 2s ease-in-out";
setElementHeight(elementSelector, elementHeight);
}
function scrollToElement(elementSelector) {
let element = document.querySelector(elementSelector);
element.scrollIntoView({ behavior: 'smooth' });
}
function gotoHelp() {
scrollToElement('#synthesis');
setTimeout(scrollToElement, 500, '#footer');
}
function gotoTop() {
let element = document.querySelector('header');
window.scrollTo(0, element.offsetHeight + 1);
}
function initDatagrid()
{
let fonctionAffichageDataGrid = datagrid_hooks['random'];
datagridLoading();
fonctionAffichageDataGrid();
}
function initSynthese(mode) {
let synthesis_body = document.querySelector('#synthesis_body');
if (synthesis_body) {
synthesis_body.innerHTML='';
let template = document.querySelector('#synthesis_body_' + mode);
if (template) {
let contenu = document.importNode(template.content, true);
if (contenu) synthesis_body.appendChild(contenu);
}
}
}
function initFooter(mode) {
let footer_body = document.querySelector('footer');
if (footer_body) {
footer_body.innerHTML='';
let template = document.querySelector('#footer_' + mode);
if (template) {
let contenu = document.importNode(template.content, true);
if (contenu) footer_body.appendChild(contenu);
}
}
}
function activeMenu(element) {
scrollToElement('#synthesis_top');
activeMode(element.innerText);
}
function activeMode(mode) {
setFilAriane(['Home']);
if (mode != 'Home') setFilAriane(['Home', mode]);
initDatagrid(mode);
initSynthese(mode);
initFooter(mode);
}
// UI
setLogoVisiblity(false);
// Contexte de départ
setContexteValeur('user', 'Anonymous');
// GO !
activeMode('Home');