From 205ba74eff3bb0796c47f4ac3344b93cf3ff5bdb Mon Sep 17 00:00:00 2001 From: Ramon Date: Sat, 18 Jul 2026 03:08:55 +0200 Subject: [PATCH] fix: beheerpaneel toont laadfout i.p.v. stilletjes leeg te blijven (v0.3.98-beta) - reload() in het beheerpaneel (scholen/klassen/gebruikers) ving elke fout stilletjes op en zette alles terug naar lege lijsten, zonder enige melding - dat gaf een verwarrend leeg paneel bij een specifieke school terwijl "alle scholen" wel werkte, zonder enig aanknopingspunt waarom - de echte oorzaak verschijnt nu bovenin het paneel (amLoadError), zodat een volgende mislukking direct te diagnosticeren is i.p.v. te moeten gokken --- VERSION | 2 +- public/js/admin.js | 8 +++++++- public/js/core.js | 4 +++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/VERSION b/VERSION index d13a08a..d6182a8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.3.97-beta +0.3.98-beta diff --git a/public/js/admin.js b/public/js/admin.js index a8c8749..4e26c1b 100644 --- a/public/js/admin.js +++ b/public/js/admin.js @@ -259,6 +259,7 @@ }); async function reload(){ + let reloadError = null; try{ if(currentUser.role==="super"){ SCHOOLS = await api("/schools"); @@ -287,8 +288,13 @@ const lq = currentUser.role==="super" ? "?school="+selSchool : ""; LINK_REQUESTS = ((await api("/admin/link-requests"+lq).catch(()=>({}))).requests) || []; } - }catch(e){ USERS = []; CLASSES = []; ASSIGNMENTS = {}; LINK_REQUESTS = []; } + }catch(e){ USERS = []; CLASSES = []; ASSIGNMENTS = {}; LINK_REQUESTS = []; reloadError = e; } render(); + /* render() bouwt de modal (incl. .am-msg) helemaal opnieuw op, dus de + melding pas ná render() zetten - anders wordt hij meteen weer gewist. + Zonder dit bleef het paneel bij een fout stilletjes helemaal leeg staan + zonder enige aanwijzing waarom. */ + if(reloadError) msg(T("amLoadError") + ": " + reloadError.message); } function classSel(current){ diff --git a/public/js/core.js b/public/js/core.js index 5a27b0c..029842c 100644 --- a/public/js/core.js +++ b/public/js/core.js @@ -2,7 +2,7 @@ "use strict"; /* 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. */ -const VERSION = "0.3.97-beta"; +const VERSION = "0.3.98-beta"; (function(){ const tag = document.getElementById("verTag"); tag.textContent = "v"+VERSION; @@ -282,6 +282,7 @@ const I18N = { amNoSchool:"— geen school —", amNoSchoolGroup:"Zonder school", amShowMore:"meer tonen", amMoveToSchool:"— verplaats naar school… —", amFieldMoveSchool:"Verplaats naar", amPickSchoolFirst:"Kies hierboven eerst een school om de klassen te zien of aan te maken.", amNoClassesHere:"Deze school heeft nog geen klassen. Bestaande klassen kunnen bij een andere school horen — kies die school hierboven, of maak hieronder een nieuwe klas.", + amLoadError:"Laden mislukt", amDetailEmpty:"Selecteer links een gebruiker om te bewerken, of maak een nieuwe aan.", amNewUser:"Nieuwe gebruiker", amRequestOne:"Aanmelding", amReqNew:"nieuw", amParents:"Ouders", @@ -579,6 +580,7 @@ const I18N = { amNoSchool:"— no school —", amNoSchoolGroup:"No school", amShowMore:"show more", amMoveToSchool:"— move to school… —", amFieldMoveSchool:"Move to", amPickSchoolFirst:"First pick a school above to see or create its classes.", amNoClassesHere:"This school has no classes yet. Existing classes may belong to another school — pick that school above, or create a new class below.", + amLoadError:"Failed to load", amDetailEmpty:"Select a user on the left to edit, or create a new one.", amNewUser:"New user", amRequestOne:"Enrolment", amReqNew:"new", amParents:"Parents",