Leopoldadmin
|
afb9e86c50
|
A: Add AddressList tab to CompanyDetail.tsx
|
2026-07-04 01:42:11 +00:00 |
|
Leopoldadmin
|
5319ac2538
|
C4: Update routes/index.tsx — add routes for currencies, taxes, sequences
|
2026-07-04 01:37:04 +00:00 |
|
Leopoldadmin
|
3b12c70a7e
|
C4: Update Settings.tsx — add nav items for currencies, taxes, sequences
|
2026-07-04 01:37:03 +00:00 |
|
Leopoldadmin
|
9bde2d7e7a
|
C4: Add SettingsSequences.tsx — CRUD UI for sequences (no edit of next_number)
|
2026-07-04 01:37:03 +00:00 |
|
Leopoldadmin
|
41b4b885dc
|
C4: Add SettingsTaxes.tsx — CRUD UI for tax rates
|
2026-07-04 01:37:02 +00:00 |
|
Leopoldadmin
|
0cb36d6f2a
|
C4: Add SettingsCurrencies.tsx — CRUD UI for currencies
|
2026-07-04 01:37:01 +00:00 |
|
Leopoldadmin
|
26a01f706f
|
A: Add AddressList.tsx component — list, create, edit, delete, set default
|
2026-07-04 01:37:01 +00:00 |
|
Leopoldadmin
|
d0817427c1
|
feat(core): add attachment API hooks
|
2026-07-04 00:29:39 +00:00 |
|
Leopoldadmin
|
1e03c84591
|
feat(core): add systemSettings i18n keys (en)
|
2026-07-04 00:27:21 +00:00 |
|
Leopoldadmin
|
0727e5a505
|
feat(core): add systemSettings i18n keys (de)
|
2026-07-04 00:27:20 +00:00 |
|
Leopoldadmin
|
e59bbc7a11
|
feat(core): add system settings, currency, tax, sequence API hooks
|
2026-07-04 00:27:20 +00:00 |
|
Leopoldadmin
|
d17615fa45
|
feat(core): add SettingsSystem route
|
2026-07-04 00:27:20 +00:00 |
|
Leopoldadmin
|
8bbc49fb12
|
feat(core): add System settings nav item
|
2026-07-04 00:27:19 +00:00 |
|
Leopoldadmin
|
afbad3d7e4
|
feat(core): add SettingsSystem page
|
2026-07-04 00:26:22 +00:00 |
|
Leopoldadmin
|
72b2ac82ea
|
feat(core): add sequence i18n keys (en)
|
2026-07-04 00:24:41 +00:00 |
|
Leopoldadmin
|
3031e81b2c
|
feat(core): add sequence i18n keys (de)
|
2026-07-04 00:24:41 +00:00 |
|
Leopoldadmin
|
74a81b147c
|
feat(core): add currency and tax i18n keys (en)
|
2026-07-04 00:22:27 +00:00 |
|
Leopoldadmin
|
b26e2e3c5d
|
feat(core): add currency and tax i18n keys (de)
|
2026-07-04 00:22:26 +00:00 |
|
Leopoldadmin
|
dfa4a82e8d
|
feat(core): add address i18n keys (en)
|
2026-07-04 00:20:46 +00:00 |
|
Leopoldadmin
|
1e74efd2b4
|
feat(core): add address i18n keys (de)
|
2026-07-04 00:20:46 +00:00 |
|
Leopoldadmin
|
bc0aae0325
|
feat(core): add address fields to ContactForm
|
2026-07-04 00:20:30 +00:00 |
|
Leopoldadmin
|
f31baa444a
|
feat(core): add address fields to CompanyForm
|
2026-07-04 00:20:29 +00:00 |
|
Leopoldadmin
|
2deb7ed21c
|
Problem 3/5: Add i18n keys for systemPermissions, pluginPermissions, noPermissions, userDeleted, deleteUserConfirm (en)
|
2026-07-03 20:37:46 +00:00 |
|
Leopoldadmin
|
5991d79324
|
Problem 3/5: Add i18n keys for systemPermissions, pluginPermissions, noPermissions, userDeleted, deleteUserConfirm (de)
|
2026-07-03 20:26:26 +00:00 |
|
Leopoldadmin
|
0d3550ec86
|
Problem 1+5: Dynamic roles dropdown via useRoles(), delete button with ConfirmDialog, fixed create form
|
2026-07-03 20:11:04 +00:00 |
|
Leopoldadmin
|
493d99aff2
|
Problem 3/4: Replace hardcoded ALL_PERMISSIONS with usePermissions API call, group by category
|
2026-07-03 20:07:53 +00:00 |
|
Leopoldadmin
|
68b5153139
|
Problem 3/4: Add usePermissions hook + PermissionItem/PermissionsResponse interfaces
|
2026-07-03 20:02:32 +00:00 |
|
Leopoldadmin
|
a799a3d0e6
|
Problem 2: Remove dead System nav item from Settings sidebar
|
2026-07-03 19:50:18 +00:00 |
|
Leopoldadmin
|
962ac66f72
|
feat: add plugin and role translation keys to en.json
|
2026-07-03 15:24:01 +00:00 |
|
Leopoldadmin
|
dda972187a
|
feat: add plugin and role translation keys to de.json
|
2026-07-03 15:24:00 +00:00 |
|
Leopoldadmin
|
502cddd68c
|
feat: add useRoles/useCreateRole/useUpdateRole/useDeleteRole and plugin mutation hooks
|
2026-07-03 15:23:59 +00:00 |
|
Leopoldadmin
|
eb0420d726
|
feat: add SettingsPluginsPage import and /settings/plugins route
|
2026-07-03 15:23:58 +00:00 |
|
Leopoldadmin
|
ce4d41c1b8
|
feat: add plugins nav item to Settings page
|
2026-07-03 15:23:58 +00:00 |
|
Leopoldadmin
|
1aa6d1ffa9
|
refactor: SettingsRoles.tsx - use API hooks instead of hardcoded data, add delete role
|
2026-07-03 15:23:57 +00:00 |
|
Leopoldadmin
|
d26efa5bb7
|
fix: SettingsPlugins.tsx with actual content - plugin management page
|
2026-07-03 15:23:55 +00:00 |
|
Leopoldadmin
|
e655311cac
|
feat: add SettingsPlugins.tsx - plugin management page with install/activate/deactivate/uninstall
|
2026-07-03 15:22:36 +00:00 |
|
leocrm-bot
|
0070fb3aea
|
T08c: Frontend Mail UI + Global Search UI — 44 tests, tsc clean, vite build pass
- Mail page: 3-pane layout (folder tree + mail list + reading pane)
- Compose modal: rich text editor (bold/italic/link), template picker, reply/forward pre-fill
- Mail settings: accounts, signatures, rules, labels, vacation, PGP (6 tabs)
- Shared mailbox selector: switch between personal + shared accounts
- Mail search bar + attachment download + create-event-from-mail
- Global search: tabs for companies/contacts/mails/files/events
- Search autocomplete in TopBar (existing SearchDropdown)
- API client: mail.ts (all endpoints)
- Routes: /mail, /mail/settings
- i18n: de.json + en.json mail + search translations
- 44 new tests (4 test files), full regression 318/318 pass
- tsc --noEmit: 0 errors, vite build: 267 modules
|
2026-07-01 20:43:49 +02:00 |
|
leocrm-bot
|
0962f3a961
|
T08a: Frontend DMS + Tags + Permissions UI — 33 tests, tsc clean, vite build pass
- DMS file browser: folder tree + file grid + upload dropzone + search + preview modal
- DMS share dialog: user/group share + public share links with password+expiry
- DMS bulk actions: bulk move + bulk delete with confirm dialogs
- DMS trash view: deleted files list with restore button
- Tags: TagPicker on company/contact detail pages (new tabs tab)
- Tags: TagCloud + BulkTagDialog for bulk tag assignment
- Permissions: share link creation, permission display, copy-link button
- API clients: dms.ts, tags.ts, permissions.ts
- Routes: /dms, /dms/trash added to router
- Sidebar: DMS nav link updated
- i18n: de.json + en.json translations for DMS/Tags/Permissions
- 33 new tests (5 test files), full regression 276/276 pass
- tsc --noEmit: 0 errors, vite build: 252 modules
|
2026-07-01 16:54:32 +02:00 |
|
leocrm-bot
|
e28d11ff70
|
fix(tests): resolve 11 test failures across all test suites
- Input.tsx: add required={required} native attribute for HTML5 validation
- Card.tsx: spread ...rest to forward data-testid
- CompanyForm.tsx: add noValidate to bypass native validation in tests
- ContactForm.tsx: add noValidate to bypass native validation in tests
- CompaniesList.test.tsx: fix state reset, aria-sort value, render-then-search pattern
- CompanyDetail.test.tsx: use getByRole instead of getByText for headings
- CompanyForm.test.tsx: extract shared mockMutateAsync instance
- ContactsList.test.tsx: fix aria-sort value to 'ascending' (ARIA spec)
- SettingsRoles.test.tsx: fix selector to input:not([type=checkbox])
All 112 tests pass, tsc clean, vite build successful
|
2026-06-30 13:50:47 +02:00 |
|
A0-Orchestrator
|
7350739554
|
T08b: Frontend Calendar UI (month view, kanban, ICS, resources, sharing)
- 8 calendar components (MonthView, KanbanBoard, AppointmentModal, TaskDetailPanel, IcsControls, ResourceBooking, SharingSettings + API client)
- 2 pages (/calendar, /calendar/kanban) + zustand store
- 17 vitest tests (MonthView 5, KanbanBoard 6, AppointmentModal 6) all passing
- i18n: calendar namespace in en/de (104 lines each, +exportSuccess key)
- TS strict mode pass, npm run build pass
|
2026-06-30 11:35:08 +02:00 |
|
leocrm-bot
|
700b7a71ad
|
T07b: frontend feature pages — companies + contacts + settings + audit + dashboard + search
- 11 new feature pages (CompaniesList/Detail/Form, ContactsList/Detail/Form,
SettingsProfile/Roles/Users, AuditLog, GlobalSearchResults)
- 3 page updates (Dashboard with StatCard+ActivityFeed, Settings with tree nav+Outlet,
TopBar with SearchDropdown)
- 13 new routes in routes/index.tsx
- i18n updates (de.json + en.json) with companies/contacts/settings/audit/search keys
- 12 new test files + 2 existing test fixes (TopBar, AppShell)
- 7 shared components (DataGrid, Tabs, SearchDropdown, CsvImportDialog, StatCard,
ActivityFeed, UnsavedChangesGuard)
- 16 new API hooks in hooks.ts
- Verification: 141 tests pass, build succeeds, tsc --noEmit clean
|
2026-06-29 11:01:39 +02:00 |
|
leocrm-bot
|
22976abe92
|
T07a: frontend core SPA — shell + auth + routing + i18n + UI library + a11y
- React 18 + Vite + TypeScript + Tailwind CSS setup
- AppShell with Sidebar (plugin menu) + TopBar (tenant switcher, search, notifications, user menu)
- Auth pages: Login, PasswordResetRequest, PasswordResetConfirm
- Protected routes with auth guard
- API client (axios with interceptors: session cookie, 401 redirect, 422 validation)
- TanStack Query hooks for auth, users, companies, contacts, notifications
- Zustand stores: authStore, uiStore
- i18n setup (de/en locales) with react-i18next
- UI component library: Button, Input, Select, Modal, Toast, Table, Card, Badge, Avatar, Pagination, EmptyState, Skeleton, ConfirmDialog
- Accessibility: ARIA labels, 44px touch targets, keyboard nav, reduced-motion, sr-only
- Design tokens from prototype as CSS custom properties
- 111 tests passing across 20 test files
- tsc --noEmit: 0 errors
- npm run build: success (471KB JS, 24KB CSS)
|
2026-06-29 08:02:15 +02:00 |
|