Admin-Panel Korrektur

Vorbereitung Serverimplementation
Dieser Commit ist enthalten in:
HG
2025-12-29 20:30:43 +00:00
committet von Claude Project Manager
Ursprung 50da44aabc
Commit ad7432c833
19 geänderte Dateien mit 709 neuen und 31 gelöschten Zeilen

Datei anzeigen

@ -15,11 +15,14 @@ INHALTSVERZEICHNIS
3. Aufgaben verwalten
4. Projekte und Spalten
5. Kalenderansicht
6. Genehmigung (Vorschläge)
7. Archiv-Funktion
8. Einstellungen
9. Benutzerverwaltung (Admin)
10. Tipps und Tricks
6. Listenansicht
7. Genehmigung (Vorschläge)
8. Gitea-Integration
9. Benachrichtigungen (Inbox)
10. Archiv-Funktion
11. Einstellungen
12. Benutzerverwaltung (Admin)
13. Tipps und Tricks
================================================================================
1. ERSTE SCHRITTE
@ -49,7 +52,7 @@ ADMINISTRATOREN
Standard-Admin-Zugangsdaten:
- Benutzername: admin
- Passwort: !1Data123
- Passwort: Kx9#mP2$vL7@nQ4!wR
Nach der Anmeldung als regulärer Benutzer sehen Sie das Kanban-Board.
@ -58,9 +61,9 @@ DIE OBERFLAECHE
---------------
Die Oberflaeche besteht aus:
+-------------------------------------------------------------------------+
| Logo | Projekt-Auswahl | Board | Kalender | Genehmigung | Suche | User |
+-------------------------------------------------------------------------+
+--------------------------------------------------------------------------------------+
| Logo | Projekt-Auswahl | Board | Liste | Kalender | Genehmigung | Gitea | Suche | User |
+--------------------------------------------------------------------------------------+
| Filterleiste: Benutzer | Prioritaet | Labels | Faelligkeit |
+------------------------------------------------------------------+
| Statistik: Offen | In Arbeit | Erledigt | Ueberfaellig |
@ -296,7 +299,45 @@ FILTER
================================================================================
6. GENEHMIGUNG (VORSCHLÄGE)
6. LISTENANSICHT
================================================================================
Die Listenansicht bietet eine tabellarische Übersicht aller Aufgaben.
ANSICHT WECHSELN
----------------
Klicken Sie auf "Liste" in der Navigationsleiste.
ANSICHTSMODI
------------
- Gruppierte Ansicht: Aufgaben nach Status gruppiert (einklappbar)
- Flache Liste: Alle Aufgaben in einer Tabelle
SPALTEN
-------
- Aufgabe: Titel mit Farbpunkt der Spalte
- Status: Aktueller Status (per Dropdown änderbar)
- Priorität: Hoch/Mittel/Niedrig mit Sternen (per Dropdown änderbar)
- Fälligkeitsdatum: Datum (per Datepicker änderbar)
- Zugewiesen: Benutzer-Avatar (per Dropdown änderbar)
INLINE-BEARBEITUNG
------------------
Alle Felder können direkt in der Liste bearbeitet werden:
- Status: Dropdown öffnen und ändern
- Priorität: Dropdown öffnen und ändern
- Datum: Datepicker öffnen und ändern
- Zuweisung: Dropdown öffnen und ändern
- Titel: Doppelklick zum Bearbeiten
SORTIERUNG
----------
Klicken Sie auf eine Spaltenüberschrift, um nach dieser Spalte zu sortieren.
Erneutes Klicken kehrt die Sortierrichtung um.
================================================================================
7. GENEHMIGUNG (VORSCHLÄGE)
================================================================================
Der Genehmigung-Bereich ermöglicht es Teammitgliedern, Vorschläge einzureichen,
@ -343,7 +384,128 @@ VORSCHLAG LÖSCHEN
================================================================================
7. ARCHIV-FUNKTION
8. GITEA-INTEGRATION
================================================================================
Die Gitea-Integration ermöglicht die Verknüpfung von TaskMate-Projekten mit
Git-Repositories auf einem Gitea-Server.
VORAUSSETZUNGEN
---------------
- Gitea-Server muss konfiguriert sein (GITEA_URL, GITEA_TOKEN in .env)
- Docker-Container muss Zugriff auf lokale Laufwerke haben
GITEA-TAB ÖFFNEN
----------------
Klicken Sie auf "Gitea" in der Navigationsleiste.
REPOSITORY VERKNÜPFEN
---------------------
1. Verbindungsstatus prüfen (grün = verbunden)
2. Repository aus Dropdown wählen ODER "Neues Repository erstellen"
3. Lokalen Pfad eingeben (z.B. C:\Projekte\MeinProjekt)
4. Standard-Branch festlegen (z.B. "main")
5. "Speichern" klicken
NEUES REPOSITORY ERSTELLEN
--------------------------
1. "Neues Repository erstellen" klicken
2. Name eingeben (wird automatisch formatiert)
3. Optional: Beschreibung hinzufügen
4. Sichtbarkeit wählen (Privat/Öffentlich)
5. "Erstellen" klicken
GIT-STATUS
----------
Nach der Verknüpfung zeigt das Status-Panel:
- Aktueller Branch (per Dropdown wechselbar)
- Status: Clean (keine Änderungen) oder Dirty (Änderungen vorhanden)
- Anzahl der geänderten Dateien
GIT-OPERATIONEN
---------------
- Fetch: Änderungen vom Server abrufen (ohne lokale Dateien zu ändern)
- Pull: Änderungen vom Server herunterladen und einbinden
- Push: Lokale Änderungen auf den Server hochladen
- Commit: Änderungen mit Nachricht speichern
PUSH MIT BRANCH-AUSWAHL
-----------------------
Beim Push können Sie den Ziel-Branch wählen:
- "Gleicher Name wie lokal": Push auf gleichnamigen Remote-Branch
- "main", "master", "develop": Push auf spezifischen Branch
- Force-Push: Überschreibt Remote-Historie (bei Konflikten)
BRANCH UMBENENNEN
-----------------
1. Auf das Stift-Symbol neben dem Branch-Dropdown klicken
2. Neuen Branch-Namen eingeben
3. "Umbenennen" klicken
ÄNDERUNGEN ANZEIGEN
-------------------
Die Änderungsliste zeigt alle modifizierten Dateien:
- M = Modified (geändert)
- A = Added (neu hinzugefügt)
- D = Deleted (gelöscht)
- ? = Untracked (nicht versioniert)
COMMIT-HISTORIE
---------------
Die letzten Commits werden mit Hash, Nachricht, Autor und Datum angezeigt.
- X-Button: Commit aus der Anzeige ausblenden
- "Alle ausblenden": Alle Commits aus der Anzeige entfernen
KONFIGURATION ENTFERNEN
-----------------------
1. Auf das Papierkorb-Symbol im Repository-Header klicken
2. Bestätigen
Die Verknüpfung wird entfernt, das Repository bleibt erhalten.
================================================================================
9. BENACHRICHTIGUNGEN (INBOX)
================================================================================
Das Benachrichtigungssystem informiert Sie über wichtige Ereignisse in Echtzeit.
GLOCKEN-SYMBOL
--------------
- Position: Oben rechts in der Kopfzeile, neben dem Benutzer-Avatar
- Grau: Keine ungelesenen Nachrichten
- Farbig mit Badge: Anzahl ungelesener Nachrichten
INBOX ÖFFNEN
------------
Klicken Sie auf das Glocken-Symbol, um das Dropdown-Menü zu öffnen.
BENACHRICHTIGUNGSTYPEN
----------------------
- Aufgabe zugewiesen: Eine Aufgabe wurde Ihnen zugewiesen
- Zuweisung entfernt: Sie wurden von einer Aufgabe entfernt
- Bald fällig: Eine Ihrer Aufgaben ist morgen fällig
- Aufgabe erledigt: Eine Aufgabe wurde abgeschlossen
- Fälligkeit geändert: Das Fälligkeitsdatum wurde geändert
- Priorität erhöht: Priorität wurde auf "Hoch" gesetzt
- Neuer Kommentar: Kommentar zu Ihrer Aufgabe
- @Erwähnung: Sie wurden in einem Kommentar erwähnt
- Genehmigung ausstehend: Neue Genehmigung wartet (persistent)
- Genehmigung erteilt: Vorschlag wurde genehmigt
PERSISTENTE BENACHRICHTIGUNGEN
------------------------------
Genehmigungsanfragen sind "persistent" - sie können nicht gelöscht werden
und bleiben bis zur Genehmigung/Ablehnung bestehen.
Sie sind mit einem gelben Rand markiert.
AKTIONEN
--------
- Klick auf Nachricht: Navigiert zur Aufgabe oder Genehmigung
- "Alle als gelesen markieren": Markiert alle Nachrichten als gelesen
================================================================================
10. ARCHIV-FUNKTION
================================================================================
Das Archiv speichert Aufgaben, die Sie nicht mehr aktiv benoetigen,
@ -367,7 +529,7 @@ AUFGABE ARCHIVIEREN
================================================================================
8. EINSTELLUNGEN
11. EINSTELLUNGEN
================================================================================
Oeffnen Sie die Einstellungen ueber das Benutzer-Menu (oben rechts).
@ -392,7 +554,7 @@ PASSWORT AENDERN
================================================================================
9. BENUTZERVERWALTUNG (ADMIN)
12. BENUTZERVERWALTUNG (ADMIN)
================================================================================
Die Benutzerverwaltung ist nur für Administratoren zugänglich und ermöglicht
@ -458,7 +620,7 @@ HINWEIS: Der eigene Account kann nicht gelöscht werden.
================================================================================
10. TIPPS UND TRICKS
13. TIPPS UND TRICKS
================================================================================
SUCHE

