- Fix createReceiptZip path traversal guard blocking new ImagePath entries
(UploadReceipt stores bare filenames, guard required 'storage/' prefix)
- Add DeleteExpense DB function, handler with ownership verification,
DELETE /expenses/{id} route, and 🗑️ button in both expense templates
- Uses existing htmx.trigger confirm pattern for delete UX
|
||
|---|---|---|
| .. | ||
| dashboard.html | ||
| event_expenses.html | ||
| expense_list.html | ||
| index.html | ||
| receipt_form.html | ||