Commit Graph

134 Commits

Author SHA1 Message Date
Your Name
ae02cba958 fix: auto-detect date format (DD/MM vs MM/DD) in CSV imports
Scans all date values in imported CSVs to determine whether the file
uses DD/MM/YYYY or MM/DD/YYYY format. When the format is ambiguous
(all day and month values are <= 12), shows an inline dropdown for the
user to choose. Bump version to 1.0.2.
2026-02-21 16:56:27 +02:00
Your Name
ad0bdc05be fix: close button and CSV import parsing for Clockify/Harvest
Close button did nothing when "close to tray" was disabled - the
onCloseRequested handler lacked an explicit destroy call for the
non-tray path.

Clockify CSV import threw RangeError because locale-dependent date
formats (MM/DD/YYYY, DD.MM.YYYY, 12h time) were passed straight
to the Date constructor. Added flexible date/time parsers that
handle all Clockify export variants without relying on Date parsing.

Added dedicated Clockify mapper that prefers Duration (decimal)
column and a new Harvest CSV importer (date + decimal hours, no
start/end times).

Bump version to 1.0.1.
2026-02-21 14:56:53 +02:00
Your Name
7b118c1a1c feat: complete export/import cycle and remove sample data
Export now includes invoice_payments and recurring_invoices tables.
Import restored to use ID-based lookups and all fields for clients,
projects, tasks, and time entries. Added missing import support for
timeline_events, calendar_sources, calendar_events, invoice_payments,
and recurring_invoices. Export uses native save dialog instead of blob
download. Removed sample data seeding (seed.rs, UI, command).
2026-02-21 01:34:26 +02:00
Your Name
03eff89947 chore: add CC0 license file and update readme badge 2026-02-21 01:20:20 +02:00
Your Name
ee82abe63e feat: tooltips, two-column timer, font selector, tray behavior, icons, readme
- Custom tooltip directive (WCAG AAA) on every button in the app
- Two-column timer layout with sticky hero and recent entries sidebar
- Timer font selector with 16 monospace Google Fonts and live preview
- UI font selector with 15+ Google Fonts
- Close-to-tray and minimize-to-tray settings
- New app icons (no-glow variants), platform icon set
- Mini timer pop-out window
- Favorites strip with drag-reorder and inline actions
- Comprehensive README with feature documentation
- Remove tracked files that belong in gitignore
2026-02-21 01:15:57 +02:00
Your Name
ef6255042d fix: boost text-tertiary contrast for WCAG AAA (7:1) 2026-02-20 18:40:19 +02:00
Your Name
b7b1789380 feat: auto-backup UI and window close hook 2026-02-20 15:41:38 +02:00
Your Name
0ae431b8ac feat: comprehensive export with all tables and auto-backup command 2026-02-20 15:40:02 +02:00
Your Name
e97bc0f640 feat: rounding visibility in invoices and reports 2026-02-20 15:37:20 +02:00
Your Name
d22d6e844f feat: rounding visibility indicators on entry rows 2026-02-20 15:36:07 +02:00
Your Name
f5223d7a0b feat: time-of-day heatmap in reports patterns tab 2026-02-20 15:32:20 +02:00
Your Name
9d0ab92afc feat: project health badges and attention section 2026-02-20 15:32:14 +02:00
Your Name
ea2d0cba7f feat: weekly comparison indicators and sparklines on dashboard 2026-02-20 15:32:07 +02:00
Your Name
a4fce3b7ab feat: receipt thumbnails, lightbox, and file picker for expenses 2026-02-20 15:25:18 +02:00
Your Name
7c8effb0a7 feat: receipt lightbox component with zoom and focus trap 2026-02-20 15:23:11 +02:00
Your Name
f337f8c28f feat: global shortcut for quick entry dialog 2026-02-20 15:20:27 +02:00
Your Name
96ef48000c feat: global quick entry dialog component 2026-02-20 15:18:34 +02:00
Your Name
c6f6b61503 feat: timesheet row persistence and copy last week 2026-02-20 15:17:01 +02:00
Your Name
ebadbbc2a6 feat: timesheet row persistence backend 2026-02-20 15:15:50 +02:00
Your Name
f504241fc9 feat: entry template management in settings 2026-02-20 15:10:48 +02:00
Your Name
1e324ef0ca feat: entry template picker and save-as-template in entries view 2026-02-20 15:09:37 +02:00
Your Name
2292e4ff9e feat: entry templates pinia store 2026-02-20 15:07:18 +02:00
Your Name
2b47f3412a feat: entry templates CRUD backend 2026-02-20 15:06:50 +02:00
Your Name
fb41f67145 feat: cascade delete dialog for clients with dependency counts 2026-02-20 15:02:39 +02:00
Your Name
0ddf8aa14e feat: client cascade delete with dependency counts 2026-02-20 15:01:33 +02:00
Your Name
eb58794555 feat: smart timer safety net - save dialog on stop without project 2026-02-20 14:58:02 +02:00
Your Name
f0d8e066cb feat: timer save dialog for no-project and long-timer scenarios 2026-02-20 14:56:17 +02:00
Your Name
349b9eb95d feat: use batch save for invoice items 2026-02-20 14:55:17 +02:00
Your Name
37751eb0c8 feat: batch invoice items save with transaction 2026-02-20 14:54:37 +02:00
Your Name
4faac61901 fix: independent try/catch per onboarding detection call 2026-02-20 14:47:26 +02:00
Your Name
83a3ca1e93 feat: standardize error handling across all stores 2026-02-20 14:46:56 +02:00
Your Name
6c961b6c9f feat: use unified error handler in entries store 2026-02-20 14:43:10 +02:00
Your Name
8bcd81b4f0 feat: unified error handler with retry for transient errors 2026-02-20 14:42:30 +02:00
Your Name
6179c8fee8 feat: persistent notifications toggle in settings 2026-02-20 14:40:50 +02:00
Your Name
6df5485813 feat: toast undo button and hover/focus pause 2026-02-20 14:38:34 +02:00
Your Name
d83a832cb1 feat: toast auto-dismiss with undo and pause support 2026-02-20 14:38:08 +02:00
Your Name
6757b7d800 docs: 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
03c1157683 docs: 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
2a1ed8d875 feat: add tour store for guided walkthrough state 2026-02-20 09:36:26 +02:00
Your Name
3dcbd4a888 chore: tidy up project structure and normalize formatting 2026-02-19 22:43:14 +02:00
Your Name
47eb1af7ab fix: 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
28eb7a2639 fix: 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
8c8de6a2a7 feat: 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
8b8d451806 feat: load invoice templates from JSON files in data/templates directory 2026-02-18 15:12:30 +02:00
Your Name
f0571fb1bb fix: delete invoice_items before invoice to prevent FK constraint failure 2026-02-18 15:07:43 +02:00
Your Name
92749bdb63 fix: make template picker full-screen with fixed positioning so buttons are visible 2026-02-18 15:05:02 +02:00
Your Name
e3450ff92e feat: rewrite InvoicePreview with 15 unique typographic layouts 2026-02-18 14:50:49 +02:00
Your Name
efc9fce811 feat: rewrite PDF renderer with 15 unique typographic layouts 2026-02-18 14:45:38 +02:00
Your Name
c499acd17d feat: add two-step invoice flow with full-screen template picker 2026-02-18 14:43:55 +02:00
Your Name
056333c31c feat: update invoicePdf wrapper with new default template ID 2026-02-18 14:41:23 +02:00