lobo
f01ad03f6e
feat(import): bookmarklet for store pages
Build, Test & Push Frontend / quality-check (push) Successful in 22s
Build, Test & Push Frontend / docker (push) Successful in 25s
2026-09-30 15:59:05 +02:00
lobo
c6d76b4cb5
fix(session): keep the hash on the login round trip
2026-09-30 15:59:05 +02:00
lobo
8e31eafc06
feat(import): read the exports of GOG Galaxy, Grouvee, HowLongToBeat and Playnite
2026-09-30 15:59:05 +02:00
lobo
89d0b29698
refactor: item 29 cleanup
...
F16 F17 F18 F19 F20 F21: import polling backs off and pauses in a hidden tab, one date format module, fake timers in the import tests, error codes instead of raw messages, one safe storage wrapper, dead code.
2026-09-30 15:00:47 +02:00
lobo
aa5832225d
refactor(import): move the import parts to components/import
Build, Test & Push Frontend / quality-check (push) Successful in 23s
Build, Test & Push Frontend / docker (push) Successful in 33s
2026-09-30 08:46:51 +02:00
lobo
28ff6eae52
refactor(settings): one card per section
...
The name field takes its value from the page's own load, not from the user context: the context can still be empty when the form mounts.
2026-09-30 08:46:51 +02:00
lobo
6da612bebd
refactor(dashboard): load in useDashboardData, welcome and most played cards
2026-09-30 08:46:51 +02:00
lobo
05f4ca42e5
refactor(game-detail): load in useGame, hero and achievements cards
2026-09-30 08:46:51 +02:00
lobo
628920a006
feat(backlog): save only the changed fields
2026-09-30 07:57:52 +02:00
lobo
9ddc50f819
fix: abort old loads, stale sync state, warn before unsaved edits are lost
2026-09-30 07:51:09 +02:00
lobo
cbafa3d540
refactor(session): one session store for login, logout and 401
2026-09-30 07:36:08 +02:00
lobo
2a22789435
test: data router, one render helper, fetchRoutes in every test
2026-09-29 16:15:50 +02:00
lobo
d0ea9e900d
refactor(frontend): lint, one session guard, one request helper, one user context
2026-09-29 15:40:55 +02:00
lobo
24a98062ee
refactor(limits): server limits in one file, own texts for unknown errors
Build, Test & Push Frontend / quality-check (push) Successful in 19s
Build, Test & Push Frontend / docker (push) Successful in 27s
2026-09-29 14:48:28 +02:00
lobo
f605917874
fix(settings): keep the language and save settings one after the other
2026-09-29 13:27:31 +02:00
lobo
14dd59f9e0
feat(import): add the import page, multi-select add and the favorite platform
2026-09-29 10:20:54 +02:00
lobo
aa9e83e0cb
feat(tiles): let users arrange the dashboard and profile tiles
Build, Test & Push Frontend / quality-check (push) Successful in 18s
Build, Test & Push Frontend / docker (push) Successful in 28s
2026-09-28 15:03:16 +02:00
lobo
b55fcfec92
feat(profile): let users design their public profile
2026-09-28 14:20:14 +02:00
lobo
a5458b3f86
feat(game): play confetti for finished games
2026-09-28 13:36:36 +02:00
lobo
78ba0700c8
feat(library): add the merge duplicate dialog
Build, Test & Push Frontend / quality-check (push) Successful in 18s
Build, Test & Push Frontend / docker (push) Successful in 24s
2026-09-28 11:25:45 +02:00
lobo
01ae372b2d
feat(dashboard): show admin hints and add the hints admin page
Build, Test & Push Frontend / quality-check (push) Successful in 18s
Build, Test & Push Frontend / docker (push) Successful in 25s
2026-09-28 10:07:49 +02:00
lobo
6601277961
feat(library): add the game data correction dialog
Build, Test & Push Frontend / quality-check (push) Successful in 17s
Build, Test & Push Frontend / docker (push) Successful in 25s
2026-09-28 09:31:39 +02:00
lobo
afe00ceae9
feat(admin): add the admin users page and view as
Build, Test & Push Frontend / quality-check (push) Successful in 17s
Build, Test & Push Frontend / docker (push) Successful in 28s
2026-09-27 12:18:10 +02:00
lobo
46587dfb5c
feat(settings): let users delete their account
Build, Test & Push Frontend / quality-check (push) Successful in 16s
Build, Test & Push Frontend / docker (push) Successful in 26s
2026-09-27 11:46:22 +02:00
lobo
cfceca5e5e
feat(settings): show the build version of each service
Build, Test & Push Frontend / quality-check (push) Successful in 15s
Build, Test & Push Frontend / docker (push) Successful in 27s
2026-09-27 10:27:01 +02:00
lobo
9d1c7bb40d
feat(stats): add stats page and pile trend
...
Build, Test & Push Frontend / quality-check (push) Successful in 15s
Build, Test & Push Frontend / docker (push) Successful in 22s
Show the stat groups on /stats, the pile trend on the dashboard card,
one switch per group in the settings, and the shared groups on the
public profile.
2026-09-27 07:16:10 +02:00
lobo
83bbc2730d
feat(library): ask whether a game is finished
Build, Test & Push Frontend / quality-check (push) Successful in 15s
Build, Test & Push Frontend / docker (push) Successful in 23s
2026-09-26 19:00:57 +02:00
lobo
42ed0afe51
feat(images): report broken covers and achievement icons
Build, Test & Push Frontend / quality-check (push) Successful in 15s
Build, Test & Push Frontend / docker (push) Successful in 22s
2026-09-26 12:07:47 +02:00
lobo
ca75e6a530
feat(settings): link the Steam account through Steam
...
Build, Test & Push Frontend / quality-check (push) Successful in 16s
Build, Test & Push Frontend / docker (push) Successful in 25s
A Steam card in the settings links, verifies or unlinks the Steam
account through "Sign in through Steam". After the way back the page
shows the outcome and refreshes the session, so Core gets the new
Steam ID at once. Registration and settings no longer ask for a typed
Steam ID.
2026-09-26 11:20:04 +02:00
lobo
c52c5e02d2
feat(ui): add the ToBePlayed logo and name
...
Build, Test & Push Frontend / quality-check (push) Successful in 14s
Build, Test & Push Frontend / docker (push) Successful in 22s
The logo is a traced SVG whose colors follow the accent color;
violet shows it as designed. Favicon, PWA and Apple icons use
it with fixed colors. The header and landing page say
ToBePlayed instead of Game Log. Below 380 px the header shows
only the logo, and the home link keeps its name for screen
readers.
2026-09-26 07:05:57 +02:00
lobo
444b03acee
feat(library): search IGDB and add games by hand
Build, Test & Push Frontend / quality-check (push) Successful in 13s
Build, Test & Push Frontend / docker (push) Successful in 23s
2026-09-25 14:37:21 +02:00
lobo
d9a39dda22
feat(auth): use the cookie session and refresh on 401
...
The token is no longer stored; a tbp_session flag remembers the
login. apiFetch renews the session once on a 401 and sends the
request again. Parallel requests and other tabs share one refresh,
because Auth revokes the session when a refresh token is used twice.
Only a 401 from the refresh ends the session; a 502 or no network
shows the normal error.
2026-09-25 13:45:08 +02:00
lobo
5ff8d48c53
refactor(auth): send login token through apiFetch
...
Build, Test & Push Frontend / quality-check (push) Successful in 13s
Build, Test & Push Frontend / docker (push) Successful in 23s
All authenticated calls now use apiFetch, and only utils/auth.js
touches the stored token. The cookie login can then change these two
files instead of every page.
2026-09-25 11:29:14 +02:00
lobo
085fcf15a4
feat(achievements): dashboard card, library badge, 100 % hint and profile stats
2026-09-25 10:13:31 +02:00
lobo
2efdf64675
feat(play-next): page that picks the next backlog game
2026-09-25 09:29:15 +02:00
lobo
23e502bf5b
feat(dashboard): Steam avatar and a banner from the most played game
2026-09-24 15:27:33 +02:00
lobo
2c360c9421
feat(appearance): accent color, corners, wide layout and game art background
2026-09-24 15:06:16 +02:00
lobo
91d5672421
feat(library): time to beat, short-games filter and backlog hours
2026-09-24 14:40:41 +02:00
lobo
aa5124ea1e
feat(library): Steam wishlist tab with prices and discounts
...
The library page gets a Bibliothek | Wunschliste tab bar. The wishlist shows
the current store price, the discount and can show only games on sale.
2026-09-24 13:58:44 +02:00
lobo
89c5ba5253
feat(dashboard): playtime chart, recently played and a playing hint
...
The dashboard shows the playtime of the last 30 days and Steam's recently
played games. The detail page offers to set a backlog game to Playing when
Steam reports recent playtime; unsaved edits in the backlog card stay.
2026-09-24 13:41:37 +02:00
lobo
d4c0f8d8f3
feat(auth): tell the user when the session expired
...
Every 401 from Auth or Core now goes through useSessionExpired: the login page
says the session expired and returns to the last page after login. App no
longer removes a token that only the browser clock calls expired, so a backend
401 is the one signal. A 403 on the profile now shows an error instead.
2026-09-24 13:29:09 +02:00
lobo
bad11807e0
test: component tests with jsdom and Testing Library
...
First tests cover the library search debounce (fails on the old looping
version), the Pile of Shame states and the backlog save body. jsdom is
enabled per test file, so the plain util tests stay in the node environment.
2026-09-24 12:06:34 +02:00
lobo
c24c22d5ed
feat(dashboard): currently playing and pile of shame tiles
...
Build, Test & Push Frontend / quality-check (push) Successful in 10s
Build, Test & Push Frontend / docker (push) Successful in 22s
Pile of Shame shows the backlog count and share, a status bar and a random
backlog pick. Both tiles show the first-sync text while the initial sync runs;
a failed summary load shows a retry button.
2026-09-24 11:25:12 +02:00
lobo
f94e0aff15
feat(library): backlog status, rating, notes and priority in the UI
...
Build, Test & Push Frontend / quality-check (push) Successful in 7s
Build, Test & Push Frontend / docker (push) Successful in 31s
Detail page gets an edit card. The library gets status badges, status filter
chips and a debounced name search, both kept in the URL.
2026-09-24 11:04:42 +02:00
lobo
e480369a98
feat(ui): modern shadcn/ui theme with violet accent across all pages
...
Build, Test & Push Frontend / quality-check (push) Successful in 8s
Build, Test & Push Frontend / docker (push) Successful in 26s
Add shadcn/ui (Radix + Tailwind 4) components, zinc/violet theme tokens and self-hosted Inter. New header with user menu, Steam cover art, skeletons and toasts. Replace @mdi/font with lucide-react. Fix: top-owned list on the landing page only showed with top-played entries; numbers use the app language.
2026-09-24 10:07:32 +02:00
Andreas Dahm
38976e3240
Added more details and a landing page
Build, Test & Push Frontend / quality-check (push) Successful in 6s
Build, Test & Push Frontend / docker (push) Successful in 26s
2026-05-04 15:13:24 +02:00
Andreas Dahm
8b290d5a13
Displaying the game library with server side pagination
2026-05-04 11:48:08 +02:00
Andreas Dahm
9569bbcd70
Added counter for steam game counts
2026-04-28 15:41:38 +02:00
Andreas Dahm
f245108eb5
Changed app from vue to react
2026-03-24 15:08:06 +01:00
lobo
cf7f136e15
added first default implementation
2026-03-21 10:47:53 +01:00