All checks were successful
dev - build & deploy naar test / build-and-deploy (push) Successful in 8s
55 lines
No EOL
2.3 KiB
JavaScript
55 lines
No EOL
2.3 KiB
JavaScript
/* teach - start: beeldgrootte, contrast, sessie-herstel */
|
|
/* =========================================================
|
|
init
|
|
==========================================================*/
|
|
/* display size: scale the whole app up for pupils who need it (device setting) */
|
|
let ZOOM = 100;
|
|
const btnZoomIn = document.getElementById("btnZoomIn");
|
|
const btnZoomOut = document.getElementById("btnZoomOut");
|
|
const zoomPct = document.getElementById("zoomPct");
|
|
function setZoom(z){
|
|
ZOOM = Math.max(100, Math.min(200, Math.round(z/10)*10));
|
|
document.body.style.zoom = ZOOM/100;
|
|
zoomPct.textContent = ZOOM+"%";
|
|
zoomPct.classList.toggle("on", ZOOM!==100);
|
|
btnZoomIn.title = btnZoomOut.title = zoomPct.title = T("zoomUI");
|
|
btnZoomIn.disabled = ZOOM>=200;
|
|
btnZoomOut.disabled = ZOOM<=100;
|
|
try{ localStorage.setItem("teach.zoom", ZOOM); }catch(e){}
|
|
}
|
|
btnZoomIn.addEventListener("click", ()=>setZoom(ZOOM+10));
|
|
btnZoomOut.addEventListener("click", ()=>setZoom(ZOOM-10));
|
|
zoomPct.addEventListener("click", ()=>setZoom(100)); /* tap the % to reset */
|
|
document.addEventListener("langchange", ()=>{ btnZoomIn.title = btnZoomOut.title = zoomPct.title = T("zoomUI"); });
|
|
try{ const z = +localStorage.getItem("teach.zoom"); if(z>100) setZoom(z); else setZoom(100); }catch(e){ setZoom(100); }
|
|
|
|
/* high-contrast accessibility mode (device setting, persists) */
|
|
const btnHC = document.getElementById("btnHC");
|
|
function setHC(on){
|
|
document.body.classList.toggle("hc", on);
|
|
btnHC.classList.toggle("on", on);
|
|
btnHC.title = T("a11y");
|
|
try{ localStorage.setItem("teach.hc", on ? "1" : ""); }catch(e){}
|
|
}
|
|
btnHC.addEventListener("click", ()=>setHC(!document.body.classList.contains("hc")));
|
|
document.addEventListener("langchange", ()=>{ btnHC.title = T("a11y"); });
|
|
try{ if(localStorage.getItem("teach.hc")==="1") setHC(true); }catch(e){}
|
|
|
|
applyI18n();
|
|
updateEmptyHint();
|
|
/* restore session (same browser tab session only) */
|
|
(function(){
|
|
let name = null;
|
|
try{ name = sessionStorage.getItem("teach.session"); }catch(e){}
|
|
const users = loadUsers();
|
|
if(name && users[name]){
|
|
currentUser = { name, data: users[name].data };
|
|
THEMES = themesFromData(currentUser.data);
|
|
GENERAL_EXTRA = generalExtraFromData(currentUser.data);
|
|
updateUserUI();
|
|
BS = boardsFromData(currentUser.data);
|
|
loadCurrentSlot();
|
|
}else{
|
|
updateBoardsUI();
|
|
}
|
|
})(); |