Implementierung Wissensmanagement

Dieser Commit ist enthalten in:
HG
2025-12-30 22:49:56 +00:00
committet von Server Deploy
Ursprung 9bf298c26b
Commit 395598c2b0
51 geänderte Dateien mit 7598 neuen und 32 gelöschten Zeilen

Datei anzeigen

@ -1,6 +1,182 @@
TASKMATE - CHANGELOG
====================
================================================================================
30.12.2025 - BUGFIX: Login-Problem behoben (Sofort-Logout nach Login)
================================================================================
PROBLEM
--------------------------------------------------------------------------------
Nach erfolgreichem Login wurde der Benutzer sofort wieder zum Login-Screen
zurückgeleitet. Dies war ein Race-Condition-Problem mit mehrfachen WebSocket-
Verbindungen und fehlenden Token-Prüfungen.
URSACHE
--------------------------------------------------------------------------------
1. syncManager.connect() wurde doppelt aufgerufen (einmal in sync.js Event-
Listener und einmal in app.js initializeApp())
2. Der Socket-Error-Handler in sync.js löste auth:logout aus OHNE zu prüfen,
ob sich der Token in der Zwischenzeit geändert hatte
LÖSUNG
--------------------------------------------------------------------------------
1. Doppelten syncManager.connect() Aufruf entfernt (nur noch in app.js)
2. Socket-Error-Handler prüft nun, ob ein gültiger Token existiert, bevor
logout ausgelöst wird
3. syncManager.connect() prüft jetzt ob Socket bereits existiert (nicht nur
ob er verbunden ist), um Race Conditions während des Verbindungsaufbaus
zu verhindern
BETROFFENE DATEIEN
--------------------------------------------------------------------------------
- frontend/js/sync.js: Doppelten Connect-Aufruf entfernt, Token-Check hinzugefügt,
verbesserte Socket-Existenz-Prüfung
- frontend/sw.js: Cache-Version auf 151 erhöht
================================================================================
30.12.2025 - UI-REDESIGN: Wissensmanagement-Tab komplett überarbeitet
================================================================================
NEUES LAYOUT: SIDEBAR + HAUPTBEREICH
--------------------------------------------------------------------------------
Der Wissensmanagement-Tab wurde komplett überarbeitet mit einem neuen
2-Spalten-Layout für bessere Übersicht und Bedienbarkeit.
NEUE FEATURES
--------------------------------------------------------------------------------
- Sidebar-Layout: Kategorien links, Einträge rechts - beide gleichzeitig sichtbar
- Drag & Drop Sortierung: Kategorien UND Einträge per Drag & Drop sortierbar
- Kompakte Ansicht: Einträge zeigen nur Titel, Details per Klick aufklappbar
- Aktive Kategorie: Farbiger linker Rand zeigt die ausgewählte Kategorie
- Indikatoren: Icons zeigen auf einen Blick ob Link, Notizen oder Anhänge vorhanden
- Responsive Design: Auf Mobile werden Kategorien als horizontale Chips angezeigt
UI-VERBESSERUNGEN
--------------------------------------------------------------------------------
- Aufklappbare Einträge (▶/▼) für bessere Platznutzung
- Drag-Handles (⋮⋮) für intuitive Sortierung
- Hover-Aktionen (Bearbeiten, Löschen) erscheinen bei Mausbewegung
- Sanfte Animationen für Expand/Collapse
BETROFFENE DATEIEN
--------------------------------------------------------------------------------
- frontend/index.html: Komplette Neustrukturierung des Knowledge-Views
(Sidebar + Main Layout, Mobile Chips)
- frontend/css/knowledge.css: Komplett neu geschrieben für das neue Layout
(Grid-System, Sidebar, kompakte Einträge, Drag & Drop Styles)
- frontend/js/knowledge.js: Komplett überarbeitet mit neuem Rendering,
Drag & Drop Handlers, Expand/Collapse Logik
- frontend/sw.js: Cache-Version auf 149 erhöht
================================================================================
30.12.2025 - VERBESSERUNG: Globale Suche für Wissensmanagement
================================================================================
ÄNDERUNG: SUCHFELD IN HEADER INTEGRIERT
--------------------------------------------------------------------------------
Die Suchfunktion für den Wissensmanagement-Tab wurde vom Tab selbst in das
globale Suchfeld im Header verschoben. Wenn der Benutzer auf dem "Wissen"-Tab
ist, durchsucht das Header-Suchfeld automatisch die Wissensdatenbank.
DETAILS
--------------------------------------------------------------------------------
- Suchfeld aus dem Wissen-Tab entfernt
- "Neue Kategorie"-Button zentral positioniert
- Globales Suchfeld erkennt aktiven Tab und leitet Suchanfragen entsprechend weiter
- Suchfeld wird automatisch geleert beim Wechsel zwischen Tabs
- Konsistentes Suchverhalten über alle Bereiche (Board, Vorschläge, Wissen)
BETROFFENE DATEIEN
--------------------------------------------------------------------------------
- frontend/js/knowledge.js: Öffentliche setSearchQuery() Methode hinzugefügt,
alte Suchfeld-Referenzen entfernt
- frontend/js/app.js: setupSearch() und switchView() erweitert für
Knowledge-Suche Integration
- frontend/css/knowledge.css: Suchfeld-Styles entfernt, zentrierten Header
hinzugefügt
- frontend/index.html: Suchfeld aus Knowledge-Tab entfernt
- frontend/sw.js: Cache-Version auf 148 erhöht
================================================================================
30.12.2025 - NEUES FEATURE: Wissensmanagement-Tab
================================================================================
FEATURE: WISSENSMANAGEMENT-TAB
--------------------------------------------------------------------------------
Neuer Tab "Wissen" in der Hauptnavigation für projektunabhängiges
Wissensmanagement mit 2-Ebenen-Hierarchie.
KATEGORIEN
--------------------------------------------------------------------------------
- Kategorien mit Namen, Beschreibung, Farbe und Icon (Emoji)
- Kategorien-Grid mit Eintrags-Anzahl
- Erstellen, Bearbeiten und Löschen von Kategorien
- Farbcodierung für visuelle Unterscheidung
EINTRÄGE
--------------------------------------------------------------------------------
- Einträge innerhalb von Kategorien
- Jeder Eintrag kann enthalten:
- Titel (Pflichtfeld)
- Link/URL (optional, klickbar)
- Notizen (optional, Markdown-fähig)
- Dateianhänge (mehrere pro Eintrag möglich)
- Erstellen, Bearbeiten und Löschen von Einträgen
SUCHFUNKTION
--------------------------------------------------------------------------------
- Dedizierte Suche nur für den Wissensmanagement-Bereich
- Durchsucht Titel, Notizen und URLs
- Debounce für Performance-Optimierung
- Ergebnisse zeigen Kategorie-Zugehörigkeit
BETROFFENE DATEIEN
--------------------------------------------------------------------------------
Backend:
- backend/database.js: 3 neue Tabellen (knowledge_categories, knowledge_entries,
knowledge_attachments) mit Indizes
- backend/routes/knowledge.js: NEU - CRUD-Operationen für Kategorien, Einträge,
Anhänge und Suche
- backend/server.js: Route-Registrierung hinzugefügt
Frontend:
- frontend/js/api.js: 15+ neue API-Methoden für Wissensmanagement
- frontend/js/knowledge.js: NEU - KnowledgeManager-Klasse
- frontend/css/knowledge.css: NEU - Styles für Kategorien, Einträge, Suche
- frontend/index.html: Tab, View und Modals hinzugefügt
- frontend/js/app.js: Import und Integration des KnowledgeManager
- frontend/sw.js: Cache-Version auf 144 erhöht, neue Dateien hinzugefügt
================================================================================
30.12.2025 - KRITISCHER BUGFIX: Login-Problem behoben
================================================================================
BUGFIX: SOFORTIGER LOGOUT NACH ERFOLGREICHEM LOGIN
--------------------------------------------------------------------------------
Problem: Nach erfolgreichem Login wurde der Benutzer sofort wieder ausgeloggt.
Ursache: Race-Condition zwischen Session-Refresh und Login:
1. Beim Seitenaufruf mit altem Token startete refreshSession() einen async Request
2. Benutzer logt sich erfolgreich ein (neuer Token wird gesetzt)
3. Der alte Refresh-Request kehrt mit 401 zurück
4. Der 401-Fehler löste logout() aus, obwohl neuer gültiger Token existierte
Lösung:
- Vor dem Logout wird geprüft ob der aktuelle Token noch der gleiche ist
- Wenn ein neuer Login stattfand (Token unterschiedlich), wird 401 ignoriert
- Prüfung in auth.js (refreshSession) und api.js (request) hinzugefügt
BETROFFENE DATEIEN
--------------------------------------------------------------------------------
- frontend/js/auth.js: refreshSession() prüft Token vor Logout
- frontend/js/api.js: request() prüft Token vor Logout bei 401
- frontend/sw.js: Cache-Version auf 143 erhöht
================================================================================
30.12.2025 - Checklisten-Unteraufgaben: Drag & Drop und Bearbeiten
================================================================================