Commit Graph

72 Commits

Author SHA1 Message Date
002007a4c8 feat(router-phase19): Mount invitations + accept-invite public route [tsc:fail] 2026-05-23 07:49:19 +02:00
15cfd36b2e feat(presence-stub): User-Presence-Stub (online/offline-Status basierend auf last [tsc:fail] 2026-05-23 07:47:20 +02:00
29b744f08d feat(rate-limiting-stub): In-Memory Rate-Limiter pro IP (Stub für /api/auth/*) [tsc:fail] 2026-05-23 07:45:33 +02:00
f695a65d9d feat(invitation-flow): User-Invites: admin sendet email, recipient setzt Passwort [tsc:fail] 2026-05-23 07:44:43 +02:00
ac922348ba feat(router-phase18): Mount + UI-Routen für api-keys, comments [tsc:fail] 2026-05-23 07:37:22 +02:00
f299a57da9 feat(api-client-phase18): API um apikeys + audit-filters + comments erweitern [tsc:fail] 2026-05-23 07:36:10 +02:00
8821b76407 feat(time-entry-comments): Kommentare/Notes pro TimeEntry als Thread [tsc:fail] 2026-05-23 07:35:23 +02:00
050a369615 feat(audit-log-filters): Audit-Log mit Filter (user, action, date-range) [tsc:fail] 2026-05-23 07:32:56 +02:00
e4e24c22cb feat(api-key-management): API-Keys für users (für REST-Programmzugriff) [tsc:fail] 2026-05-23 07:31:45 +02:00
90a66efc76 feat(customer-merge): Merge zwei Customers: source-Projects auf target umhängen, d [tsc:fail] 2026-05-23 07:24:24 +02:00
7d65d8bdab feat(batch-rename-projects): Bulk-Select + rename Projects via Mutation [tsc:fail] 2026-05-23 07:21:57 +02:00
a3452bda75 feat(router-phase16): Mount time-entry-templates route [tsc:fail] 2026-05-23 07:17:23 +02:00
c067da74f9 feat(dark-mode-improvements): Dark-Mode CSS-Polish (bessere Kontraste in Tables, Forms) [tsc:fail] 2026-05-23 07:16:21 +02:00
44ffc813c7 feat(time-entry-templates): Wiederverwendbare TimeEntry-Templates (gespeicherte descript [tsc:fail] 2026-05-23 07:16:15 +02:00
6f5c19e929 feat(smart-suggestions): Auto-suggest Description basierend auf letzten Einträgen [tsc:fail] 2026-05-23 07:12:53 +02:00
ace589baee feat(pinned-customers): Star/Pin Customers an die Top der Liste [tsc:fail] 2026-05-23 07:10:42 +02:00
939d72a593 feat(router-phase15): Mount neue routes [tsc:fail] 2026-05-23 07:07:13 +02:00
43c191695b feat(weekly-summary-email-stub): Cron-stub für weekly-summary-email (Endpoint manuell trigger [tsc:fail] 2026-05-23 07:04:57 +02:00
df033a7b84 feat(password-reset): Password-Reset-Flow (Request + Set new via token) [tsc:fail] 2026-05-23 07:04:26 +02:00
d8bb1b2c38 feat(webhook-trigger-events): Echter Webhook-Send bei TimeEntry-Create/Update/Delete [tsc:fail] 2026-05-23 07:02:07 +02:00
d7a4c1ff85 feat(saved-views): Saved-Filter-Views für TimeEntries (named presets) [tsc:fail] 2026-05-23 07:00:45 +02:00
c497c966ea feat(file-attach-to-entry): TimeEntries kann Anhänge haben (Multi-Documents-Link) [tsc:fail] 2026-05-23 06:55:44 +02:00
d03cb2491b feat(router-phase12): App + routes/index für /invoices [tsc:fail] 2026-05-23 06:41:11 +02:00
68158b7cb7 feat(time-rounding-rules): Settings-Option: Rundung für Time-Entries (5/15/30 min) [tsc:fail] 2026-05-23 06:36:29 +02:00
c0e8e3611e feat(invoicing-stub): Invoices-Page (read-only stub generated from billable time-e [tsc:fail] 2026-05-23 06:35:10 +02:00
6c8743dcdb feat(router-phase11): routes/index.ts mount reports [tsc:fail] 2026-05-23 06:31:34 +02:00
2a43f370b5 feat(pdf-export-stub): PDF-Export-Endpoint für Reports (Stub — generiert text mit . [tsc:fail] 2026-05-23 06:30:37 +02:00
c3bdf1e5f4 feat(project-cloning): Project-Clone Endpoint + UI-Button [tsc:fail] 2026-05-23 06:29:04 +02:00
864ef03ca4 feat(time-entry-csv-import): TimeEntries-CSV-Import (multipart) [tsc:fail] 2026-05-23 06:26:17 +02:00
e1ddeee598 feat(onboarding-tour): Onboarding-Tour-Component (intro.js-Style overlay) [tsc:fail] 2026-05-23 06:23:13 +02:00
54fa5ccc3b feat(router-phase10): App + routes/index für /project-templates [tsc:fail] 2026-05-23 06:20:28 +02:00
087ee2c83a feat(project-templates): Wiederverwendbare Project-Templates (admin) [tsc:fail] 2026-05-23 06:16:21 +02:00
42f57beb08 feat(customer-tags): Tags-Feld bei Customers + Filter-by-Tag [tsc:fail] 2026-05-23 06:14:38 +02:00
ff82a45c65 feat(markdown-notes-time-entry): Markdown-Notes-Feld pro Time-Entry + Render in Liste [tsc:fail] 2026-05-23 06:13:06 +02:00
c438b8c95e feat(router-phase9): App + routes/index für phase9 Routes [tsc:fail] 2026-05-23 06:08:29 +02:00
791e6069d6 feat(webhooks-config): Outgoing-Webhooks Tabelle + CRUD + UI [tsc:fail] 2026-05-23 06:04:08 +02:00
5642b34061 phase-8: complete + claude-fix documents.name + User type 2026-05-23 06:01:36 +02:00
23c95940e6 feat(project-stats-page): Project-Stats: Stunden total, monthly chart, top contributor [tsc:fail] 2026-05-23 05:59:05 +02:00
454b85b4e2 feat(account-deletion): User kann eigenes Account löschen (Profile-Page) [tsc:fail] 2026-05-23 05:57:27 +02:00
ffd838fd49 feat(customer-csv-import): CSV-Import für Customers (admin) + Upload-UI [tsc:fail] 2026-05-23 05:55:08 +02:00
3b631b2aed feat(time-entry-bulk-actions): Bulk-Select + bulk-delete in TimeEntries-Page [tsc:fail] 2026-05-23 05:53:42 +02:00
38bdd1555d feat(recent-activity-widget): Recent-Activity-Feed im Dashboard (letzte 10 Audit-Log-Eintr [tsc:fail] 2026-05-23 05:51:29 +02:00
a3c24339ae feat(router-phase7): App + routes/index für phase7 Routes [tsc:fail] 2026-05-23 05:45:54 +02:00
47a34e49d2 feat(api-client-phase7): API um docs + search erweitert [tsc:fail] 2026-05-23 05:45:00 +02:00
0b33877c70 feat(email-notification-stub): Email-Service-Stub für Notifications (console-log only, kein [tsc:fail] 2026-05-23 05:43:30 +02:00
39bdd9d62c feat(search-everywhere): Global Search API + Search-Bar component [tsc:fail] 2026-05-23 05:42:39 +02:00
26805dca90 feat(documents-upload): File-Upload via @fastify/multipart + Documents-Page [tsc:fail] 2026-05-23 05:41:42 +02:00
c99263ad4e claude-fix: auditLog import, theme.ts typo, date-fns dep 2026-05-23 05:39:20 +02:00
01635d6e7c feat(router-phase6): App.tsx + Nav + routes/index für phase6 [tsc:ok] 2026-05-23 05:36:48 +02:00
d146a68174 feat(audit-log): Audit-Log Tabelle + Page (admin-only) [tsc:fail] 2026-05-23 05:33:03 +02:00