Agent Zero
e0975f4044
fix: mail UI German labels, multi-folder sync, account management, resizable panel fix
2026-07-15 14:36:45 +02:00
Agent Zero
0409a08002
feat(mail): resizable columns, account in folder tree, mail settings in CRM settings
...
- Add ResizablePanel component (components/ui/ResizablePanel.tsx) with
drag-to-resize via mouse events, no external dependencies
- Replace fixed-width columns in Mail.tsx with ResizablePanel for all
three panes (folder tree, mail list, mail detail)
- Remove account-select toolbar item from Mail.tsx; account selection
is now integrated into the folder tree
- Restructure MailFolderTree to show mail accounts as top-level nodes
with folders nested underneath, built from flat list via parent_id
- Add expand/collapse chevrons for accounts and folders with children
- Load folders for ALL accounts (not just selected one) so multi-account
tree works
- Derive selectedAccountId from selected folder instead of separate
account selector
- Add Mail tab to CRM Settings page (Settings.tsx) with 📧 icon
- Add /settings/mail route pointing to MailSettingsPage
- Update settings link in mail toolbar to point to /settings/mail
- Update no-accounts empty state link to /settings/mail
2026-07-15 13:37:22 +02:00
Agent Zero
5693fe1c3a
fix: stabilize store functions with selectors to prevent infinite loop
...
- Use usePluginToolbarStore((s) => s.registerItems) selector pattern
- Remove store functions from useEffect dependency array
- Store functions are stable references from zustand selectors
2026-07-15 13:10:27 +02:00
Agent Zero
1f01f2182a
fix: React infinite loop - use primitive deps for toolbar registration
...
- Replace selectedMail object with selectedMailId and selectedMailFlagged primitives
- Prevents useEffect infinite re-render loop
2026-07-15 13:03:36 +02:00
Agent Zero
d82ca27fdc
feat: move reply/forward/flag/event buttons to plugin toolbar
...
- Toolbar now includes context-aware mail action buttons
- Reply, Forward, Flag, Create Event disabled when no mail selected
- Buttons grouped: account | search | compose | mail-actions | tools
2026-07-15 12:55:41 +02:00
Agent Zero
56f624a073
feat: plugin ribbon toolbar + mail response fixes
...
- Add pluginToolbarStore for plugin toolbar item registration
- Add PluginToolbar component (slim ribbon bar under TopBar)
- Update AppShell to render PluginToolbar between TopBar and content
- Mail page registers toolbar items (account select, search, compose, sync, settings)
- Remove old mail top bar, use plugin toolbar instead
- Fix mail response: arrays for addresses, add from_name/body_html/sanitized_html/date
2026-07-15 12:22:14 +02:00
Agent Zero
6b6408fd25
fix: mail response fields - arrays for addresses, add from_name/body_html/sanitized_html/date
...
- to_addresses/cc_addresses/bcc_addresses now returned as arrays
- Added from_name, body_html, sanitized_html, date fields for frontend compatibility
2026-07-15 08:42:37 +02:00
Agent Zero
be8a95995b
fix: IMAP sync response parsing - extract bytearray from response lines
...
- aioimaplib returns bytes/bytearray lines, not tuples
- Find bytearray line containing the raw email data
2026-07-15 02:20:02 +02:00
Agent Zero
78478db625
fix: IMAP sync uid_fetch and response parsing
...
- Replace client.uid_fetch() with client.uid("fetch", ...) (aioimaplib API)
- Fix response parsing for aioimaplib Response object structure
2026-07-15 02:14:01 +02:00
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
a75665c1e6
docs: update test_report.md
2026-07-14 20:09:18 +02:00
leocrm-bot
6710480527
feat: report_generator core plugin — Jinja2 templates, CSV/Excel/JSON output, 8 API endpoints
2026-07-08 23:50:59 +02:00
leocrm-bot
bb4b0ce514
feat: Core Plugin system — is_core flag, topological sort dependency resolution, deactivation protection
2026-07-07 07:44:02 +02:00
leocrm-bot
1694b14c55
docs: Core Plugin & Dependency concept — is_core flag, topological sort, report_generator, ERP roadmap
2026-07-07 07:16:11 +02:00
leocrm-bot
ee4b16d98b
fix: remove Users and Settings from sidebar navigation
2026-07-07 07:15:02 +02:00
leocrm-bot
02a0fde2e8
fix: use admin@media-on.de instead of .local (invalid TLD for email-validator)
2026-07-04 19:39:36 +02:00
leocrm-bot
6aa955a228
chore: update project_state.json — deployment verified healthy
2026-07-04 18:22:03 +02:00
leocrm-bot
047b59a1f3
fix: remove broken service re-exports from __init__.py — fixes ImportError on startup
2026-07-04 18:14:30 +02:00
Leopoldadmin
1c059369fc
Fix: 0015 RLS migration idempotent — DROP POLICY IF EXISTS before CREATE POLICY
2026-07-04 08:12:39 +00: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
d0375a990e
A: Remove address fields from contact_service — dict, create, update
2026-07-04 01:42:11 +00:00
Leopoldadmin
1708c4d94a
A: Remove address fields from company_service — dict, create, update, export
2026-07-04 01:42:10 +00:00
Leopoldadmin
7473efbb02
A: Remove address fields from contact schemas — addresses now via Address model
2026-07-04 01:42:09 +00:00
Leopoldadmin
1e3ee64431
A: Remove address fields from company schemas — addresses now via Address model
2026-07-04 01:42:08 +00:00
Leopoldadmin
300a9018c7
B4: Fix typo in 0015 migration (dends_on → depends_on)
2026-07-04 01:37:04 +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
77c2e2265c
B4: Migration 0015 — enable RLS with tenant isolation policies on all core tables
2026-07-04 01:32:14 +00:00
Leopoldadmin
6e0ab47f3a
B2: Migration 0014 — drop global unique on currency.code, add tenant-scoped unique constraint
2026-07-04 01:32:13 +00:00
Leopoldadmin
0352762229
A: Migration 0013 — create addresses table, migrate data, drop old address columns
2026-07-04 01:32:12 +00:00
Leopoldadmin
f137f38cdd
C3: Fix sequence_service.py — add delete_sequence function (soft-delete with audit)
2026-07-04 01:31:19 +00:00
Leopoldadmin
d13f82ae8b
A/C1/C6: Register addresses+audit routers, add seed_default_data in lifespan
2026-07-04 01:30:08 +00:00
Leopoldadmin
4c415e8f37
C6: Add audit log route — admin-only, paginated, filterable
2026-07-04 01:30:07 +00:00
Leopoldadmin
fe2882689b
C1: Add seeds.py — EUR currency, 19% and 7% tax rates, idempotent
2026-07-04 01:30:06 +00:00
Leopoldadmin
42db39cd31
Update app/services/sequence_service.py
2026-07-04 01:30:05 +00:00
Leopoldadmin
e594e8aa16
C3: Add DELETE endpoint to sequences route (admin-only, soft-delete)
2026-07-04 01:30:04 +00:00
Leopoldadmin
a925ca01e4
B2: Currency.code — remove unique=True, add tenant-scoped UniqueConstraint
2026-07-04 01:30:03 +00:00