Added billFwdStrategy field to store user's choice for when to forward
utility bills to tenants, with database persistence and UI updates.
Changes:
- Added billFwdStrategy field to BillingLocation interface ("when-payed" | "when-attached")
- Updated FormSchema to validate billFwdStrategy enum values
- Modified updateOrAddLocation to persist billFwdStrategy in all database operations
- Defaults to "when-payed" (first option) when no value exists in database
- Updated LocationEditForm radio buttons to use persisted database values
- Radio button selection is preserved across edits and restored from database
- Renamed autoTenantNotification to autoBillFwd throughout codebase
- Updated localization strings for bill forwarding features
Form behavior:
- New locations: "when-payed" radio selected by default
- Existing locations: Radio selection matches stored database value
- Value persisted in current, subsequent, and all month update operations
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
177 lines
8.2 KiB
JSON
177 lines
8.2 KiB
JSON
{
|
|
"Index": {
|
|
"title": "Welcome!"
|
|
},
|
|
"PageFooter": {
|
|
"app-description": "Helping you to stay on top of your utility bills",
|
|
"links": {
|
|
"home": "Home",
|
|
"privacy-policy": "Privacy Policy",
|
|
"terms-of-service": "Terms of Service"
|
|
}
|
|
},
|
|
"login-page": {
|
|
"main-card": {
|
|
"title-1": "Which bills are due?",
|
|
"title-2": "Which are payed?",
|
|
"title-3": "How much are my expenses?",
|
|
"text-1": "These are the questions this simple and free app will help you with ...",
|
|
"text-2": "... try it & use it completly free!",
|
|
"in-app-browser-warning": "<strong>WARNING:</strong> we detected you're using an in-app browser.<br></br>This might prevent this app to work properly.<hint>Please use a regular browser to sign in (rezije.app) 😉</hint>",
|
|
"video-url": "/welcome-demo-vp9-25fps-1500bps.webm",
|
|
"image-url": "/hero.png",
|
|
"video-title": "Demo osnovnih koraka u aplikaciji"
|
|
},
|
|
"card-1": {
|
|
"title": "Easy copy of expenditures",
|
|
"text": "All your realestate and utilitys are automatically copied to the next month, so you don't neeed to do it by hand.",
|
|
"video-url": "/kopiranje-mjeseca-demo.webm",
|
|
"image-url": "/status-color-demo.png",
|
|
"video-title": "Demo kopiranja mjeseca"
|
|
},
|
|
"card-2": {
|
|
"title": "Color signals status",
|
|
"text": "Each of the utility bills is color coded - at a glance you can see which bill was received and which one is payed.",
|
|
"image-url": "/bar-code-demo.png",
|
|
"image-alt": "Boje označavaju status računa"
|
|
},
|
|
"card-3": {
|
|
"title": "Color signals status",
|
|
"text": "If the attached dokument contains a 2D bar code, it is automatically extracted and shown on the page, so you can scan it without opening the PDF document.",
|
|
"video-url": "/welcome-demo-vp9-25fps-1500bps.webm",
|
|
"image-url": "/bar-code-demo.png",
|
|
"video-title": "Demo osnovnih koraka u aplikaciji"
|
|
},
|
|
"sign-in-button": "Sign in with"
|
|
},
|
|
"home-page": {
|
|
"add-location-button": {
|
|
"tooltip": "Add a new realestate"
|
|
},
|
|
"add-month-button": {
|
|
"tooltip": "Add next mont"
|
|
},
|
|
"location-card": {
|
|
"edit-card-tooltip": "Edit realestate",
|
|
"add-bill-button-tooltip": "Add a new bill",
|
|
"payed-total-label": "Payed total:",
|
|
"link-copy-message": "Link copied to clipboard"
|
|
},
|
|
"month-card": {
|
|
"payed-total-label": "Total monthly expenditure:",
|
|
"print-codes-tooltip": "Print 2D codes",
|
|
"print-codes-label": "Print codes"
|
|
},
|
|
"print-preview": {
|
|
"title": "2D Barcode Print Preview",
|
|
"barcodes-found": "barcodes found",
|
|
"barcode-singular": "barcode found",
|
|
"print-button": "Print Barcodes",
|
|
"print-footer": "Generated on {date} • Evidencija Režija Print System",
|
|
"table-header-index": "#",
|
|
"table-header-bill-info": "Bill Information",
|
|
"table-header-barcode": "2D Barcode",
|
|
"empty-state-title": "No Barcode Data Found",
|
|
"empty-state-message": "No bills with 2D barcodes found for {yearMonth}"
|
|
},
|
|
"profile-saved-message": "Profile updated successfully",
|
|
"bill-saved-message": "Bill saved successfully",
|
|
"bill-deleted-message": "Bill deleted successfully",
|
|
"location-saved-message": "Location saved successfully",
|
|
"location-deleted-message": "Location deleted successfully"
|
|
},
|
|
"bill-delete-form": {
|
|
"text": "Please confirm deletion of bill \"<strong>{bill_name}</strong>\" at \"<strong>{location_name}</strong>\".",
|
|
"cancel-button": "Cancel",
|
|
"confirm-button": "Confirm",
|
|
"delete-in-subsequent-months": "Also delete in all subsequent months",
|
|
"warning-title": "Warning",
|
|
"warning-message": "This operation cannot be undone and will delete the bill in all future months!"
|
|
},
|
|
"bill-edit-form": {
|
|
"bill-name-placeholder": "Bill name",
|
|
"paid-checkbox": "Paid",
|
|
"scanning-pdf": "🕵️♂️ Scanning document for 2D codes ...",
|
|
"multiple-barcode-results-notification": "✅ Multiple 2D barcodes found. Pick the one which you want to use:",
|
|
"payed-amount": "Amount",
|
|
"barcode-disclaimer": "After scanning the code make sure the information is correct.<br></br>We are not liable in case of an incorrect payment.",
|
|
"notes-placeholder": "Notes",
|
|
"save-button": "Save",
|
|
"cancel-button": "Cancel",
|
|
"delete-tooltip": "Delete bill",
|
|
"add-to-subsequent-months": "Add to all subsequent months",
|
|
"validation": {
|
|
"bill-name-required": "Bill name is required",
|
|
"payed-amount-required": "Payed amount is required",
|
|
"not-a-number": "Not a number",
|
|
"negative-number": "Value must be a positive number",
|
|
"form-error-message": "Form validation error. Please check the form and try again."
|
|
},
|
|
"attachment": "Attachment",
|
|
"back-button": "Back",
|
|
"billed-to-label": "Billed to",
|
|
"billed-to-tenant-option": "tenant",
|
|
"billed-to-landlord-option": "landlord"
|
|
},
|
|
"location-delete-form": {
|
|
"text": "Please confirm deletion of realestate \"<strong>{name}</strong>\".",
|
|
"cancel-button": "Cancel",
|
|
"confirm-button": "Confirm",
|
|
"delete-in-subsequent-months": "Also delete in all subsequent months",
|
|
"warning-title": "Warning",
|
|
"warning-message": "This operation cannot be undone and will delete the location in all future months!"
|
|
},
|
|
"location-edit-form": {
|
|
"location-name-placeholder": "Realestate name",
|
|
"notes-placeholder": "Notes",
|
|
"tenant-2d-code-legend": "TENANT 2D CODE",
|
|
"tenant-2d-code-toggle-label": "generate 2d code",
|
|
"tenant-first-name-label": "Tenant First Name",
|
|
"tenant-first-name-placeholder": "Enter tenant's first name",
|
|
"tenant-last-name-label": "Tenant Last Name",
|
|
"tenant-last-name-placeholder": "Enter tenant's last name",
|
|
"auto-utility-bill-forwarding-legend": "AUTOMATIC UTILITY BILL FORWARDING",
|
|
"auto-utility-bill-forwarding-toggle-label": "forward utility bills",
|
|
"tenant-email-label": "Tenant Email",
|
|
"tenant-email-placeholder": "Enter tenant's email",
|
|
"utility-bill-forwarding-strategy-label": "Forward utility bills when ...",
|
|
"utility-bill-forwarding-when-payed": "all bills are marked as paid",
|
|
"utility-bill-forwarding-when-attached": "a bill (PDF) is attached to all items",
|
|
"warning-missing-tenant-names": "Warning: Tenant first and last name are missing. The 2D barcode will not be displayed to the tenant when they open the shared link until both fields are filled in.",
|
|
"save-button": "Save",
|
|
"cancel-button": "Cancel",
|
|
"delete-tooltip": "Delete realestate",
|
|
"add-to-subsequent-months": "Add to all subsequent months",
|
|
"update-scope": "Update scope:",
|
|
"update-current-month": "current month only",
|
|
"update-subsequent-months": "current and all future months",
|
|
"update-all-months": "all months",
|
|
"validation": {
|
|
"location-name-required": "Relaestate name is required",
|
|
"tenant-first-name-required": "tenant first name is missing",
|
|
"tenant-last-name-required": "tenant last name is missing",
|
|
"tenant-email-required": "tenant email is missing",
|
|
"tenant-email-invalid": "email address is invalid",
|
|
"validation-failed": "Validation failed. Please check the form and try again."
|
|
}
|
|
},
|
|
"account-form": {
|
|
"title": "Profile Information",
|
|
"info-box-message": "This information will be used to generate a 2D barcode displayed in the bill view, allowing tenants to scan it and refund the money you have spent on paying utility bills in their name.",
|
|
"warning-missing-data": "Warning: Some profile fields are missing. The 2D barcode will not be displayed to tenants on the shared bill view until all fields are filled in.",
|
|
"first-name-label": "First Name",
|
|
"first-name-placeholder": "Enter your first name",
|
|
"last-name-label": "Last Name",
|
|
"last-name-placeholder": "Enter your last name",
|
|
"address-label": "Address",
|
|
"address-placeholder": "Enter your address",
|
|
"iban-label": "IBAN",
|
|
"iban-placeholder": "Enter your IBAN",
|
|
"save-button": "Save",
|
|
"cancel-button": "Cancel",
|
|
"validation": {
|
|
"iban-invalid": "Invalid IBAN format. Please enter a valid IBAN",
|
|
"validation-failed": "Validation failed. Please check the form and try again."
|
|
}
|
|
}
|
|
} |