Your Name
5146d9e2a0
export with all tables and auto-backup command
2026-02-20 15:40:02 +02:00
Your Name
18d88bee6c
timesheet row persistence backend
2026-02-20 15:15:50 +02:00
Your Name
786085901f
entry templates CRUD backend
2026-02-20 15:06:50 +02:00
Your Name
c60246413b
client cascade delete with dependency counts
2026-02-20 15:01:33 +02:00
Your Name
f059dd0a92
batch invoice items save with transaction
2026-02-20 14:54:37 +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
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
b09e6d0fb6
add template_id column to invoices table and update_invoice_template command
2026-02-18 14:37:26 +02:00
Your Name
b3f310d8e4
add global-shortcut plugin and mini timer window commands
2026-02-18 02:06:07 +02:00
Your Name
006d2028c1
add goals, profitability, timesheet, and import commands
2026-02-18 02:04:10 +02:00
Your Name
6ca526b348
add favorites table, CRUD commands, and Pinia store
2026-02-18 02:02:57 +02:00
Your Name
4ebfe3a442
add project budgets and rounding override columns
2026-02-18 02:02:13 +02:00
Your Name
f5e2aec698
add tags table, CRUD commands, and Pinia store
2026-02-18 02:01:04 +02:00
Your Name
c1984b7ec4
add client billing fields to database and Rust backend
2026-02-17 22:52:51 +02:00
Your Name
5072f96948
window dragging - use startDragging() API instead of data attribute
2026-02-17 21:36:30 +02:00
Your Name
4d02b88ebe
persist window position and size between runs
2026-02-17 21:33:32 +02:00
Your Name
1b00cf294a
portable storage - data directory next to exe
2026-02-17 21:33:26 +02:00
Your Name
8b1dc78132
initialize Tauri backend with SQLite database
2026-02-17 18:03:12 +02:00