Backend:
- Add customerNumber, companyName, contactPerson, street, houseNumber,
postalCode, city, phoneNumber to Farmer domain model
- Update FarmerRow and FarmerMutation records with new fields
- Update repositories, services and controllers for new farmer structure
- Fix CORS configuration to allow credentials
- Remove unused authorizationService and imports
- Update data migration for new farmer schema
Frontend:
- Update FarmerRow and FarmerOption interfaces
- Extend AdministrationPage with new farmer form fields
- Update SampleRegistrationPage and SearchFarmerPage for new structure
- Add accountId to Farmer, MedicationCatalogItem, PathogenCatalogItem, AntibioticCatalogItem
- Create new /api/catalog endpoints for CUSTOMER role only
- Remove DemoDataInitializer (no more demo data generation)
- Add DefaultUserInitializer for admin user creation only
- Update repositories with accountId-based query methods
- Update CatalogService with accountId isolation and role-based access
- Update SecurityConfig: /api/catalog/** for CUSTOMER, /api/admin/** for ADMIN
- Update frontend AdministrationPage to use new /api/catalog endpoints
- Migrate existing data without accountId to first admin user
Backend:
- Add customerNumber field to AppUser with unique index
- Add customer number generation starting at K1000
- Add InvoiceService for creating invoices with PDF data
- Add InvoiceController with endpoints for listing customers and generating invoice data
- Update CatalogService to assign customer numbers to new users
- Update SampleService to preserve customerNumber on updates
- Fix SecurityConfig to enable method security and admin role checks
Frontend:
- Update UserOption/UserRow types to include customerNumber
- Add customer selection dialog in InvoiceManagementPage
- Add PDF generation and preview for invoices
- Fix encodePdfText function for proper PDF encoding
- Fix LocalStorage key for auth token
- Add new 'invoice-items-muh' element to invoice template
- Add 'Positionen' category back to palette groups
- Create helper functions to format price and generate invoice content
- Add /current endpoint to SystemPricingController for authenticated users
- Load pricing when creating starter layout and display:
- Monatliche Systemgebühr MUH with net price
- Umsatzsteuer (19%)
- Gesamtsumme (brutto)
- Update starter layout positioning for new element
Replace combined 'issuer-address' with 4 separate elements:
- issuer-street (Straße)
- issuer-house-number (Hausnummer)
- issuer-postal-code (PLZ)
- issuer-city (Ort)
Update starter layout to use new separate fields with appropriate positioning.
Replace combined 'customer-address' with 4 separate elements:
- customer-street (Straße)
- customer-house-number (Hausnummer)
- customer-postal-code (PLZ)
- customer-city (Ort)
Update starter layout to use new separate fields with appropriate positioning.
The frontend was using /admin/invoice-template but the backend
endpoints are at /api/session/invoice-template. This caused 404
errors and the misleading message 'Template-Speicherung ist auf
diesem Server nicht verfuegbar'.
- Add accountHolder, bankName, iban, bic fields to AppUser domain
- Update UserOption, UserRow, UserMutation records in CatalogService
- Update all AppUser constructor calls to include new fields
- Add bank fields to frontend UserOption and UserRow types
- Add bank account form section to AdminProfilePage
Remove the 'Steuerhinweis' (invoice-tax-note) element with the text
'* Alle Preise verstehen sich zzgl. gesetzlicher MwSt.' from:
- INVOICE_PALETTE_ITEMS list
- INVOICE_LOCKED_TEXT_PALETTE_IDS set
- Starter layout and adjust positions of following elements
Remove the unused invoice items elements from the admin invoice template:
- Remove 'invoice-items-header' and 'invoice-items-rows' palette items
- Remove 'Positionen' category from palette groups
- Remove these elements from the starter layout
- Remove IDs from INVOICE_LOCKED_TEXT_PALETTE_IDS
When no template was saved yet, the API returns 404. This does not mean
the API is unavailable - it just means no template exists yet. The code
was incorrectly setting isTemplateApiAvailable to false on 404, causing
the misleading message 'Template-API auf diesem Server nicht verfuegbar'.
Fixed in both InvoiceTemplatePage and ReportTemplatePage.
- Add AdminProfilePage component for admin to edit own data
- Add 'Stammdaten' menu item in admin navigation
- Add route /admin/stammdaten for the new page
- Use existing POST /api/portal/users endpoint to save changes
- Update session context after successful save
- Add SystemPricing domain model to store monthly price in MongoDB
- Add SystemPricingRepository for database access
- Add SystemPricingService with get/save functionality
- Add SystemPricingController with GET/POST endpoints (admin only)
- Add PricingPage component for frontend
- Add navigation menu item for Preistabelle (above Rechnung)
- Add route /admin/preistabelle for the new page
- Create version.ts in lib folder with APP_VERSION constant
- Add version footer to HomePage
- Add CSS styling for version footer
- Starting version: 0.8.0
- Add autoComplete='off' to registration form and email field
- Add autoComplete='new-password' to password fields
- Add autoComplete='off' to phone number field
Frontend:
- Add password confirmation field when creating sub-users
- Add password mismatch validation
- Add 'Meine Stammdaten' form for primary users to edit their profile
- Extend session context with updateUser() function
- Disable autocomplete for sensitive fields
Frontend:
- Extend UserManagementPage for both ADMIN and primary users
- Admins see all primary users (excluding other admins)
- Primary users see only their sub-users
- Add create sub-user form for primary users
- Adjust UI text based on user role
- Fix table columns (hide company column for primary users)
- Set active=false for newly registered users
- Return RegistrationResponse instead of SessionResponse after registration
- Show success message informing user that admin approval is pending
- Login check already filters for active users only
- Add 'Rechnung' menu with sub-items 'Verwalten' and 'Template' in admin sidebar
- Create InvoiceTemplatePage with drag-and-drop editor for invoice templates
- Includes invoice-specific elements (header, customer data, issuer info,
invoice items, totals, payment terms, bank details)
- Supports PDF preview and download
- API integration for saving/loading templates (/admin/invoice-template)
- Create InvoiceManagementPage as placeholder for invoice overview
- Add routes for /admin/rechnung/verwalten and /admin/rechnung/template
- Update page titles in AppShell for new routes