Commit Graph

19 Commits

Author SHA1 Message Date
5fff21fc96 entry templates CRUD backend 2026-02-20 15:06:50 +02:00
e2d1b0aa4a client cascade delete with dependency counts 2026-02-20 15:01:33 +02:00
882fee1209 batch invoice items save with transaction 2026-02-20 14:54:37 +02:00
9f44a1a697 tidy up project structure and normalize formatting 2026-02-19 22:43:14 +02:00
99be86a860 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
813411078d 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
b722ee684c load invoice templates from JSON files in data/templates directory 2026-02-18 15:12:30 +02:00
32fc45f111 delete invoice_items before invoice to prevent FK constraint failure 2026-02-18 15:07:43 +02:00
a0f4815103 add template_id column to invoices table and update_invoice_template command 2026-02-18 14:37:26 +02:00
5c0dccf133 add global-shortcut plugin and mini timer window commands 2026-02-18 02:06:07 +02:00
f4d9a70e2e add goals, profitability, timesheet, and import commands 2026-02-18 02:04:10 +02:00
28ec9e66f7 add favorites table, CRUD commands, and Pinia store 2026-02-18 02:02:57 +02:00
1a4f2421f8 add project budgets and rounding override columns 2026-02-18 02:02:13 +02:00
7416e4b49a add tags table, CRUD commands, and Pinia store 2026-02-18 02:01:04 +02:00
0337b746ae add client billing fields to database and Rust backend 2026-02-17 22:52:51 +02:00
66b430b9b0 window dragging - use startDragging() API instead of data attribute 2026-02-17 21:36:30 +02:00
7f6bf16c86 persist window position and size between runs 2026-02-17 21:33:32 +02:00
f5a4f081ef portable storage - data directory next to exe 2026-02-17 21:33:26 +02:00
914cf7d61e initialize Tauri backend with SQLite database 2026-02-17 18:03:12 +02:00