(function () { const APPS_DIR = "/forumapps/apps/"; const APPSBAR = document.getElementById("AppsBar"); // Ophalen van alle app-mappen via een server-side listing (ASP) // Maak een endpoint: /forumapps/list.asp dat directories retourneert fetch(APPS_DIR + "list.asp") .then(r => r.json()) .then(appFolders => { appFolders .filter(name => name.startsWith("app-")) .forEach(loadAppJson); }) .catch(err => console.error("Kan app-lijst niet laden:", err)); function loadAppJson(folderName) { const jsonPath = `${APPS_DIR}${folderName}/app.json`; fetch(jsonPath) .then(r => r.json()) .then(app => { createAppIcon(app, folderName); }) .catch(err => console.error("Fout in app.json van", folderName, err)); } function createAppIcon(app, folderName) { const icon = document.createElement("div"); icon.className = "app-icon"; icon.title = app.name; const img = document.createElement("img"); img.src = `${APPS_DIR}${folderName}/${app.icon}`; img.width = 32; img.height = 32; icon.appendChild(img); // Klik opent venster icon.addEventListener("click", () => { openAppWindow(app, folderName); }); APPSBAR.appendChild(icon); } // Venster openen (jouw eigen window manager) function openAppWindow(app, folderName) { const url = `${APPS_DIR}${folderName}/${app.entry}`; // Voorbeeld windowManager API – pas aan naar jouw systeem windowManager.open({ id: app.id, title: app.name, url: url, width: app.width || 800, height: app.height || 600, icon: `${APPS_DIR}${folderName}/${app.icon}` }); } })();