-
-
+
-
diff --git a/public/js/admin.js b/public/js/admin.js
index 44f078a..92e2ce2 100644
--- a/public/js/admin.js
+++ b/public/js/admin.js
@@ -2,7 +2,8 @@
Zichtbaar voor super (alles), admin (eigen school) en teacher (leerlingen). */
"use strict";
(function(){
- const wrap = document.getElementById("adminWrap");
+ /* het beheerpaneel is een tabblad binnen Instellingen (settingsWrap/settingsModal),
+ geen los venster meer - modal is alleen nog de content-container voor render() */
const modal = document.getElementById("adminModal");
const btn = document.getElementById("btnAdmin");
let SCHOOLS = [], USERS = [], CLASSES = [], selSchool = null;
@@ -53,10 +54,9 @@
if(!can("admin.access")) return;
selSchool = currentUser.role==="super" ? (selSchool ?? "") : currentUser.schoolId;
await reload();
- wrap.classList.add("open");
+ switchSettingsTab("admin");
});
- wrap.addEventListener("click", e=>{ if(e.target===wrap) wrap.classList.remove("open"); });
- document.addEventListener("userchange", ()=>{ if(!currentUser){ wrap.classList.remove("open"); resetResults = null; } });
+ document.addEventListener("userchange", ()=>{ if(!currentUser) resetResults = null; });
async function reload(){
try{
@@ -266,12 +266,6 @@
function render(){
modal.innerHTML = "";
- const head = h("div","am-head");
- head.appendChild(h("h2", null, T("beheer")));
- const close = h("button","wclose","✕");
- close.addEventListener("click", ()=>wrap.classList.remove("open"));
- head.appendChild(close);
- modal.appendChild(head);
/* super: schoolkiezer + nieuwe school */
if(currentUser.role==="super"){
diff --git a/public/js/core.js b/public/js/core.js
index a6ec1a6..fb52143 100644
--- a/public/js/core.js
+++ b/public/js/core.js
@@ -113,7 +113,7 @@ const I18N = {
tmHint:"Sleep aan de rode schijf om de tijd in te stellen.",
login:"Inloggen", loginBtn:"Inloggen", registerBtn:"Account maken", logout:"Uitloggen",
settingsTitle:"Instellingen", tabLogin:"Inloggen", tabLinkCode:"Koppelcode", busy:"Bezig…",
- stAccount:"Account", stPassword:"Wachtwoord", stSession:"Sessie", openAdmin:"Beheerpaneel",
+ stAccount:"Account", stPassword:"Wachtwoord", stSession:"Sessie",
pwChanged:"Wachtwoord gewijzigd ✓",
namePh:"naam", passPh:"wachtwoord",
guestNote:"Zonder inloggen wordt niets bewaard. Log in met je schoolaccount om alles op de server te bewaren.",
@@ -239,7 +239,7 @@ const I18N = {
tmHint:"Drag the red disc to set the time.",
login:"Log in", loginBtn:"Log in", registerBtn:"Create account", logout:"Log out",
settingsTitle:"Settings", tabLogin:"Log in", tabLinkCode:"Link code", busy:"Please wait…",
- stAccount:"Account", stPassword:"Password", stSession:"Session", openAdmin:"Admin panel",
+ stAccount:"Account", stPassword:"Password", stSession:"Session",
pwChanged:"Password changed ✓",
namePh:"name", passPh:"password",
guestNote:"Without logging in nothing is saved. Log in with your school account to keep everything on the server.",
@@ -376,9 +376,10 @@ const roleKey = r => r==="super" ? "roleSuper" : r==="admin" ? "roleAdmin" : r==
function updateUserUI(){
document.getElementById("userLbl").textContent = currentUser ? currentUser.displayName : T("login");
document.getElementById("btnUser").classList.toggle("on", !!currentUser);
+ const adminTabBtn = document.getElementById("btnAdmin");
const showAdmin = can("admin.access");
- document.getElementById("stAdminLbl").style.display = showAdmin ? "" : "none";
- document.getElementById("adminBlock").style.display = showAdmin ? "flex" : "none";
+ adminTabBtn.style.display = showAdmin ? "" : "none";
+ if(!showAdmin && adminTabBtn.classList.contains("active")) switchSettingsTab("account");
if(currentUser){
document.getElementById("helloName").textContent = currentUser.displayName;
document.getElementById("helloRole").textContent = T(roleKey(currentUser.role));
@@ -394,6 +395,14 @@ function switchLoginTab(tab){
document.querySelectorAll("#loginModal .ed-tabs button").forEach(b=>{
b.addEventListener("click", ()=>switchLoginTab(b.dataset.tab));
});
+/* instellingen-tabs: "account" vs "beheer" - alles in één overzicht i.p.v. een los venster */
+function switchSettingsTab(tab){
+ document.querySelectorAll("#settingsTabs button").forEach(b=>b.classList.toggle("active", b.dataset.tab===tab));
+ document.getElementById("settingsAccountPanel").style.display = tab==="account" ? "block" : "none";
+ document.getElementById("settingsAdminPanel").style.display = tab==="admin" ? "block" : "none";
+}
+/* het "beheer"-tabblad heeft zijn eigen klik-handler in admin.js (moet eerst data laden) */
+document.querySelector('#settingsTabs button[data-tab="account"]').addEventListener("click", ()=>switchSettingsTab("account"));
async function loadSchools(){
const sel = document.getElementById("liSchool");
try{
@@ -404,6 +413,7 @@ async function loadSchools(){
}
function openSettings(){
settingsMsg.textContent = ""; settingsMsg.classList.remove("ok");
+ switchSettingsTab("account");
settingsWrap.classList.add("open");
}
document.getElementById("btnUser").addEventListener("click", ()=>{
@@ -414,8 +424,6 @@ document.getElementById("btnUser").addEventListener("click", ()=>{
loginWrap.classList.add("open");
});
document.getElementById("btnSettingsClose").addEventListener("click", ()=>settingsWrap.classList.remove("open"));
-/* Beheer wordt vanuit Instellingen geopend: dat scherm zelf dicht zodat er geen twee modals over elkaar staan */
-document.getElementById("btnAdmin").addEventListener("click", ()=>settingsWrap.classList.remove("open"));
loginWrap.addEventListener("click", e=>{ if(e.target===loginWrap) loginWrap.classList.remove("open"); });
settingsWrap.addEventListener("click", e=>{ if(e.target===settingsWrap) settingsWrap.classList.remove("open"); });