Close remaining web gaps: rich profile, login history, lightbox/slider, flash client, admin chatlog/DJ/chart/WYSIWYG, niche API
- Rich profile (/u/[username]): wallet (credits/duckets/diamonds), friends grid (messenger_friendships), and owned rooms sections. - Login history: new website_login_logs table (model + migration 0007), recorded on every successful sign-in (ip + user-agent), surfaced on a new /settings/sessions page (with failed-attempt list from failed_logins). - Photos lightbox + home article slider (client components, no Swiper dep). - /client/flash launcher (SSO ticket like the Nitro page). - Admin: private chatlogs section in /admin/logs, /admin/radio/moderation (shout moderation), a "users by rank" inline bar chart on the dashboard, and a TinyMCE rich-text editor on the article admin forms. - Niche API: /api/values/[id], /api/guilds(+/[id]), /api/radio/auto-play. Verified live (prod, amx_test): login recorded → /settings/sessions shows it with device; profile renders wallet/friends/rooms; dashboard chart + private-chat logs + /client/flash + /api/guilds all OK. Reverted test data. tsc 0, vitest 49/49, next build 0.
This commit is contained in:
1 parent
f7b3845131
commit
4dfe698009
25 files changed
+1463
-64
No files matched your search
+11
-1
@@ -99,7 +99,17 @@
|
||||
"post": "Post",
|
||||
"loginToPost": "Log in to leave a guestbook message.",
|
||||
"guestbookEmpty": "No guestbook entries yet.",
|
||||
"unknownUser": "User #{id}"
|
||||
"unknownUser": "User #{id}",
|
||||
"statDuckets": "Duckets",
|
||||
"statDiamonds": "Diamonds",
|
||||
"walletTitle": "Wallet",
|
||||
"friendsTitle": "Friends",
|
||||
"friendsSubtitle": "People in the hotel they hang out with",
|
||||
"friendsEmpty": "No friends to show.",
|
||||
"roomsTitle": "Rooms",
|
||||
"roomsSubtitle": "Rooms they own",
|
||||
"roomsEmpty": "No rooms to show.",
|
||||
"roomUntitled": "Untitled room"
|
||||
},
|
||||
"rankings": {
|
||||
"title": "Rankings",
|
||||
|
||||
Reference in new issue
Block a user