Commit Graph

126 Commits

Author SHA1 Message Date
Your Name e0558eb93c rounding visibility in invoices and reports 2026-02-20 15:37:20 +02:00
Your Name 84b2ca54c8 rounding visibility indicators on entry rows 2026-02-20 15:36:07 +02:00
Your Name 76b139e792 time-of-day heatmap in reports patterns tab 2026-02-20 15:32:20 +02:00
Your Name 8567f94e3e project health badges and attention section 2026-02-20 15:32:14 +02:00
Your Name 361a1308b8 weekly comparison indicators and sparklines on dashboard 2026-02-20 15:32:07 +02:00
Your Name 81171bec1b receipt thumbnails, lightbox, and file picker for expenses 2026-02-20 15:25:18 +02:00
Your Name 2b8f9415b3 receipt lightbox component with zoom and focus trap 2026-02-20 15:23:11 +02:00
Your Name 218277e899 global shortcut for quick entry dialog 2026-02-20 15:20:27 +02:00
Your Name 45764795b3 global quick entry dialog component 2026-02-20 15:18:34 +02:00
Your Name 44803a7f6d timesheet row persistence and copy last week 2026-02-20 15:17:01 +02:00
Your Name 18d88bee6c timesheet row persistence backend 2026-02-20 15:15:50 +02:00
Your Name 5c44327500 entry template management in settings 2026-02-20 15:10:48 +02:00
Your Name 304483e4f9 entry template picker and save-as-template in entries view 2026-02-20 15:09:37 +02:00
Your Name eb8595f512 entry templates pinia store 2026-02-20 15:07:18 +02:00
Your Name 786085901f entry templates CRUD backend 2026-02-20 15:06:50 +02:00
Your Name 15c858a2fb cascade delete dialog for clients with dependency counts 2026-02-20 15:02:39 +02:00
Your Name c60246413b client cascade delete with dependency counts 2026-02-20 15:01:33 +02:00
Your Name 36b9cbcc54 smart timer safety net - save dialog on stop without project 2026-02-20 14:58:02 +02:00
Your Name a9e6984009 timer save dialog for no-project and long-timer scenarios 2026-02-20 14:56:17 +02:00
Your Name 8f86a7e5b6 use batch save for invoice items 2026-02-20 14:55:17 +02:00
Your Name f059dd0a92 batch invoice items save with transaction 2026-02-20 14:54:37 +02:00
Your Name 8ed76a1249 independent try/catch per onboarding detection call 2026-02-20 14:47:26 +02:00
Your Name ece4abde97 standardize error handling across all stores 2026-02-20 14:46:56 +02:00
Your Name 342579a78a use unified error handler in entries store 2026-02-20 14:43:10 +02:00
Your Name 1a7b361a16 unified error handler with retry for transient errors 2026-02-20 14:42:30 +02:00
Your Name 525a93e218 persistent notifications toggle in settings 2026-02-20 14:40:50 +02:00
Your Name a391c539f4 toast undo button and hover/focus pause 2026-02-20 14:38:34 +02:00
Your Name b42c3d49d7 toast auto-dismiss with undo and pause support 2026-02-20 14:38:08 +02:00
Your Name 9677f99337 enhancement round 2 implementation plan - 34 tasks
Phase 1: Toast auto-dismiss/undo, unified error handling, onboarding
resilience, invoice batch save, smart timer safety net.
Phase 2: Client cascade delete, entry templates, timesheet persistence,
global quick entry, receipt management.
Phase 3: Dashboard comparison, project health, heatmap, rounding
visibility, complete export with auto-backup.
2026-02-20 14:29:25 +02:00
Your Name 7c69abd135 enhancement round 2 design - 15 feature proposals
Covers smart timer safety net, toast undo system, unified error
handling, onboarding resilience, invoice save reliability, global
quick entry, entry templates, timesheet persistence, client cascade,
receipt management, weekly comparison, project health cards, time
heatmap, rounding preview, and export scheduling. All features
designed for WCAG 2.2 AAA compliance.
2026-02-20 14:22:01 +02:00
Your Name 8330da5608 add tour store for guided walkthrough state 2026-02-20 09:36:26 +02:00
Your Name 5e313f3cea tidy up project structure and normalize formatting 2026-02-19 22:43:14 +02:00
Your Name 81f9386136 mini timer renders via window label instead of hash routing
The mini timer window was blank because hash-based routing
(createWebHashHistory) doesn't work with Tauri's WebviewUrl path.
Now App.vue detects the mini timer by checking getCurrentWindow().label
=== 'mini-timer' and renders the MiniTimer component directly,
bypassing the router entirely.
2026-02-18 15:26:44 +02:00
Your Name 4f44ce48d2 mini timer window blank due to hash routing mismatch
The app uses createWebHashHistory but the mini timer window was
opened with WebviewUrl::App("/mini-timer") which sets the URL path,
not the hash fragment. Vue Router never matched the route, so the
Dashboard rendered in a 300x64 window (appearing blank). Now loads
root URL and sets window.location.hash via eval. Also shows/focuses
the main window when closing the mini timer.
2026-02-18 15:23:20 +02:00
Your Name f78bfa81ec load invoice templates from JSON files via backend
Templates are now loaded dynamically from data/templates/*.json
via the get_invoice_templates Tauri command instead of being
hardcoded in TypeScript. Preview and PDF renderer switch on
template.layout instead of template.id, allowing custom templates
to reuse built-in layouts with different colors.
2026-02-18 15:17:54 +02:00
Your Name fd2b24ebc2 load invoice templates from JSON files in data/templates directory 2026-02-18 15:12:30 +02:00
Your Name 1a7554e390 delete invoice_items before invoice to prevent FK constraint failure 2026-02-18 15:07:43 +02:00
Your Name f329e20aa0 make template picker full-screen with fixed positioning so buttons are visible 2026-02-18 15:05:02 +02:00
Your Name 960fa5c791 rewrite InvoicePreview with 15 unique typographic layouts 2026-02-18 14:50:49 +02:00
Your Name 7de92d122e rewrite PDF renderer with 15 unique typographic layouts 2026-02-18 14:45:38 +02:00
Your Name 68a575fc3f add two-step invoice flow with full-screen template picker 2026-02-18 14:43:55 +02:00
Your Name 53f2449438 update invoicePdf wrapper with new default template ID 2026-02-18 14:41:23 +02:00
Your Name 9373d207a2 rewrite invoice template configs with design-doc IDs and colors 2026-02-18 14:39:01 +02:00
Your Name f3b6bb0b21 add template_id to Invoice interface and updateInvoiceTemplate action 2026-02-18 14:38:14 +02:00
Your Name b09e6d0fb6 add template_id column to invoices table and update_invoice_template command 2026-02-18 14:37:26 +02:00
Your Name 3b1e9a2004 add invoice templates v2 implementation plan 2026-02-18 14:32:38 +02:00
Your Name cc3598f407 add invoice templates v2 complete redesign design doc 2026-02-18 14:28:41 +02:00
Your Name 41ddba5d13 integrate template picker into invoice create and preview views 2026-02-18 13:35:11 +02:00
Your Name 1eadc82db7 add business identity settings for invoice branding 2026-02-18 13:34:44 +02:00
Your Name 5308006578 add InvoicePreview.vue with all 7 header styles and 5 table styles 2026-02-18 13:30:27 +02:00