Datei anzeigen

@ -1,6 +1,56 @@
TASKMATE - CHANGELOG
====================
================================================================================
29.12.2025 - Dokumentation aktualisiert
================================================================================
ANWENDUNGSBESCHREIBUNG.TXT ÜBERARBEITET
--------------------------------------------------------------------------------
- Inhaltsverzeichnis erweitert (13 Abschnitte statt 10)
- Neuer Abschnitt 6: Listenansicht
- Neuer Abschnitt 8: Gitea-Integration (vollständige Dokumentation)
- Neuer Abschnitt 9: Benachrichtigungen (Inbox)
- Navigationsleiste im ASCII-Diagramm aktualisiert
- Admin-Passwort aktualisiert
================================================================================
29.12.2025 - Admin: Sicheres Passwort
================================================================================
ÄNDERUNG: ADMIN-PASSWORT AKTUALISIERT
--------------------------------------------------------------------------------
- Neues sicheres Admin-Passwort ohne Bezug zur Anwendung
- 18 Zeichen mit Groß-/Kleinbuchstaben, Zahlen und Sonderzeichen
ÄNDERUNGEN
--------------------------------------------------------------------------------
- backend/database.js: Standard-Admin-Passwort geändert
================================================================================
29.12.2025 - Admin: Benutzer löschen repariert
================================================================================
BUGFIX: BENUTZER KONNTE NICHT GELÖSCHT WERDEN
--------------------------------------------------------------------------------
- Problem: SQLITE_CONSTRAINT_NOTNULL Fehler beim Löschen von Benutzern
- Ursache: Tabellen comments, history und proposals haben NOT NULL Constraints
auf user_id/created_by, Code versuchte diese auf NULL zu setzen
LÖSUNG
--------------------------------------------------------------------------------
- Kommentare des Benutzers werden gelöscht (statt user_id = NULL)
- Historie-Einträge des Benutzers werden gelöscht (statt user_id = NULL)
- Vorschläge des Benutzers werden gelöscht (statt created_by = NULL)
- Task-Assignees werden gelöscht
- Benachrichtigungen werden gelöscht
- Applications.created_by wird auf NULL gesetzt
ÄNDERUNGEN
--------------------------------------------------------------------------------
- backend/routes/admin.js: DELETE /api/admin/users/:id überarbeitet
* Korrekte Behandlung aller Fremdschlüssel-Beziehungen
================================================================================
29.12.2025 - Gitea: Commits aus Anzeige ausblenden
================================================================================

Datei anzeigen

