Commit Graph

53 Commits

Author SHA1 Message Date
Agent Zero 0d882eaca5 fix: mail plugin CSRF token handling and trailing slash
- Add CSRF token storage in sessionStorage (persists across reloads)
- Send X-CSRF-Token header on POST/PATCH/DELETE requests
- Store CSRF token on login, clear on logout
- Fix trailing slash in mail list API call (/mail/ -> /mail)
2026-07-15 01:54:11 +02:00
leocrm-bot ee4b16d98b fix: remove Users and Settings from sidebar navigation 2026-07-07 07:15:02 +02:00
Leopoldadmin 7a42cf3457 i18n: Fix en.json — full content with address type keys, address UI labels, currencies/taxes/sequences add+confirmDelete 2026-07-04 07:19:36 +00:00
Leopoldadmin cbb67dac09 i18n: Fix de.json — full content with address type keys, address UI labels, currencies/taxes/sequences add+confirmDelete 2026-07-04 07:18:36 +00:00
Leopoldadmin fdf4ea4213 A: Remove address fields from ContactForm — addresses now via AddressList in detail view 2026-07-04 07:17:08 +00:00
Leopoldadmin 039a3e5a26 A: Remove address fields from CompanyForm — addresses now via AddressList in detail view 2026-07-04 07:17:07 +00:00
Leopoldadmin 49dca39511 i18n: Add address type keys, address UI labels, currencies/taxes/sequences add+confirmDelete to en.json 2026-07-04 07:17:07 +00:00
Leopoldadmin 15a1175bcb i18n: Add address type keys, address UI labels, currencies/taxes/sequences add+confirmDelete to de.json 2026-07-04 07:17:06 +00:00
Leopoldadmin bfd65af978 A: Fix hooks.ts — add address hooks (useAddresses, useCreateAddress, useUpdateAddress, useDeleteAddress), useUpdateSequence, useDeleteSequence, fix audit-log endpoint URL 2026-07-04 01:44:51 +00:00
Leopoldadmin e3f8543102 Update frontend/src/api/hooks.ts 2026-07-04 01:42:12 +00:00
Leopoldadmin a61531ca19 A: Add AddressList tab to ContactDetail.tsx 2026-07-04 01:42:11 +00:00
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