bjoernpoettker
8c5a81ed27
feat: implement ProcessVerarbeiteteDocuments (Upload-Check)
...
Build and Push Multi-Platform Images / build-and-push (push) Successful in 37s
Ported ProcessVerarbeiteteDocuments() from C# ProcessUploads.cs:
- Checks docs tagged "hochgeladen" → eingangsrechnungVorhanden()
- On match: livesearch, update title/type/created/correspondent/tags,
set custom fields (externeBelegnummer, AgrarmonitorLink), addNote
- Tag "hochgeladen" → "fertig" swap; owner via Client.AgrarmonitorBetriebId
- 401/403 guard: clearClient() + break (same pattern as runPolling)
- Cron: AGRARMONITOR_UPLOAD_CHECK_CRON (default: 0 * * * * *)
- New settings: agrarmonitor_tag_hochgeladen, agrarmonitor_link_field
- Endpoint: POST /api/agrarmonitor/process-uploads
- Frontend: polling-config extended with tagHochgeladen + linkField select,
new card "Dokumenten-Verarbeitung" with run button + result display
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-25 12:11:44 +02:00
bjoernpoettker
a726f863f0
feat: set loginStrategy to 'redirect' in AgrarmonitorService
...
Build and Push Multi-Platform Images / build-and-push (push) Successful in 42s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-25 11:41:22 +02:00
bjoernpoettker
1133023c48
chore: update agrarmonitor-connector to commit cd89a30
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-25 11:38:45 +02:00
bjoernpoettker
74cd2477f1
fix: two polling bugs — correspondent 400 and Agrarmonitor 403
...
Build and Push Multi-Platform Images / build-and-push (push) Successful in 30s
- 400 on Korrespondenten-Sync: getCorrespondentByName was called with
searchName "(12345)" but checked exact match against full displayName
"Firma (12345)". Always returned null → duplicate addCorrespondent on
every run → Paperless 400. Fix: search by displayName directly.
- 403 on Livesearch: cached Agrarmonitor session expired. Fix: detect
401/403 from connector, call clearClient() to invalidate cache, break
out of the polling loop so next cron run re-authenticates.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-23 16:25:47 +02:00
bjoernpoettker
1d11d8a3bd
docs: add Agrarmonitor polling design plans
...
Build and Push Multi-Platform Images / build-and-push (push) Successful in 57s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-23 15:09:53 +02:00
bjoernpoettker
e5271fc035
chore: add AGRARMONITOR_POLLING_CRON to docker-compose.yml
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-23 15:05:20 +02:00
bjoernpoettker
6e1f995fe5
feat: extend SettingsPage with Agrarmonitor polling UI
...
Benutzer & Betriebe tab:
- Add Betriebe table with inline-editable AgrarmonitorBetriebId column
Agrarmonitor tab:
- Add Polling-Konfiguration card (tag-IDs, auto-loaded, save button)
- Add Polling ausführen card (run button, result display with error list)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-23 15:04:17 +02:00
bjoernpoettker
5ca202a59e
feat: extend frontend API client for Agrarmonitor polling
...
- Add SettingClient interface and getClients/updateClient methods
- Add AgrarmonitorPollingConfig/Result interfaces
- Add getPollingConfig, updatePollingConfig, runPolling to agrarmonitorApi
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-23 15:02:02 +02:00
bjoernpoettker
bed797db51
chore: add AGRARMONITOR_POLLING_CRON to .env.example
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-23 14:59:38 +02:00
bjoernpoettker
31d51dc19d
feat: add GET/PUT clients endpoints to SettingsController
...
GET /api/settings/clients — list all Betriebe ordered by name
PUT /api/settings/clients/:id — update AgrarmonitorBetriebId
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-23 14:59:26 +02:00
bjoernpoettker
f3e3df3724
feat: add polling endpoints to AgrarmonitorController
...
GET /api/agrarmonitor/polling-config
PUT /api/agrarmonitor/polling-config
POST /api/agrarmonitor/run-polling
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-23 14:58:31 +02:00
bjoernpoettker
f3df38610c
refactor: replace AgrarmonitorWebService with connector methods
...
- Delete agrarmonitor-web.service.ts (HTML-scraping no longer needed)
- Rewrite AgrarmonitorPollingService to call connector directly
(eingangsrechnungenLivesearch, setEingangsdatum, setLieferscheinNummer)
- Fix quality issues: concurrency guard, customer-sync try/catch,
tag dedup via Set, parseInt NaN guard, page_size overflow warning
- Update AgrarmonitorModule to import TypeORM/PaperlessModule
- Remove node-html-parser dependency
- Update agrarmonitor-connector to latest Gitea commit
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-23 14:56:23 +02:00
bjoernpoettker
dd0fcfc2e5
feat: add AgrarmonitorPollingService with cron and runPolling
2026-05-23 14:45:47 +02:00
bjoernpoettker
79874bf54f
fix: harden AgrarmonitorWebService error handling and date parsing
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-23 14:41:01 +02:00
bjoernpoettker
433b3be7fa
feat: add AgrarmonitorWebService with livesearch and date setters
2026-05-23 14:37:52 +02:00
bjoernpoettker
f4131ebcf0
feat: add AgrarmonitorBetriebId to Client entity
2026-05-23 14:36:23 +02:00
bjoernpoettker
0d4302dc7e
chore: add node-html-parser for Agrarmonitor HTML scraping
2026-05-23 14:35:47 +02:00
bjoernpoettker
9f39578471
fix: disable auto-retry and improve error messages in Agrarmonitor
...
Build and Push Multi-Platform Images / build-and-push (push) Successful in 43s
- Set autoRetry: false and timeoutMs: 10000 in AgrarmonitorService
- Show specific error message on timeout or backend error in frontend
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-21 22:10:36 +02:00
bjoernpoettker
6f6a4d83e5
Merge branch 'main' into Agrarmonitor
Build and Push Multi-Platform Images / build-and-push (push) Successful in 49s
2026-05-21 21:42:15 +02:00
bjoernpoettker
23a889f3a5
fix: install git in backend Docker build stage
...
Build and Push Multi-Platform Images / build-and-push (push) Successful in 33s
Required for npm packages that reference git dependencies.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-21 21:41:10 +02:00
bjoernpoettker
6e20dec723
Merge remote-tracking branch 'origin/main' into Agrarmonitor
Build and Push Multi-Platform Images / build-and-push (push) Failing after 23s
2026-05-21 21:38:55 +02:00
bjoernpoettker
2aba9ff004
ci: build and tag images for all branches
...
Build and Push Multi-Platform Images / build-and-push (push) Successful in 12s
- Trigger build on all branches (not only main)
- Tag image as 'latest' for main, branch name otherwise
- Sanitize branch name for Docker tag (slashes → dashes, lowercase)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-21 21:34:38 +02:00
bjoernpoettker
1f5dcf4a17
feat: add Agrarmonitor integration module
...
- New backend module (agrarmonitor) with status check and device registration
- Frontend settings tab with connection status display and registration form
- Environment variables for base URLs, credentials, cookie path and encryption key
- Docker Compose env passthrough for agrarmonitor config
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-21 21:30:46 +02:00
bjoernpoettker
f482304061
feat: fix signature editor init and expand README
...
Build and Push Multi-Platform Images / build-and-push (push) Successful in 18s
- Pass initialContent prop to WysiwygEditor instead of imperative setContent
to ensure mail signature loads correctly on mount
- Rewrite README to reflect full project scope (scanner inbox, email import,
postprocessing rules, label printing, OIDC auth)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-21 15:48:23 +02:00
bjoernpoettker
2df3af719b
feat: add delete-after-action dialogs and auto-refresh in inbox
...
Build and Push Multi-Platform Images / build-and-push (push) Successful in 17s
- Show confirmation dialog to delete document after download or email send
- Auto-refresh inbox list every 30 seconds
- Rename "Vorschau" button to "Weiterverarbeiten"
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-21 15:20:55 +02:00
bjoernpoettker
7de22c9418
feat: improve frontend accessibility, dark mode, and UX
...
Build and Push Multi-Platform Images / build-and-push (push) Successful in 18s
- Replace div with semantic button elements in AppLayout for accessibility
- Use Ant Design theme tokens instead of hardcoded colors in MailDetailPage
- Add loading state to refresh buttons and pagination info
- Add German empty state messages to tables
- Clean up unnecessary ConfigProvider wrappers
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-21 14:45:33 +02:00
bjoernpoettker
e9d42ce172
löschen
Build and Push Multi-Platform Images / build-and-push (push) Successful in 21s
2026-05-21 12:59:46 +02:00
bjoernpoettker
792733952a
fix: improve mail document ID rendering and disable actions for ignored emails
Build and Push Multi-Platform Images / build-and-push (push) Successful in 18s
2026-05-18 21:07:52 +02:00
bjoernpoettker
1e7e8cf6da
feat: inject PAPERLESS_URL environment variable and update document link rendering in MailDetailPage
Build and Push Multi-Platform Images / build-and-push (push) Successful in 18s
2026-05-18 20:53:17 +02:00
bjoernpoettker
11bed63bad
feat: add manual Paperless ID synchronization for email attachments and update default barcode margins to 7mm.
Build and Push Multi-Platform Images / build-and-push (push) Successful in 36s
2026-05-18 09:14:26 +02:00
bjoernpoettker
76ce4cf900
feat: implement authenticated resource handling for image and PDF previews via AuthImage and AuthIframe components
Build and Push Multi-Platform Images / build-and-push (push) Successful in 17s
2026-05-10 22:30:27 +02:00
bjoernpoettker
1ed3afd2e2
feat: add database indexes, implement CORS configuration, and lazy-load frontend routes
Build and Push Multi-Platform Images / build-and-push (push) Successful in 35s
2026-05-10 22:21:01 +02:00
bjoernpoettker
aa4c181b0c
perf: add database indexes, implement caching, enforce permission guards, and sanitize external URLs
Build and Push Multi-Platform Images / build-and-push (push) Successful in 48s
2026-05-10 22:01:06 +02:00
bjoernpoettker
351938aa5c
feat: add email recipient history to user settings and implement management in InboxDetailPage
Build and Push Multi-Platform Images / build-and-push (push) Successful in 36s
2026-05-10 21:32:19 +02:00
bjoernpoettker
36322ae4c3
fix: update thumbnail tooltip max-height to responsive viewport units in InboxDetailPage
Build and Push Multi-Platform Images / build-and-push (push) Successful in 18s
2026-05-10 20:57:46 +02:00
bjoernpoettker
a8e27d228e
feat: add document thumbnail previews with tooltips to download and email dialogs
Build and Push Multi-Platform Images / build-and-push (push) Successful in 17s
2026-05-10 20:49:20 +02:00
bjoernpoettker
4485d1673d
refactor: simplify MailImportWizard success view and adjust InboxDetailPage dropdown styling
Build and Push Multi-Platform Images / build-and-push (push) Successful in 17s
2026-05-10 06:52:26 +02:00
bjoernpoettker
8df17e4994
feat: add validation check to prevent document processing when names are missing
Build and Push Multi-Platform Images / build-and-push (push) Successful in 33s
2026-05-09 16:01:46 +02:00
bjoernpoettker
c283703640
style: align inbox header elements by moving dropdown button to the far right
2026-05-09 14:23:58 +02:00
bjoernpoettker
5c8a71bdda
feat: add source attachment details as notes to processed documents
Build and Push Multi-Platform Images / build-and-push (push) Successful in 30s
2026-05-09 14:06:04 +02:00
bjoernpoettker
0318fe8e7a
feat: add default label template setting and apply it to print dialog selection
Build and Push Multi-Platform Images / build-and-push (push) Successful in 35s
2026-05-09 12:41:05 +02:00
bjoernpoettker
e4f765fcfd
refactor: redesign summary view in MailImportWizard to improve readability and document information layout
Build and Push Multi-Platform Images / build-and-push (push) Successful in 15s
2026-05-09 12:15:54 +02:00
bjoernpoettker
3f2b3a7af4
chore: add project documentation, restrict email import permissions, and set date format in InboxPage
Build and Push Multi-Platform Images / build-and-push (push) Successful in 32s
2026-05-09 11:06:11 +02:00
bjoernpoettker
195ebc793e
fix: scope barcode template permissions to specific endpoints instead of the entire controller
Build and Push Multi-Platform Images / build-and-push (push) Successful in 26s
2026-05-09 10:50:48 +02:00
bjoernpoettker
01d9aec655
feat: configure nginx proxy and response headers to support SSE for label print agent
Build and Push Multi-Platform Images / build-and-push (push) Successful in 33s
2026-05-09 10:27:30 +02:00
bjoernpoettker
48d4ff1ab3
refactor: remove authentication guard from label-print-agent controller
Build and Push Multi-Platform Images / build-and-push (push) Successful in 27s
2026-05-09 10:21:22 +02:00
bjoernpoettker
86d3c062d6
feat: implement public route support and elevate auth guard log levels to info
Build and Push Multi-Platform Images / build-and-push (push) Successful in 35s
2026-05-09 10:03:34 +02:00
bjoernpoettker
367c8fe002
feat: add detailed request logging and error tracing to API key and JWT guards
Build and Push Multi-Platform Images / build-and-push (push) Successful in 29s
2026-05-09 09:55:30 +02:00
bjoernpoettker
a207b3057e
feat: add support for API keys in Authorization header for SSE clients
Build and Push Multi-Platform Images / build-and-push (push) Successful in 28s
2026-05-09 09:37:55 +02:00
bjoernpoettker
f4428afb9b
feat: add SSE event stream for print jobs, implement batch printing in frontend, and update API documentation.
Build and Push Multi-Platform Images / build-and-push (push) Successful in 36s
2026-05-09 09:04:20 +02:00