feat: update app logic and improve mindmap functionality

This commit is contained in:
2025-05-12 18:56:49 +01:00
parent b1d33ce643
commit a1bd999c6a
4 changed files with 1248 additions and 366 deletions

View File

@@ -804,24 +804,30 @@ function createFlashContainer() {
async function loadMindmapData(nodeId = null) {
try {
let url;
// Wir müssen zwischen numerischen IDs und String-IDs unterscheiden
if (nodeId === null || nodeId === undefined) {
// Wenn keine ID angegeben ist, verwende 'root'
// Wir verwenden die generische Route für alle Anfragen
if (nodeId === null || nodeId === undefined || nodeId === 'root') {
url = '/api/mindmap/root';
} else if (isNaN(parseInt(nodeId))) {
// Für String-IDs wie 'root', 'technology', 'arts' - direkte Route
url = `/api/mindmap/${nodeId}`;
} else {
// Für numerische IDs - neue Route mit /id/ Präfix
url = `/api/mindmap/id/${nodeId}`;
// Für spezielle Kategorien wie 'philosophy', 'science' etc.
// verwenden wir die generische Route mit der Kategorie-ID
url = `/api/mindmap/${nodeId}`;
}
const response = await fetch(url);
if (!response.ok) throw new Error('Fehler beim Laden der Mindmap-Daten');
return await response.json();
if (!response.ok) {
const errorData = await response.json().catch(() => ({ error: 'Unbekannter Fehler' }));
throw new Error(errorData.error || `HTTP-Fehler ${response.status}: ${response.statusText}`);
}
const data = await response.json();
if (!data.success) {
throw new Error(data.error || 'Fehler beim Laden der Mindmap-Daten');
}
return data;
} catch (error) {
console.error('Fehler beim Laden der Mindmap-Daten:', error);
showFlash('Fehler beim Laden der Mindmap-Daten', 'error');
showFlash(error.message || 'Fehler beim Laden der Mindmap-Daten', 'error');
return null;
}
}