fix: schoolkiezer reageert nu echt op Scholen/Klassen binnen "School" (v0.4.10-beta)
All checks were successful
dev - build & deploy naar test / build-and-deploy (push) Successful in 35s

- Scholen-blok toont alleen bij "alle scholen" (selSchool leeg), Klassen-blok
  alleen bij een gekozen school - voorheen toonde Scholen altijd, ongeacht de
  kiezer erboven, wat leek alsof het paneel de kiezer negeerde
- de kiezer defaultet voor de systeemmanager weer op "alle scholen" (was
  omgezet naar de eerste school in een eerdere commit; teruggedraaid op
  uitdrukkelijk verzoek)
- geverifieerd in een echte headless Chromium: bij "alle scholen" tonen
  Scholen+Gebruikers, bij een gekozen school Klassen+Gebruikers, en wisselen
  werkt in beide richtingen
This commit is contained in:
Ramon 2026-07-18 05:11:38 +02:00
parent 56125c6968
commit e088f83d1f
3 changed files with 17 additions and 10 deletions

View file

@ -1 +1 @@
0.4.09-beta 0.4.10-beta

View file

@ -266,9 +266,10 @@
try{ try{
if(currentUser.role==="super"){ if(currentUser.role==="super"){
SCHOOLS = await api("/schools"); SCHOOLS = await api("/schools");
/* eerste bezoek: kies meteen een concrete school i.p.v. het verwarrende /* eerste bezoek: standaard "alle scholen" (het scholenoverzicht) i.p.v.
"alle scholen" (klassen en per-school-lijsten zijn dan direct gevuld) */ meteen een school te kiezen - de systeemmanager beheert immers over
if(selSchool == null) selSchool = SCHOOLS.length ? String(SCHOOLS[0].id) : ""; scholen heen; een specifieke school kiezen is een bewuste stap. */
if(selSchool == null) selSchool = "";
} }
const q = currentUser.role==="super" && selSchool ? "?school="+selSchool : ""; const q = currentUser.role==="super" && selSchool ? "?school="+selSchool : "";
USERS = (await api("/admin/users"+q)).users; USERS = (await api("/admin/users"+q)).users;
@ -1419,13 +1420,19 @@
leerkracht ziet dit blok dus helemaal niet. leerkracht ziet dit blok dus helemaal niet.
- Gebruikers: altijd. */ - Gebruikers: altijd. */
function renderSchoolPanel(panel){ function renderSchoolPanel(panel){
if(currentUser.role==="super"){ /* de schoolkiezer erboven moet ook echt iets doen: "alle scholen" toont
het scholenoverzicht (aanmaken/hernoemen/verwijderen, hoort niet bij
één school), een gekozen school toont juist die school se klassen -
nooit allebei tegelijk, anders lijkt Scholen de kiezer te negeren.
Gebruikers hangt hier bewust niet van af: dat paneel schakelt zelf al
tussen een schooloverzicht en een school-specifieke weergave. */
if(currentUser.role==="super" && !selSchool){
panel.appendChild(h("h3","am-h3", T("amSchools"))); panel.appendChild(h("h3","am-h3", T("amSchools")));
const sub = h("div","am-section"); const sub = h("div","am-section");
renderScholenPanel(sub); renderScholenPanel(sub);
panel.appendChild(sub); panel.appendChild(sub);
} }
if(can("classes.manage")){ if(can("classes.manage") && (currentUser.role!=="super" || selSchool)){
panel.appendChild(h("h3","am-h3", T("amClasses"))); panel.appendChild(h("h3","am-h3", T("amClasses")));
const sub = h("div","am-section"); const sub = h("div","am-section");
renderKlassenPanel(sub); renderKlassenPanel(sub);
@ -1441,9 +1448,9 @@
adminTab = tab; adminTab = tab;
modal.querySelectorAll(".am-tabpanel").forEach(p=>{ p.style.display = p.dataset.panel===tab ? "block" : "none"; }); modal.querySelectorAll(".am-tabpanel").forEach(p=>{ p.style.display = p.dataset.panel===tab ? "block" : "none"; });
/* Opslag is school-onafhankelijk: daar is de schoolkiezer alleen maar /* Opslag is school-onafhankelijk: daar is de schoolkiezer alleen maar
verwarrend, dus die verbergen we er. "school" toont 'm juist wél (het verwarrend, dus die verbergen we er. "school" toont 'm juist wél: de
Klassen/Gebruikers-deel daarbinnen hangt ervan af voor een kiezer bepaalt daarbinnen nu ook echt wat je ziet (Scholen bij "alle
systeemmanager) - het Scholen-deel daarbinnen negeert selSchool toch al. */ scholen", Klassen bij een gekozen school - zie renderSchoolPanel). */
const sb = modal.querySelector(".am-schoolbar"); const sb = modal.querySelector(".am-schoolbar");
if(sb) sb.style.display = tab==="opslag" ? "none" : ""; if(sb) sb.style.display = tab==="opslag" ? "none" : "";
} }

View file

@ -2,7 +2,7 @@
"use strict"; "use strict";
/* version shown until /api/version resolves (or if the fetch fails, e.g. offline). /* version shown until /api/version resolves (or if the fetch fails, e.g. offline).
Kept in sync by hand with the VERSION file at the repo root on every release. */ Kept in sync by hand with the VERSION file at the repo root on every release. */
const VERSION = "0.4.09-beta"; const VERSION = "0.4.10-beta";
(function(){ (function(){
const tag = document.getElementById("verTag"); const tag = document.getElementById("verTag");
tag.textContent = "v"+VERSION; tag.textContent = "v"+VERSION;