Commit Graph

241 Commits

Author SHA1 Message Date
df55212a6d feat(dropdown-menu-component): DropdownMenu mit Items [tsc:fail] 2026-05-23 09:53:44 +02:00
304e86dd42 feat(progress-bar-component): ProgressBar mit Animation [tsc:fail] 2026-05-23 09:49:34 +02:00
eb8f225e85 feat(alert-component): Alert-Banner mit dismiss [tsc:fail] 2026-05-23 09:49:22 +02:00
8c9a0e8674 feat(accordion-component): Accordion mit collapsible Sections [tsc:fail] 2026-05-23 09:49:00 +02:00
11f4d10645 feat(tabs-component): Tabs mit aktivem State [tsc:fail] 2026-05-23 09:48:43 +02:00
727f1a45ef feat(color-picker-component): ColorPicker mit Preset-Swatches [tsc:fail] 2026-05-23 09:44:37 +02:00
e0db2668b3 feat(pagination-component): Pagination mit Prev/Next + Page-Numbers [tsc:fail] 2026-05-23 09:44:19 +02:00
581d3334eb feat(divider-component): Divider horizontal/vertikal [tsc:fail] 2026-05-23 09:43:56 +02:00
bd0c071efa feat(avatar-component): Avatar mit Initial-Fallback [tsc:fail] 2026-05-23 09:43:45 +02:00
0b4d4029a0 feat(status-dot-component): StatusDot für Indicator (online/offline/busy) [tsc:fail] 2026-05-23 09:39:17 +02:00
d50d5253ca feat(card-component): Card-Container mit padding/shadow [tsc:fail] 2026-05-23 09:39:04 +02:00
d8ae2e0200 feat(badge-component): Badge mit color-variants [tsc:fail] 2026-05-23 09:38:54 +02:00
14bb8fd16a feat(tooltip-component): Tooltip mit hover-delay [tsc:fail] 2026-05-23 09:38:42 +02:00
e8df82e0f0 feat(copy-to-clipboard-component): CopyButton mit visual feedback [tsc:fail] 2026-05-23 09:34:15 +02:00
72025919f3 feat(button-loading-states): Button mit loading-prop zeigt Spinner [tsc:fail] 2026-05-23 09:34:02 +02:00
9a71f7e13e feat(empty-state-illustrations): EmptyState-Component für leere Listen [tsc:fail] 2026-05-23 09:33:49 +02:00
141c7f81dd feat(toast-undo-pattern): Toast mit Undo-Button bei Delete-Actions [tsc:fail] 2026-05-23 09:33:36 +02:00
b6c1dd21f0 feat(meta-tags-and-title): Page-Titles + Meta-Description aktualisieren beim Route-Chan [tsc:fail] 2026-05-23 09:30:29 +02:00
809dc95dd5 feat(loading-everywhere): LoadingSpinner consistent in allen Pages [tsc:fail] 2026-05-23 09:30:25 +02:00
3fd79e0747 feat(accessibility-final): ARIA labels + keyboard-trap-modal-fix + focus-management [tsc:fail] 2026-05-23 09:26:34 +02:00
f371eeb3be feat(api-error-pages): 500-Error-Page bei API-Down [tsc:fail] 2026-05-23 09:26:06 +02:00
960b1f9dfd feat(404-not-found-page): 404-Page als catchall Route [tsc:fail] 2026-05-23 09:24:53 +02:00
46ef0d44cc feat(dashboard-favorites-section): Dashboard zeigt Favorites als Quick-Access [tsc:fail] 2026-05-23 09:22:13 +02:00
a36f1a6096 feat(onboarding-improvements): Onboarding-Tour: 3 Schritte (Dashboard → Customer anlegen → [tsc:fail] 2026-05-23 09:20:46 +02:00
d6fe3ba005 feat(more-keyboard-shortcuts): ? für Help, G+H for home, etc — Hotkey-Registry [tsc:fail] 2026-05-23 09:19:54 +02:00
29646c8015 feat(favorites-system): User kann Customer/Project favoritisieren (localStorage) [tsc:fail] 2026-05-23 09:19:24 +02:00
eb65bea128 feat(recently-viewed-widget): Recently-Viewed Widget für Dashboard (last 5 customers + pro [tsc:fail] 2026-05-23 09:19:02 +02:00
2fe907da4e feat(breadcrumbs-everywhere): Breadcrumb auf allen List-Pages [tsc:fail] 2026-05-23 09:15:44 +02:00
43861d5ff9 feat(time-entry-clone): Clone-Button pro TimeEntry (copy + reset time) [tsc:fail] 2026-05-23 09:10:31 +02:00
969f7be8f6 feat(project-billing-rate): Project bekommt billingRate (€/h) [tsc:fail] 2026-05-23 09:08:36 +02:00
6e7f2a4514 feat(customer-contact-info): Customers: contactEmail + contactPhone optional fields [tsc:fail] 2026-05-23 09:06:25 +02:00
2f76905156 feat(pdf-improvements): Report-PDF-Endpoint verbessern mit besserer Formatierung [tsc:fail] 2026-05-23 08:59:35 +02:00
43f2e030b1 feat(budget-alerts-email): Email-Stub-Send wenn Project-Budget >100% (in webhookDispatc [tsc:fail] 2026-05-23 08:59:07 +02:00
570be9c6d8 feat(search-pagination): Pagination in search-results (10 per page) [tsc:fail] 2026-05-23 08:58:44 +02:00
c5d0d3b0ef feat(bulk-customer-tag): Bulk-Add-Tag zu mehreren Customers [tsc:fail] 2026-05-23 08:57:43 +02:00
571b564508 feat(advanced-filters): AdvancedFilters für TimeEntries: status, project, user, bill [tsc:fail] 2026-05-23 08:56:08 +02:00
f9ccda43ec feat(performance-memoization): React.memo + useMemo in heavy Lists (Customers, Projects, Ti [tsc:fail] 2026-05-23 08:54:17 +02:00
a2a81d0205 feat(hover-tooltips): Tooltip-Component (für Icon-Only-Buttons) [tsc:fail] 2026-05-23 08:52:26 +02:00
fb3a7d6c0e feat(confirm-modal): Reusable Confirm-Modal statt window.confirm() [tsc:fail] 2026-05-23 08:52:18 +02:00
5cf7aa333f feat(empty-state-illustrations): EmptyState erweitert: Emoji + bessere Hierarchie [tsc:fail] 2026-05-23 08:52:00 +02:00
902b2c536f feat(loading-skeletons): Skeleton-Component für Tabellen während Loading [tsc:fail] 2026-05-23 08:51:45 +02:00
923700986f feat(router-phase25): Mount /holidays + /role-permissions Routes [tsc:fail] 2026-05-23 08:48:40 +02:00
dc41a7463c feat(api-client-phase25): API um holidays endpoints [tsc:fail] 2026-05-23 08:47:18 +02:00
3ed9379e83 feat(role-permissions-page): Admin-Page zum Anzeigen welche Permissions welche Rolle hat [tsc:fail] 2026-05-23 08:46:36 +02:00
1f83bb7148 feat(holiday-calendar): Holiday-Tabelle + Page für admin (Feiertage definieren) [tsc:fail] 2026-05-23 08:45:57 +02:00
0de4188743 feat(default-project-per-customer): Customer kann ein default-Project haben (für Quick-Entries) [tsc:fail] 2026-05-23 08:44:06 +02:00
6f74757aff feat(working-hours-config): appSettings.workingHoursPerDay für Tagesziel-Anzeige [tsc:fail] 2026-05-23 08:43:29 +02:00
c848a2ad52 feat(export-improvements): Export-Button auch in Customers + Projects [tsc:fail] 2026-05-23 08:40:07 +02:00
667d626397 feat(project-archive-icon): Archive-Icon-Button pro Project (Soft-Archive via active=fal [tsc:fail] 2026-05-23 08:38:18 +02:00
f8aac22d93 feat(billing-history-table): Billing-Page bekommt Mock-Rechnungshistorie [tsc:fail] 2026-05-23 08:36:50 +02:00
fce954b096 feat(workspace-switcher-stub): Workspace-Switcher-Dropdown (Stub mit single workspace) [tsc:fail] 2026-05-23 08:35:42 +02:00
1e97fb28f2 feat(notification-bell): Bell-Icon in Nav mit unread count + dropdown letzte 10 Audit [tsc:fail] 2026-05-23 08:35:21 +02:00
5b41a4d49f feat(drag-resize-widgets): Dashboard-Widgets: resizable via drag-Handle (CSS-resize) [tsc:fail] 2026-05-23 08:31:53 +02:00
3da3a1eb05 feat(animated-transitions): Page-Transitions mit fade-in beim Route-Change [tsc:fail] 2026-05-23 08:30:30 +02:00
778b7426f2 feat(command-bar-actions): CommandPalette mit Aktionen (z.B. 'New TimeEntry', 'Toggle D [tsc:fail] 2026-05-23 08:29:17 +02:00
602ccce46e feat(custom-themes): 3 Color-Themes wählbar (Ember/Ocean/Forest) [tsc:fail] 2026-05-23 08:28:06 +02:00
62e135bc04 feat(workspace-logo): Logo-Feld auf appSettings + Anzeige in Nav [tsc:fail] 2026-05-23 08:27:37 +02:00
7651e9777b feat(screen-recording-attach-stub): 'Screen-Recording aufnehmen' Stub-Button (kein echtes record [tsc:fail] 2026-05-23 08:23:47 +02:00
bfae276a1e feat(ui-polish): Globale UI-Verbesserungen (hover-states, focus-rings, transi [tsc:fail] 2026-05-23 08:21:45 +02:00
2ef0824fb5 feat(project-favicons): Pro Project ein favicon (emoji oder initial) [tsc:fail] 2026-05-23 08:21:37 +02:00
1150dd635f feat(popout-tracker): Active-Timer als Popup-Window (window.open) [tsc:fail] 2026-05-23 08:19:25 +02:00
61d337844c feat(voice-input-stub): Voice-Input-Stub via Web Speech API für TimeEntry descriptio [tsc:fail] 2026-05-23 08:18:05 +02:00
8248eb910f feat(router-phase21): Mount /templates Route + Nav-Link + UndoStack global [tsc:fail] 2026-05-23 08:16:43 +02:00
e5877d05d6 feat(time-entry-templates-page): UI-Page für TimeEntry-Templates CRUD [tsc:fail] 2026-05-23 08:14:55 +02:00
f7cc7eb8fe feat(color-coded-customer-rows): Customer-Rows mit Hash-basierter Pastell-Background-Color [tsc:fail] 2026-05-23 08:13:58 +02:00
dc905cdf10 feat(smart-rounding-on-input): Bei Time-Entry-Submit: round endTime auf appSettings.roundin [tsc:fail] 2026-05-23 08:12:10 +02:00
2d04a9ae8c feat(snippet-shortcuts): Snippet-Expander: ';daily' → 'Daily standup', ';mtg' → 'Meet [tsc:fail] 2026-05-23 08:10:14 +02:00
fb67391eb8 feat(keyboard-undo-stack): Ctrl+Z für letzte delete-Action (in-memory undo-stack) [tsc:fail] 2026-05-23 08:10:01 +02:00
3cfe79a523 feat(api-client-phase20): API: pinned-customers + budget-update Endpoints [tsc:fail] 2026-05-23 08:08:44 +02:00
fc54ffeb58 feat(budget-alerts): Toast-Warning bei Project-Budget >80% und >100% [tsc:fail] 2026-05-23 08:08:01 +02:00
6fed550736 feat(github-link-on-entries): GitHub-Link-Feld pro TimeEntry (z.B. PR-URL) [tsc:fail] 2026-05-23 08:06:13 +02:00
b50cec4fe5 feat(slack-integration-stub): Slack-Integration-Stub Card auf Integrations-Page [tsc:fail] 2026-05-23 08:03:40 +02:00
04a9f3e014 feat(recurring-time-entries): Template-System für wiederkehrende Entries (z.B. Daily-Stand [tsc:fail] 2026-05-23 08:02:18 +02:00
94a5b451dc feat(time-budget-per-project): Budget-Feld (Stunden) pro Project + Anzeige used/total [tsc:fail] 2026-05-23 08:00:25 +02:00
002007a4c8 feat(router-phase19): Mount invitations + accept-invite public route [tsc:fail] 2026-05-23 07:49:19 +02:00
8b1755b085 feat(api-client-phase19): API erweitern um invitations, accept, presence [tsc:fail] 2026-05-23 07:48:04 +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
739e957d8d feat(search-history): Letzte 10 Sucheinträge des Users persistieren (localStorage) [tsc:fail] 2026-05-23 07:46:30 +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
dc9b42d601 feat(idle-detection): Idle-Detection: nach 5min Inaktivität Active-Timer pausieren [tsc:fail] 2026-05-23 07:34:24 +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
fd6e79c795 feat(api-client-phase17): API um bulk-rename, customer-merge erweitert [tsc:fail] 2026-05-23 07:29:02 +02:00
9a6cb779ee feat(time-entry-quick-edit): Inline-Edit für TimeEntry-Description (Klick auf Description [tsc:fail] 2026-05-23 07:28:08 +02:00
738acb36a6 feat(smart-filter-suggestions): Saved-Views-Vorschläge basierend auf häufig benutzten Filter [tsc:fail] 2026-05-23 07:26:25 +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
fb6adcf85a feat(calendar-month-view): Monatsansicht für TimeEntries (Grid 6 weeks × 7 days) [tsc:fail] 2026-05-23 07:19:49 +02:00
a3452bda75 feat(router-phase16): Mount time-entry-templates route [tsc:fail] 2026-05-23 07:17:23 +02:00
fb3441cb5a feat(api-client-phase16): API um time-entry-templates erweitert [tsc:fail] 2026-05-23 07:17:07 +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
ce80e5d637 feat(recent-projects-quick-access): Recent-Projects-Widget für schnellen Project-Select [tsc:fail] 2026-05-23 07:15:09 +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