@ -461,7 +461,7 @@ async function createDefaultUsers() {
// Admin-Benutzer
const adminUser = {
username: 'admin',
password: '!1Data123',
password: 'Kx9#mP2$vL7@nQ4!wR',
displayName: 'Administrator',
color: '#8B5CF6'
};

Datei anzeigen

@ -290,35 +290,44 @@ router.delete('/users/:id', (req, res) => {
return res.status(400).json({ error: 'Sie können sich nicht selbst löschen' });
}
// Alle Referenzen auf den Benutzer auf NULL setzen oder löschen
// Tasks
// Alle Referenzen auf den Benutzer behandeln
// Tasks - assigned_to und created_by auf NULL setzen (erlaubt NULL)
db.prepare('UPDATE tasks SET assigned_to = NULL WHERE assigned_to = ?').run(userId);
db.prepare('UPDATE tasks SET created_by = NULL WHERE created_by = ?').run(userId);
// Kommentare
db.prepare('UPDATE comments SET user_id = NULL WHERE user_id = ?').run(userId);
// Task-Assignees löschen (Mehrfachzuweisung)
db.prepare('DELETE FROM task_assignees WHERE user_id = ?').run(userId);
// Historie
db.prepare('UPDATE history SET user_id = NULL WHERE user_id = ?').run(userId);
// Kommentare löschen (user_id NOT NULL)
db.prepare('DELETE FROM comments WHERE user_id = ?').run(userId);
// Vorschläge
db.prepare('UPDATE proposals SET created_by = NULL WHERE created_by = ?').run(userId);
// Historie löschen (user_id NOT NULL)
db.prepare('DELETE FROM history WHERE user_id = ?').run(userId);
// Vorschläge: Votes zuerst löschen, dann Vorschläge des Benutzers
db.prepare('DELETE FROM proposal_votes WHERE user_id = ?').run(userId);
db.prepare('DELETE FROM proposals WHERE created_by = ?').run(userId);
// approved_by kann NULL sein
db.prepare('UPDATE proposals SET approved_by = NULL WHERE approved_by = ?').run(userId);
// Projekte
// Projekte - created_by auf NULL setzen (erlaubt NULL)
db.prepare('UPDATE projects SET created_by = NULL WHERE created_by = ?').run(userId);
// Anhänge
// Anhänge - uploaded_by auf NULL setzen (erlaubt NULL)
db.prepare('UPDATE attachments SET uploaded_by = NULL WHERE uploaded_by = ?').run(userId);
// Links
// Links - created_by auf NULL setzen (erlaubt NULL)
db.prepare('UPDATE links SET created_by = NULL WHERE created_by = ?').run(userId);
// Login-Audit (kann gelöscht werden)
// Applications - created_by auf NULL setzen (erlaubt NULL)
db.prepare('UPDATE applications SET created_by = NULL WHERE created_by = ?').run(userId);
// Login-Audit löschen
db.prepare('DELETE FROM login_audit WHERE user_id = ?').run(userId);
// Votes des Benutzers löschen
db.prepare('DELETE FROM proposal_votes WHERE user_id = ?').run(userId);
// Benachrichtigungen löschen (wird auch durch CASCADE gelöscht, aber sicherheitshalber)
db.prepare('DELETE FROM notifications WHERE user_id = ?').run(userId);
db.prepare('UPDATE notifications SET actor_id = NULL WHERE actor_id = ?').run(userId);
// Benutzer löschen
db.prepare('DELETE FROM users WHERE id = ?').run(userId);

Binäre Datei nicht angezeigt.

Binäre Datei nicht angezeigt.

Binäre Datei nicht angezeigt.

Binäre Datei nicht angezeigt.

Binäre Datei nicht angezeigt.

Binäre Datei nicht angezeigt.

Binäre Datei nicht angezeigt.

Binäre Datei nicht angezeigt.

Datei anzeigen

@ -33487,3 +33487,462 @@ hint: See the 'Note about fast-forwards' in 'git push --help' for details.
[2025-12-29T19:52:29.002Z] [INFO] GET /api/health 200 1ms
[2025-12-29T19:52:34.672Z] [INFO] CSRF: Token missing or not stored for user 1, generated new token
[2025-12-29T19:52:34.673Z] [INFO] POST /api/git/commit/4 403 5ms
[2025-12-29T19:52:35.196Z] [INFO] Commit mit Autor: HG <hg@taskmate.local>
[2025-12-29T19:52:36.246Z] [INFO] POST /api/git/commit/4 200 1568ms
[2025-12-29T19:52:36.754Z] [INFO] GET /api/git/status/4 200 501ms
[2025-12-29T19:52:36.860Z] [INFO] GET /api/git/branches/4 304 105ms
[2025-12-29T19:52:36.960Z] [INFO] GET /api/git/commits/4?limit=10 200 99ms
[2025-12-29T19:52:42.579Z] [INFO] POST /api/git/push/4 200 1900ms
[2025-12-29T19:52:42.690Z] [INFO] GET /api/git/branches/4 304 106ms
[2025-12-29T19:52:43.136Z] [INFO] GET /api/git/status/4 200 551ms
[2025-12-29T19:52:43.222Z] [INFO] GET /api/git/commits/4?limit=10 304 637ms
[2025-12-29T19:52:58.371Z] [INFO] GET /api/health 200 1ms
[2025-12-29T19:53:02.279Z] [INFO] HG left project:[object Object]
[2025-12-29T19:53:02.280Z] [INFO] HG joined project:[object Object]
[2025-12-29T19:53:02.291Z] [INFO] GET /api/columns/1 200 4ms
[2025-12-29T19:53:02.300Z] [INFO] GET /api/stats/dashboard?projectId=1 200 9ms
[2025-12-29T19:53:02.328Z] [INFO] GET /api/labels/1 200 5ms
[2025-12-29T19:53:02.322Z] [INFO] GET /api/tasks/project/1 200 22ms
[2025-12-29T19:53:14.948Z] [INFO] HG left project:[object Object]
[2025-12-29T19:53:14.948Z] [INFO] HG joined project:[object Object]
[2025-12-29T19:53:14.964Z] [INFO] GET /api/stats/dashboard?projectId=4 304 7ms
[2025-12-29T19:53:14.970Z] [INFO] GET /api/labels/4 304 4ms
[2025-12-29T19:53:14.977Z] [INFO] GET /api/columns/4 304 3ms
[2025-12-29T19:53:14.974Z] [INFO] GET /api/tasks/project/4 304 4ms
[2025-12-29T19:53:18.050Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=4 304 4ms
[2025-12-29T19:53:19.340Z] [INFO] GET /api/applications/4 200 4ms
[2025-12-29T19:53:19.442Z] [INFO] GET /api/git/branches/4 304 96ms
[2025-12-29T19:53:19.852Z] [INFO] GET /api/git/status/4 304 505ms
[2025-12-29T19:53:19.938Z] [INFO] GET /api/git/commits/4?limit=10 304 591ms
[2025-12-29T19:53:27.736Z] [INFO] GET /api/health 200 1ms
[2025-12-29T19:53:57.031Z] [INFO] GET /api/health 200 1ms
[2025-12-29T19:54:26.406Z] [INFO] GET /api/health 200 0ms
[2025-12-29T19:54:55.766Z] [INFO] GET /api/health 200 1ms
[2025-12-29T19:55:20.762Z] [INFO] Logout: HG
[2025-12-29T19:55:20.763Z] [INFO] POST /api/auth/logout 200 3ms
[2025-12-29T19:55:20.765Z] [INFO] Logout: HG
[2025-12-29T19:55:20.767Z] [INFO] Socket disconnected: HG (WLX8rFFdGcDBaqlzAAAF)
[2025-12-29T19:55:20.765Z] [INFO] POST /api/auth/logout 200 2ms
[2025-12-29T19:55:25.136Z] [INFO] GET /api/health 200 1ms
[2025-12-29T19:55:27.496Z] [INFO] Login erfolgreich: admin
[2025-12-29T19:55:27.510Z] [INFO] GET /api/admin/users 200 4ms
[2025-12-29T19:55:27.497Z] [INFO] POST /api/auth/login 200 258ms
[2025-12-29T19:55:27.512Z] [INFO] Socket connected: admin (iRPI5afdV7TLQtnoAAAH)
[2025-12-29T19:55:27.521Z] [INFO] GET /api/admin/upload-settings 200 3ms
[2025-12-29T19:55:34.195Z] [INFO] DELETE /api/admin/users/6 500 7ms
[2025-12-29T19:55:34.194Z] [ERROR] Fehler beim Löschen des Benutzers: {"code":"SQLITE_CONSTRAINT_NOTNULL"}
[2025-12-29T19:55:54.508Z] [INFO] GET /api/health 200 1ms
[2025-12-29T19:56:19.617Z] [INFO] DELETE /api/admin/users/6 500 4ms
[2025-12-29T19:56:19.617Z] [ERROR] Fehler beim Löschen des Benutzers: {"code":"SQLITE_CONSTRAINT_NOTNULL"}
[2025-12-29T19:56:23.783Z] [INFO] GET /api/health 200 1ms
[2025-12-29T19:56:53.163Z] [INFO] GET /api/health 200 0ms
[2025-12-29T19:57:22.530Z] [INFO] GET /api/health 200 1ms
[2025-12-29T19:57:51.896Z] [INFO] GET /api/health 200 0ms
[2025-12-29T19:58:21.248Z] [INFO] GET /api/health 200 1ms
[2025-12-29T19:58:22.691Z] [INFO] SIGTERM empfangen, fahre herunter...
[2025-12-29T19:58:54.723Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen:
[2025-12-29T19:58:54.780Z] [INFO] Datenbank-Tabellen erstellt
[2025-12-29T19:58:54.781Z] [INFO] Datenbank initialisiert
[2025-12-29T19:58:54.783Z] [INFO] Server läuft auf Port 3000
[2025-12-29T19:58:54.783Z] [INFO] Umgebung: production
[2025-12-29T19:58:54.785Z] [INFO] Automatische Backups aktiviert
[2025-12-29T19:58:54.785Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden)
[2025-12-29T19:58:57.019Z] [INFO] Socket connected: admin (-OQS4SWvLt4FmT5wAAAB)
[2025-12-29T19:58:59.507Z] [INFO] GET /api/health 200 3ms
[2025-12-29T19:59:12.704Z] [INFO] GET / 304 1ms
[2025-12-29T19:59:12.779Z] [INFO] GET /css/variables.css 304 1ms
[2025-12-29T19:59:12.795Z] [INFO] GET /css/notifications.css 304 1ms
[2025-12-29T19:59:12.788Z] [INFO] GET /css/list.css 304 1ms
[2025-12-29T19:59:12.789Z] [INFO] GET /css/proposals.css 304 0ms
[2025-12-29T19:59:12.785Z] [INFO] GET /css/base.css 304 2ms
[2025-12-29T19:59:12.821Z] [INFO] GET /css/board.css 304 25ms
[2025-12-29T19:59:12.822Z] [INFO] GET /css/gitea.css 304 25ms
[2025-12-29T19:59:12.820Z] [INFO] GET /css/calendar.css 304 22ms
[2025-12-29T19:59:12.821Z] [INFO] GET /css/modal.css 304 24ms
[2025-12-29T19:59:12.823Z] [INFO] GET /css/components.css 304 23ms
[2025-12-29T19:59:12.822Z] [INFO] GET /css/admin.css 304 24ms
[2025-12-29T19:59:12.881Z] [INFO] GET /js/api.js 304 2ms
[2025-12-29T19:59:12.853Z] [INFO] GET /css/responsive.css 304 30ms
[2025-12-29T19:59:12.853Z] [INFO] GET /js/app.js 304 29ms
[2025-12-29T19:59:12.882Z] [INFO] GET /js/store.js 304 2ms
[2025-12-29T19:59:12.882Z] [INFO] GET /js/auth.js 304 2ms
[2025-12-29T19:59:12.883Z] [INFO] GET /js/offline.js 304 3ms
[2025-12-29T19:59:12.882Z] [INFO] GET /js/sync.js 304 2ms
[2025-12-29T19:59:12.883Z] [INFO] GET /js/board.js 304 3ms
[2025-12-29T19:59:12.913Z] [INFO] GET /js/calendar.js 304 29ms
[2025-12-29T19:59:12.912Z] [INFO] GET /js/shortcuts.js 304 28ms
[2025-12-29T19:59:12.912Z] [INFO] GET /js/list.js 304 28ms
[2025-12-29T19:59:12.913Z] [INFO] GET /js/task-modal.js 304 29ms
[2025-12-29T19:59:12.914Z] [INFO] GET /js/undo.js 304 29ms
[2025-12-29T19:59:12.954Z] [INFO] GET /js/notifications.js 304 39ms
[2025-12-29T19:59:12.955Z] [INFO] GET /js/gitea.js 304 40ms
[2025-12-29T19:59:12.955Z] [INFO] GET /js/utils.js 304 40ms
[2025-12-29T19:59:12.955Z] [INFO] GET /js/proposals.js 304 41ms
[2025-12-29T19:59:12.999Z] [INFO] GET /assets/icons/task.svg 304 7ms
[2025-12-29T19:59:12.914Z] [INFO] GET /js/admin.js 304 29ms
[2025-12-29T19:59:12.996Z] [INFO] GET /api/auth/users 304 4ms
[2025-12-29T19:59:13.009Z] [INFO] GET /api/admin/users 304 3ms
[2025-12-29T19:59:13.021Z] [INFO] GET /api/admin/upload-settings 304 4ms
[2025-12-29T19:59:14.844Z] [INFO] GET /sw.js 304 1ms
[2025-12-29T19:59:28.867Z] [INFO] GET /api/health 200 1ms
[2025-12-29T19:59:53.369Z] [INFO] Backup erstellt: backup_2025-12-29T19-59-53-354Z.db
[2025-12-29T19:59:53.378Z] [INFO] Altes Backup gelöscht: backup_2025-12-22T20-12-14-820Z.db
[2025-12-29T19:59:53.380Z] [INFO] Fälligkeits-Check für Benachrichtigungen gestartet
[2025-12-29T19:59:58.319Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:00:27.674Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:00:42.770Z] [INFO] Socket disconnected: admin (-OQS4SWvLt4FmT5wAAAB)
[2025-12-29T20:00:48.744Z] [INFO] Admin admin hat Benutzer TN gelöscht
[2025-12-29T20:00:48.745Z] [INFO] DELETE /api/admin/users/6 200 25ms
[2025-12-29T20:00:48.755Z] [INFO] GET /api/admin/users 200 5ms
[2025-12-29T20:00:57.002Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:01:26.273Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:01:55.607Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:02:24.946Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:02:54.269Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:03:23.589Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:03:52.913Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:04:22.251Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:04:51.596Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:05:20.915Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:05:50.235Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:06:19.523Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:06:48.852Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:07:18.151Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:07:47.416Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:08:16.730Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:08:45.985Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:09:15.273Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:10:38.649Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen:
[2025-12-29T20:10:38.683Z] [INFO] Datenbank-Tabellen erstellt
[2025-12-29T20:10:38.684Z] [INFO] Datenbank initialisiert
[2025-12-29T20:10:38.685Z] [INFO] Server läuft auf Port 3000
[2025-12-29T20:10:38.686Z] [INFO] Umgebung: production
[2025-12-29T20:10:38.686Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden)
[2025-12-29T20:10:38.686Z] [INFO] Automatische Backups aktiviert
[2025-12-29T20:10:43.529Z] [INFO] GET /api/health 200 4ms
[2025-12-29T20:10:48.003Z] [INFO] Logout: admin
[2025-12-29T20:10:48.016Z] [INFO] GET / 304 2ms
[2025-12-29T20:10:48.004Z] [INFO] POST /api/auth/logout 200 3ms
[2025-12-29T20:10:48.036Z] [INFO] GET /css/variables.css 304 1ms
[2025-12-29T20:10:48.041Z] [INFO] GET /css/base.css 304 1ms
[2025-12-29T20:10:48.043Z] [INFO] GET /css/board.css 304 1ms
[2025-12-29T20:10:48.043Z] [INFO] GET /css/admin.css 304 1ms
[2025-12-29T20:10:48.040Z] [INFO] GET /css/components.css 304 1ms
[2025-12-29T20:10:48.056Z] [INFO] GET /css/notifications.css 304 11ms
[2025-12-29T20:10:48.058Z] [INFO] GET /css/modal.css 304 13ms
[2025-12-29T20:10:48.057Z] [INFO] GET /css/gitea.css 304 11ms
[2025-12-29T20:10:48.054Z] [INFO] GET /css/proposals.css 304 10ms
[2025-12-29T20:10:48.058Z] [INFO] GET /css/list.css 304 12ms
[2025-12-29T20:10:48.059Z] [INFO] GET /css/calendar.css 304 13ms
[2025-12-29T20:10:48.068Z] [INFO] GET /css/responsive.css 304 9ms
[2025-12-29T20:10:48.069Z] [INFO] GET /js/app.js 304 9ms
[2025-12-29T20:10:48.090Z] [INFO] GET /js/auth.js 304 1ms
[2025-12-29T20:10:48.089Z] [INFO] GET /js/store.js 304 1ms
[2025-12-29T20:10:48.090Z] [INFO] GET /js/api.js 304 1ms
[2025-12-29T20:10:48.092Z] [INFO] GET /js/sync.js 304 1ms
[2025-12-29T20:10:48.093Z] [INFO] GET /js/offline.js 304 2ms
[2025-12-29T20:10:48.093Z] [INFO] GET /js/board.js 304 1ms
[2025-12-29T20:10:48.093Z] [INFO] GET /js/task-modal.js 304 1ms
[2025-12-29T20:10:48.095Z] [INFO] GET /js/list.js 304 1ms
[2025-12-29T20:10:48.094Z] [INFO] GET /js/calendar.js 304 0ms
[2025-12-29T20:10:48.097Z] [INFO] GET /js/undo.js 304 2ms
[2025-12-29T20:10:48.096Z] [INFO] GET /js/shortcuts.js 304 1ms
[2025-12-29T20:10:48.097Z] [INFO] GET /js/proposals.js 304 1ms
[2025-12-29T20:10:48.108Z] [INFO] GET /js/utils.js 304 9ms
[2025-12-29T20:10:48.109Z] [INFO] GET /js/gitea.js 304 10ms
[2025-12-29T20:10:48.108Z] [INFO] GET /js/notifications.js 304 10ms
[2025-12-29T20:10:48.097Z] [INFO] GET /js/admin.js 304 2ms
[2025-12-29T20:10:48.135Z] [INFO] GET /assets/icons/task.svg 304 3ms
[2025-12-29T20:10:49.698Z] [INFO] GET /sw.js 304 1ms
[2025-12-29T20:10:55.826Z] [INFO] GET / 304 1ms
[2025-12-29T20:10:55.846Z] [INFO] GET /css/variables.css 304 0ms
[2025-12-29T20:10:55.854Z] [INFO] GET /css/proposals.css 304 1ms
[2025-12-29T20:10:55.854Z] [INFO] GET /css/components.css 304 1ms
[2025-12-29T20:10:55.849Z] [INFO] GET /css/base.css 304 0ms
[2025-12-29T20:10:55.852Z] [INFO] GET /css/modal.css 304 1ms
[2025-12-29T20:10:55.865Z] [INFO] GET /css/calendar.css 304 8ms
[2025-12-29T20:10:55.864Z] [INFO] GET /css/notifications.css 304 8ms
[2025-12-29T20:10:55.864Z] [INFO] GET /css/gitea.css 304 8ms
[2025-12-29T20:10:55.863Z] [INFO] GET /css/board.css 304 8ms
[2025-12-29T20:10:55.866Z] [INFO] GET /css/admin.css 304 9ms
[2025-12-29T20:10:55.875Z] [INFO] GET /css/responsive.css 304 9ms
[2025-12-29T20:10:55.865Z] [INFO] GET /css/list.css 304 9ms
[2025-12-29T20:10:55.875Z] [INFO] GET /js/app.js 304 8ms
[2025-12-29T20:10:55.902Z] [INFO] GET /js/api.js 304 1ms
[2025-12-29T20:10:55.903Z] [INFO] GET /js/auth.js 304 2ms
[2025-12-29T20:10:55.902Z] [INFO] GET /js/store.js 304 2ms
[2025-12-29T20:10:55.903Z] [INFO] GET /js/sync.js 304 2ms
[2025-12-29T20:10:55.904Z] [INFO] GET /js/board.js 304 3ms
[2025-12-29T20:10:55.903Z] [INFO] GET /js/offline.js 304 2ms
[2025-12-29T20:10:55.908Z] [INFO] GET /js/shortcuts.js 304 3ms
[2025-12-29T20:10:55.907Z] [INFO] GET /js/list.js 304 2ms
[2025-12-29T20:10:55.908Z] [INFO] GET /js/undo.js 304 2ms
[2025-12-29T20:10:55.907Z] [INFO] GET /js/calendar.js 304 2ms
[2025-12-29T20:10:55.909Z] [INFO] GET /js/admin.js 304 3ms
[2025-12-29T20:10:55.909Z] [INFO] GET /js/task-modal.js 304 3ms
[2025-12-29T20:10:55.918Z] [INFO] GET /js/notifications.js 304 8ms
[2025-12-29T20:10:55.919Z] [INFO] GET /js/gitea.js 304 9ms
[2025-12-29T20:10:55.919Z] [INFO] GET /js/utils.js 304 9ms
[2025-12-29T20:10:55.918Z] [INFO] GET /js/proposals.js 304 9ms
[2025-12-29T20:10:55.945Z] [INFO] GET /assets/icons/task.svg 304 1ms
[2025-12-29T20:10:57.494Z] [INFO] GET /sw.js 304 0ms
[2025-12-29T20:11:02.038Z] [WARN] Login fehlgeschlagen: Falsches Passwort - admin (Versuch 1)
[2025-12-29T20:11:02.039Z] [INFO] POST /api/auth/login 401 223ms
[2025-12-29T20:11:05.570Z] [WARN] Login fehlgeschlagen: Falsches Passwort - admin (Versuch 2)
[2025-12-29T20:11:05.570Z] [INFO] POST /api/auth/login 401 203ms
[2025-12-29T20:11:12.801Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:11:14.811Z] [WARN] Login fehlgeschlagen: Falsches Passwort - admin (Versuch 3)
[2025-12-29T20:11:14.812Z] [INFO] POST /api/auth/login 401 203ms
[2025-12-29T20:11:32.680Z] [INFO] Login erfolgreich: admin
[2025-12-29T20:11:32.680Z] [INFO] POST /api/auth/login 200 206ms
[2025-12-29T20:11:32.692Z] [INFO] GET /api/admin/users 200 3ms
[2025-12-29T20:11:32.696Z] [INFO] Socket connected: admin (rZxp5k6JLoEZPtIcAAAB)
[2025-12-29T20:11:32.698Z] [INFO] GET /api/admin/upload-settings 304 1ms
[2025-12-29T20:11:37.167Z] [INFO] Backup erstellt: backup_2025-12-29T20-11-37-153Z.db
[2025-12-29T20:11:37.171Z] [INFO] Altes Backup gelöscht: backup_2025-12-22T20-56-42-001Z.db
[2025-12-29T20:11:37.172Z] [INFO] Fälligkeits-Check für Benachrichtigungen gestartet
[2025-12-29T20:11:42.157Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:11:55.816Z] [INFO] Logout: admin
[2025-12-29T20:11:55.817Z] [INFO] POST /api/auth/logout 200 1ms
[2025-12-29T20:11:55.825Z] [INFO] GET / 304 0ms
[2025-12-29T20:11:55.819Z] [INFO] Socket disconnected: admin (rZxp5k6JLoEZPtIcAAAB)
[2025-12-29T20:11:55.841Z] [INFO] GET /css/variables.css 304 1ms
[2025-12-29T20:11:55.846Z] [INFO] GET /css/board.css 304 1ms
[2025-12-29T20:11:55.846Z] [INFO] GET /css/admin.css 304 1ms
[2025-12-29T20:11:55.845Z] [INFO] GET /css/base.css 304 1ms
[2025-12-29T20:11:55.844Z] [INFO] GET /css/components.css 304 1ms
[2025-12-29T20:11:55.857Z] [INFO] GET /css/gitea.css 304 9ms
[2025-12-29T20:11:55.847Z] [INFO] GET /css/proposals.css 304 1ms
[2025-12-29T20:11:55.857Z] [INFO] GET /css/notifications.css 304 10ms
[2025-12-29T20:11:55.858Z] [INFO] GET /css/modal.css 304 10ms
[2025-12-29T20:11:55.858Z] [INFO] GET /css/responsive.css 304 10ms
[2025-12-29T20:11:55.859Z] [INFO] GET /css/calendar.css 304 10ms
[2025-12-29T20:11:55.869Z] [INFO] GET /js/app.js 304 9ms
[2025-12-29T20:11:55.859Z] [INFO] GET /css/list.css 304 10ms
[2025-12-29T20:11:55.889Z] [INFO] GET /js/auth.js 304 2ms
[2025-12-29T20:11:55.889Z] [INFO] GET /js/sync.js 304 2ms
[2025-12-29T20:11:55.888Z] [INFO] GET /js/api.js 304 1ms
[2025-12-29T20:11:55.889Z] [INFO] GET /js/store.js 304 3ms
[2025-12-29T20:11:55.890Z] [INFO] GET /js/offline.js 304 2ms
[2025-12-29T20:11:55.890Z] [INFO] GET /js/board.js 304 2ms
[2025-12-29T20:11:55.901Z] [INFO] GET /js/shortcuts.js 304 10ms
[2025-12-29T20:11:55.902Z] [INFO] GET /js/list.js 304 11ms
[2025-12-29T20:11:55.900Z] [INFO] GET /js/task-modal.js 304 10ms
[2025-12-29T20:11:55.901Z] [INFO] GET /js/calendar.js 304 10ms
[2025-12-29T20:11:55.902Z] [INFO] GET /js/admin.js 304 11ms
[2025-12-29T20:11:55.903Z] [INFO] GET /js/undo.js 304 12ms
[2025-12-29T20:11:55.913Z] [INFO] GET /js/utils.js 304 9ms
[2025-12-29T20:11:55.912Z] [INFO] GET /js/notifications.js 304 8ms
[2025-12-29T20:11:55.912Z] [INFO] GET /js/gitea.js 304 8ms
[2025-12-29T20:11:55.912Z] [INFO] GET /js/proposals.js 304 9ms
[2025-12-29T20:11:55.937Z] [INFO] GET /assets/icons/task.svg 304 1ms
[2025-12-29T20:11:56.733Z] [INFO] GET /sw.js 304 1ms
[2025-12-29T20:13:07.277Z] [INFO] Migration: role Spalte zu users hinzugefuegt
[2025-12-29T20:13:07.229Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen:
[2025-12-29T20:13:07.279Z] [INFO] Migration: permissions Spalte zu users hinzugefuegt
[2025-12-29T20:13:07.280Z] [INFO] Migration: email Spalte zu users hinzugefuegt
[2025-12-29T20:13:07.281Z] [INFO] Migration: repositories_base_path Spalte zu users hinzugefuegt
[2025-12-29T20:13:07.288Z] [INFO] Migration: archived Spalte zu proposals hinzugefuegt
[2025-12-29T20:13:07.289Z] [INFO] Migration: task_id Spalte zu proposals hinzugefuegt
[2025-12-29T20:13:07.290Z] [INFO] Migration: project_id Spalte zu proposals hinzugefuegt
[2025-12-29T20:13:07.292Z] [INFO] Migration: filter_category Spalte zu columns hinzugefuegt
[2025-12-29T20:13:07.293Z] [INFO] Migration: Standard-Filterkategorien fuer bestehende Spalten gesetzt
[2025-12-29T20:13:07.334Z] [INFO] Datenbank-Tabellen erstellt
[2025-12-29T20:13:07.961Z] [INFO] Standard-Benutzer und Admin erstellt
[2025-12-29T20:13:07.970Z] [INFO] Standard-Projekt mit Spalten und Labels erstellt
[2025-12-29T20:13:07.970Z] [INFO] Datenbank initialisiert
[2025-12-29T20:13:07.971Z] [INFO] Server läuft auf Port 3000
[2025-12-29T20:13:07.971Z] [INFO] Umgebung: production
[2025-12-29T20:13:07.972Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden)
[2025-12-29T20:13:07.972Z] [INFO] Automatische Backups aktiviert
[2025-12-29T20:13:11.974Z] [INFO] GET /api/health 200 3ms
[2025-12-29T20:13:22.451Z] [INFO] GET / 304 2ms
[2025-12-29T20:13:22.466Z] [INFO] GET /css/variables.css 304 1ms
[2025-12-29T20:13:22.471Z] [INFO] GET /css/base.css 304 1ms
[2025-12-29T20:13:22.473Z] [INFO] GET /css/board.css 304 1ms
[2025-12-29T20:13:22.472Z] [INFO] GET /css/admin.css 304 2ms
[2025-12-29T20:13:22.469Z] [INFO] GET /css/components.css 304 1ms
[2025-12-29T20:13:22.482Z] [INFO] GET /css/notifications.css 304 7ms
[2025-12-29T20:13:22.484Z] [INFO] GET /css/gitea.css 304 9ms
[2025-12-29T20:13:22.484Z] [INFO] GET /css/modal.css 304 9ms
[2025-12-29T20:13:22.483Z] [INFO] GET /css/proposals.css 304 9ms
[2025-12-29T20:13:22.485Z] [INFO] GET /css/calendar.css 304 9ms
[2025-12-29T20:13:22.485Z] [INFO] GET /css/list.css 304 9ms
[2025-12-29T20:13:22.495Z] [INFO] GET /js/app.js 304 8ms
[2025-12-29T20:13:22.495Z] [INFO] GET /css/responsive.css 304 9ms
[2025-12-29T20:13:22.509Z] [INFO] GET /js/api.js 304 1ms
[2025-12-29T20:13:22.512Z] [INFO] GET /js/sync.js 304 2ms
[2025-12-29T20:13:22.510Z] [INFO] GET /js/auth.js 304 1ms
[2025-12-29T20:13:22.507Z] [INFO] GET /js/store.js 304 1ms
[2025-12-29T20:13:22.513Z] [INFO] GET /js/board.js 304 2ms
[2025-12-29T20:13:22.513Z] [INFO] GET /js/calendar.js 304 2ms
[2025-12-29T20:13:22.513Z] [INFO] GET /js/task-modal.js 304 2ms
[2025-12-29T20:13:22.512Z] [INFO] GET /js/offline.js 304 2ms
[2025-12-29T20:13:22.514Z] [INFO] GET /js/list.js 304 3ms
[2025-12-29T20:13:22.521Z] [INFO] GET /js/admin.js 304 6ms
[2025-12-29T20:13:22.522Z] [INFO] GET /js/shortcuts.js 304 7ms
[2025-12-29T20:13:22.520Z] [INFO] GET /js/undo.js 304 6ms
[2025-12-29T20:13:22.523Z] [INFO] GET /js/proposals.js 304 8ms
[2025-12-29T20:13:22.523Z] [INFO] GET /js/notifications.js 304 8ms
[2025-12-29T20:13:22.524Z] [INFO] GET /js/gitea.js 304 8ms
[2025-12-29T20:13:22.539Z] [INFO] GET /js/utils.js 304 14ms
[2025-12-29T20:13:22.572Z] [INFO] GET /assets/icons/task.svg 304 3ms
[2025-12-29T20:13:24.137Z] [INFO] GET /sw.js 304 1ms
[2025-12-29T20:13:24.488Z] [INFO] GET / 304 0ms
[2025-12-29T20:13:24.512Z] [INFO] GET /css/variables.css 304 0ms
[2025-12-29T20:13:24.515Z] [INFO] GET /css/components.css 304 1ms
[2025-12-29T20:13:24.516Z] [INFO] GET /css/board.css 304 2ms
[2025-12-29T20:13:24.515Z] [INFO] GET /css/base.css 304 1ms
[2025-12-29T20:13:24.517Z] [INFO] GET /css/modal.css 304 1ms
[2025-12-29T20:13:24.517Z] [INFO] GET /css/proposals.css 304 1ms
[2025-12-29T20:13:24.528Z] [INFO] GET /css/list.css 304 10ms
[2025-12-29T20:13:24.528Z] [INFO] GET /css/gitea.css 304 9ms
[2025-12-29T20:13:24.527Z] [INFO] GET /css/calendar.css 304 9ms
[2025-12-29T20:13:24.529Z] [INFO] GET /css/admin.css 304 11ms
[2025-12-29T20:13:24.529Z] [INFO] GET /css/notifications.css 304 10ms
[2025-12-29T20:13:24.529Z] [INFO] GET /css/responsive.css 304 10ms
[2025-12-29T20:13:24.546Z] [INFO] GET /js/app.js 304 16ms
[2025-12-29T20:13:24.579Z] [INFO] GET /js/store.js 304 1ms
[2025-12-29T20:13:24.580Z] [INFO] GET /js/api.js 304 1ms
[2025-12-29T20:13:24.584Z] [INFO] GET /js/offline.js 304 1ms
[2025-12-29T20:13:24.580Z] [INFO] GET /js/auth.js 304 1ms
[2025-12-29T20:13:24.581Z] [INFO] GET /js/calendar.js 304 0ms
[2025-12-29T20:13:24.584Z] [INFO] GET /js/sync.js 304 2ms
[2025-12-29T20:13:24.585Z] [INFO] GET /js/task-modal.js 304 2ms
[2025-12-29T20:13:24.585Z] [INFO] GET /js/shortcuts.js 304 2ms
[2025-12-29T20:13:24.594Z] [INFO] GET /js/undo.js 304 8ms
[2025-12-29T20:13:24.585Z] [INFO] GET /js/board.js 304 2ms
[2025-12-29T20:13:24.594Z] [INFO] GET /js/list.js 304 8ms
[2025-12-29T20:13:24.595Z] [INFO] GET /js/admin.js 304 9ms
[2025-12-29T20:13:24.595Z] [INFO] GET /js/gitea.js 304 8ms
[2025-12-29T20:13:24.595Z] [INFO] GET /js/notifications.js 304 8ms
[2025-12-29T20:13:24.595Z] [INFO] GET /js/proposals.js 304 8ms
[2025-12-29T20:13:24.613Z] [INFO] GET /js/utils.js 304 17ms
[2025-12-29T20:13:24.639Z] [INFO] GET /assets/icons/task.svg 304 2ms
[2025-12-29T20:13:25.658Z] [INFO] GET /sw.js 304 0ms
[2025-12-29T20:13:30.131Z] [WARN] Login fehlgeschlagen: Falsches Passwort - admin (Versuch 1)
[2025-12-29T20:13:30.132Z] [INFO] POST /api/auth/login 401 209ms
[2025-12-29T20:13:34.239Z] [INFO] Login erfolgreich: admin
[2025-12-29T20:13:34.239Z] [INFO] POST /api/auth/login 200 209ms
[2025-12-29T20:13:34.251Z] [INFO] GET /api/admin/users 200 3ms
[2025-12-29T20:13:34.255Z] [INFO] Socket connected: admin (D8R4yNJQCY13GHKUAAAB)
[2025-12-29T20:13:34.259Z] [INFO] GET /api/admin/upload-settings 200 3ms
[2025-12-29T20:13:41.256Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:14:06.449Z] [INFO] Backup erstellt: backup_2025-12-29T20-14-06-429Z.db
[2025-12-29T20:14:06.456Z] [INFO] Altes Backup gelöscht: backup_2025-12-22T21-43-57-007Z.db
[2025-12-29T20:14:06.457Z] [INFO] Fälligkeits-Check für Benachrichtigungen gestartet
[2025-12-29T20:14:10.533Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:14:36.691Z] [INFO] Admin admin hat Benutzer HG bearbeitet
[2025-12-29T20:14:36.696Z] [INFO] GET /api/admin/users 200 1ms
[2025-12-29T20:14:36.691Z] [INFO] PUT /api/admin/users/1 200 3ms
[2025-12-29T20:14:39.815Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:15:09.070Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:15:27.454Z] [INFO] Admin admin hat Benutzer MH bearbeitet
[2025-12-29T20:15:27.455Z] [INFO] PUT /api/admin/users/2 200 2ms
[2025-12-29T20:15:27.460Z] [INFO] GET /api/admin/users 200 1ms
[2025-12-29T20:15:31.727Z] [INFO] Logout: admin
[2025-12-29T20:15:31.728Z] [INFO] POST /api/auth/logout 200 1ms
[2025-12-29T20:15:31.737Z] [INFO] GET / 304 0ms
[2025-12-29T20:15:31.730Z] [INFO] Socket disconnected: admin (D8R4yNJQCY13GHKUAAAB)
[2025-12-29T20:15:31.752Z] [INFO] GET /css/variables.css 304 0ms
[2025-12-29T20:15:31.754Z] [INFO] GET /css/board.css 304 1ms
[2025-12-29T20:15:31.755Z] [INFO] GET /css/base.css 304 0ms
[2025-12-29T20:15:31.757Z] [INFO] GET /css/list.css 304 1ms
[2025-12-29T20:15:31.758Z] [INFO] GET /css/modal.css 304 1ms
[2025-12-29T20:15:31.756Z] [INFO] GET /css/components.css 304 0ms
[2025-12-29T20:15:31.769Z] [INFO] GET /css/notifications.css 304 11ms
[2025-12-29T20:15:31.769Z] [INFO] GET /css/calendar.css 304 11ms
[2025-12-29T20:15:31.769Z] [INFO] GET /css/gitea.css 304 11ms
[2025-12-29T20:15:31.768Z] [INFO] GET /css/proposals.css 304 10ms
[2025-12-29T20:15:31.770Z] [INFO] GET /css/admin.css 304 11ms
[2025-12-29T20:15:31.791Z] [INFO] GET /js/store.js 304 1ms
[2025-12-29T20:15:31.781Z] [INFO] GET /js/app.js 304 10ms
[2025-12-29T20:15:31.770Z] [INFO] GET /css/responsive.css 304 11ms
[2025-12-29T20:15:31.792Z] [INFO] GET /js/offline.js 304 2ms
[2025-12-29T20:15:31.803Z] [INFO] GET /js/calendar.js 304 11ms
[2025-12-29T20:15:31.791Z] [INFO] GET /js/sync.js 304 1ms
[2025-12-29T20:15:31.791Z] [INFO] GET /js/auth.js 304 2ms
[2025-12-29T20:15:31.791Z] [INFO] GET /js/api.js 304 2ms
[2025-12-29T20:15:31.802Z] [INFO] GET /js/board.js 304 10ms
[2025-12-29T20:15:31.803Z] [INFO] GET /js/list.js 304 11ms
[2025-12-29T20:15:31.804Z] [INFO] GET /js/undo.js 304 11ms
[2025-12-29T20:15:31.803Z] [INFO] GET /js/shortcuts.js 304 10ms
[2025-12-29T20:15:31.804Z] [INFO] GET /js/task-modal.js 304 11ms
[2025-12-29T20:15:31.819Z] [INFO] GET /js/notifications.js 304 14ms
[2025-12-29T20:15:31.820Z] [INFO] GET /js/utils.js 304 14ms
[2025-12-29T20:15:31.818Z] [INFO] GET /js/proposals.js 304 13ms
[2025-12-29T20:15:31.819Z] [INFO] GET /js/admin.js 304 15ms
[2025-12-29T20:15:31.821Z] [INFO] GET /js/gitea.js 304 16ms
[2025-12-29T20:15:31.842Z] [INFO] GET /assets/icons/task.svg 304 1ms
[2025-12-29T20:15:33.397Z] [INFO] GET /sw.js 304 0ms
[2025-12-29T20:15:38.358Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:15:39.211Z] [INFO] Login erfolgreich: hendrik_gebhardt@gmx.de
[2025-12-29T20:15:39.211Z] [INFO] POST /api/auth/login 200 204ms
[2025-12-29T20:15:39.221Z] [INFO] GET /api/auth/users 200 2ms
[2025-12-29T20:15:39.230Z] [INFO] Socket connected: HG (R-aFMcr14sppJUAcAAAE)
[2025-12-29T20:15:39.232Z] [INFO] Socket connected: HG (b_iKYMQ6h5n8qeivAAAF)
[2025-12-29T20:15:39.234Z] [INFO] GET /api/projects 200 4ms
[2025-12-29T20:15:39.246Z] [INFO] GET /api/stats/dashboard?projectId=4 304 6ms
[2025-12-29T20:15:39.248Z] [INFO] GET /api/columns/4 200 7ms
[2025-12-29T20:15:39.250Z] [INFO] GET /api/tasks/project/4 304 9ms
[2025-12-29T20:15:39.257Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=4 304 2ms
[2025-12-29T20:15:39.252Z] [INFO] HG joined project:[object Object]
[2025-12-29T20:15:39.251Z] [INFO] GET /api/labels/4 200 10ms
[2025-12-29T20:15:39.263Z] [INFO] GET /api/notifications 304 2ms
[2025-12-29T20:15:55.534Z] [INFO] Projekt erstellt: AccountForger (ID: 2) von HG
[2025-12-29T20:15:55.542Z] [INFO] GET /api/stats/dashboard?projectId=2 200 3ms
[2025-12-29T20:15:55.537Z] [INFO] HG left project:[object Object]
[2025-12-29T20:15:55.537Z] [INFO] HG joined project:[object Object]
[2025-12-29T20:15:55.534Z] [INFO] POST /api/projects 201 7ms
[2025-12-29T20:15:55.545Z] [INFO] GET /api/columns/2 200 3ms
[2025-12-29T20:15:55.548Z] [INFO] GET /api/labels/2 200 6ms
[2025-12-29T20:15:55.546Z] [INFO] GET /api/tasks/project/2 200 4ms
[2025-12-29T20:16:07.623Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:16:08.487Z] [INFO] Spalte aktualisiert: Offen (ID: 4)
[2025-12-29T20:16:08.488Z] [INFO] PUT /api/columns/4 200 3ms
[2025-12-29T20:16:30.707Z] [INFO] GET /api/applications/2 200 3ms
[2025-12-29T20:16:30.932Z] [INFO] GET /api/gitea/test 200 222ms
[2025-12-29T20:16:31.039Z] [INFO] GET /api/gitea/repositories?page=1&limit=50 200 103ms
[2025-12-29T20:16:36.884Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:17:06.183Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:17:35.493Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:18:04.797Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:18:34.066Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:19:03.352Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:19:32.630Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:20:01.896Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:20:31.158Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:21:00.426Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:21:29.694Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:21:58.952Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:22:28.202Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:22:57.425Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:23:26.699Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:23:55.948Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:24:25.216Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:24:54.459Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:25:23.695Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:25:52.939Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:26:22.212Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:26:51.453Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:27:20.704Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:27:49.928Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:28:19.154Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:28:48.377Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:29:17.611Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:29:46.884Z] [INFO] GET /api/health 200 1ms
[2025-12-29T20:29:51.047Z] [INFO] GET /api/applications/2 304 2ms
[2025-12-29T20:29:51.234Z] [INFO] GET /api/gitea/test 304 184ms
[2025-12-29T20:29:51.339Z] [INFO] GET /api/gitea/repositories?page=1&limit=50 304 101ms
[2025-12-29T20:30:13.839Z] [INFO] POST /api/git/validate-path 200 33ms
[2025-12-29T20:30:16.139Z] [INFO] GET /api/health 200 0ms
[2025-12-29T20:30:18.870Z] [INFO] Anwendung erstellt für Projekt 2
[2025-12-29T20:30:18.871Z] [INFO] POST /api/applications 200 4ms
[2025-12-29T20:30:18.924Z] [INFO] Remote 'origin' aktualisiert: https://gitea-undso.aegis-sight.de/AegisSight/TaskMate.git
[2025-12-29T20:30:18.951Z] [INFO] Repository für Gitea vorbereitet: C:\Users\hendr\Desktop\IntelSight\Projektablage\TaskMate -> https://gitea-undso.aegis-sight.de/AegisSight/TaskMate.git
[2025-12-29T20:30:18.951Z] [INFO] Repository vorbereitet für Projekt 2: https://gitea-undso.aegis-sight.de/AegisSight/TaskMate.git
[2025-12-29T20:30:18.952Z] [INFO] POST /api/git/prepare/2 200 78ms
[2025-12-29T20:30:18.957Z] [INFO] GET /api/applications/2 200 2ms
[2025-12-29T20:30:19.233Z] [INFO] GET /api/git/status/2 200 271ms
[2025-12-29T20:30:19.291Z] [INFO] GET /api/git/branches/2 200 57ms
[2025-12-29T20:30:19.347Z] [INFO] GET /api/git/commits/2?limit=10 200 56ms

2
nul
Datei anzeigen

@ -1,2 +0,0 @@
C\:\\Users\\hendr\\Desktop\\IntelSight\\Projektablage\\Aufgabenverwaltung\\frontend:
css index.html js sw.js