Commit graph

203 commits

Author SHA1 Message Date
67391038d6
Merge branch 'refs/heads/komoot-import' into sattelgeschichten 2026-04-29 14:15:33 +02:00
8a900ccd30
feat(komoot): prefill import date range with current year
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 14:14:58 +02:00
bda2ab13cf
Merge branch 'refs/heads/24-fix-achievement-date' into sattelgeschichten 2026-04-29 13:02:34 +02:00
86e276e735
fix(analytics): rebuild personal records after activity deletion
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 13:02:11 +02:00
d98b9be58b
Merge branch 'refs/heads/komoot-import' into sattelgeschichten 2026-04-29 12:36:07 +02:00
70e7632699
feat(komoot): show visibility icons in activity list
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 12:35:20 +02:00
e019935c68
Merge branch 'refs/heads/24-fix-achievement-date' into sattelgeschichten 2026-04-29 12:24:33 +02:00
f0e065600e
fix(analytics): flush achievement deletes before rebuild inserts
Avoid unique-constraint violations during achievement rebuilds by forcing the old rows to be deleted in the database before inserting rebuilt achievements.

Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 12:24:19 +02:00
816803f3f0
Merge branch 'refs/heads/24-fix-achievement-date' into sattelgeschichten 2026-04-29 12:19:12 +02:00
251beaae0f
fix(analytics): rebuild achievements from stable history snapshot
Prevent delete-triggered achievement rebuilds from failing when activity history changes again while an async recalculation is already running.

Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 12:18:55 +02:00
f37b20de62
Merge branch 'refs/heads/24-fix-achievement-date' into sattelgeschichten 2026-04-29 12:12:11 +02:00
714007aabe
fix(analytics): serialize delete recalculations per user
Prevent concurrent achievement and summary rebuilds for the same user when multiple activities are deleted in quick succession.

Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 12:11:54 +02:00
2ae0eeb06b
fix(analytics): recalculate delete side effects asynchronously
Move achievement and summary rebuilds out of the activity delete request path so the UI is not blocked by long-running recalculations.

Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 12:08:13 +02:00
dd80741090
Merge branch 'refs/heads/komoot-import' into sattelgeschichten 2026-04-29 11:35:15 +02:00
67999e8a4a
refactor(komoot): use explicit FitPub import user agent
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 11:34:37 +02:00
9824cca20d
Merge branch 'refs/heads/komoot-import' into sattelgeschichten 2026-04-29 11:23:40 +02:00
3135a36679
refactor(komoot): move import mapping to separate table
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 11:16:31 +02:00
ea47cccdb1
refactor(komoot): align DTOs with Lombok class pattern
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 11:01:21 +02:00
3d0fa7beec
Merge branch '24-fix-achievement-date' into sattelgeschichten 2026-04-29 10:48:31 +02:00
d86b8b9d23
fix(ui): correct achievement rebuild alert styling
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 10:48:11 +02:00
851ece0edd
Merge branch '24-fix-achievement-date' into sattelgeschichten 2026-04-29 10:43:47 +02:00
689b8e5e82
fix(analytics): refresh summaries after activity deletion
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 10:15:31 +02:00
2ac3d82fda
feat(analytics): add manual achievement rebuild action
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 10:07:01 +02:00
2c567a5e8e
fix(analytics): rebuild achievements after activity deletion
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 10:00:09 +02:00
10037de043
fix(analytics): count summary achievements by activity period
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 09:54:31 +02:00
6af484bcf7
fix(analytics): rebuild achievements from activity history
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 09:44:28 +02:00
4d16e8c685
fix(analytics): use activity end time for achievement earnedAt #24
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 09:31:30 +02:00
5070977d8c
Merge branch 'add-sdkman-config' into sattelgeschichten 2026-04-29 08:28:03 +02:00
c1e95087df
revert: remove unrelated change from feature branch 2026-04-29 08:24:56 +02:00
7d62441c91
revert: remove unrelated change from feature branch
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 08:22:09 +02:00
979fe4c416
Merge branch 'refs/heads/21-preserve-linebreaks' into sattelgeschichten 2026-04-29 08:18:58 +02:00
917a14ed06
Merge branch 'refs/heads/komoot-import' into sattelgeschichten 2026-04-29 08:17:30 +02:00
f8818d6d88
Merge branch 'refs/heads/fix-race-condition' into sattelgeschichten 2026-04-29 08:17:07 +02:00
84735594f2
fix(komoot): send explicit GPX accept header for imports
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-28 17:10:34 +02:00
6bd7ab8748
style(komoot): reuse shared loading indicator for activity list loading
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-28 16:40:04 +02:00
5b1d9f97cd
build: add Maven Wrapper
Add Maven Wrapper to ensure consistent build environment and
eliminate the need for a preinstalled Maven version.

Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-28 16:18:25 +02:00
7a0315d855
fix: linter warnings
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-28 16:16:11 +02:00
5f035d75b6
fix(summaries): retry summary updates after concurrent insert conflicts
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-28 16:13:32 +02:00
df3cd0616d
revert: remove unrelated change from feature branch
This reverts a change that does not belong to this feature branch.
The change will be moved to a separate branch and submitted as its
own pull request.

Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-28 16:09:17 +02:00
b5e88a317f
revert: remove unrelated change from feature branch
This reverts a change that does not belong to this feature branch.
The change will be moved to a separate branch and submitted as its
own pull request.

Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-28 15:52:26 +02:00
5945a2b139
feat(komoot): link imported activities to their FitPub detail pages
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-28 15:44:06 +02:00
f7f919f0b1
feat(komoot): improve import flow with throttling, cancellation, and UI guidance
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-28 15:24:15 +02:00
0387ca01e3
feat(komoot): import listed activities sequentially with per-row status updates
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-28 14:59:05 +02:00
6d89426584
feat(komoot): refine activity list for import status and mapped types
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-28 14:26:41 +02:00
aef23720d6
feat(komoot): add server-side date range filtering for activities
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-28 14:26:41 +02:00
803caf06b1
feat(komoot): import first new activity via GPX and override metadata
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-28 14:26:41 +02:00
0cea88d033
feat(db): add komoot activity id for import deduplication
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-28 14:26:33 +02:00
7ca09f0f27
feat(komoot): add completed activities preview import flow
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-28 12:18:02 +02:00
97789c224c
chore: add .sdkmanrc for SDK version management
Add .sdkmanrc to define and standardize SDK versions
used in the project via SDKMAN.
2026-04-28 09:37:38 +02:00
13077573bb
fix(activity-detail): preserve line breaks in activity descriptions
- implement new CSS class `preserve-linebreaks` in `fitpub.css`
- add new CSS class to activity description element in `detail.html`
2026-04-28 09:31:35 +02:00