Simo and Cursor
1d8efefce4
Fix Visual Manager empty categories: seed roots, harden tree API.
...
Seed root tabs from SSR, load the full tree without CLEAR_TREE races, coerce parent ids, and tolerate catalog_items page_id type mismatches so category pages actually appear.
Co-authored-by: Cursor <[email protected] >
2026-07-17 22:02:53 +02:00
Simo and Cursor
8083012445
Remove unused tooltip imports from catalog root tabs.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 21:26:48 +02:00
Simo and Cursor
b668ab3547
Rebuild Visual Manager as portal overlay matching habbo-next UX.
...
Base UI Dialog broke the Radix-era full-viewport manager. Use a body portal shell like habbo-next behavior, without DialogTitle/Popup, so tree + editor mount and nested pickers stay usable.
Co-authored-by: Cursor <[email protected] >
2026-07-17 21:26:35 +02:00
Simo
e7a6587b7f
Delete directory 'docs/superpowers'
2026-07-17 21:26:05 +02:00
Simo and Cursor
f6871807c9
Fix Visual Manager for Base UI: layout, tree load, no nested dialogs.
...
Move trigger outside Dialog.Root, use portal confirms and inline create forms, and load the catalog tree atomically so the manager matches the designed full-viewport UX.
Co-authored-by: Cursor <[email protected] >
2026-07-17 21:21:40 +02:00
Simo and Cursor
2ff5b47104
Harden catalog writes: bulk import batch + field allowlists.
...
Bulk import resolves names from items_base and refreshes RCON once. Page/item updates only accept an allowlisted field set.
Co-authored-by: Cursor <[email protected] >
2026-07-17 21:14:35 +02:00
Simo and Cursor
b52e25578d
Harden catalog admin: fix translate/quick-add, RCON sync, and confirm UX.
...
Restore broken Quick Add search, correct Translate saves to items_base and FurnitureData, reparent page deletes, sync RCON on create/toggle/BC mutations, and replace native confirms/prompts with dialogs.
Co-authored-by: Cursor <[email protected] >
2026-07-17 21:12:58 +02:00
Simo and Cursor
11d3cf31cc
Restore missing catalog admin API routes so Visual Manager works.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 20:57:55 +02:00
Simo and Cursor
ce8c3503e9
Fix language menu position by portaling out of sidebar overflow.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 20:50:41 +02:00
Simo and Cursor
06610e9ae3
Migrate tickets and CFH lists to DataTable; confirm destructive mod actions.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 20:37:50 +02:00
Simo and Cursor
cbdea70f83
Improve shop hub: CurrencyIcon on packages/vouchers, DataTable for transactions.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 20:32:45 +02:00
Simo and Cursor
a2ca9b3c23
Add shared ConfirmDialog; upgrade wordfilter with client actions and toasts.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 20:28:43 +02:00
Simo and Cursor
1039044e48
Improve admin UX: hub i18n, dynamic topbar, settings strings, staff logs DataTable.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 20:14:55 +02:00
Simo and Cursor
49d204e85c
Remove import/repair feature and related API routes.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 18:52:38 +02:00
Simo and Cursor
bb7d581084
Add exportPermissions and clean stray untracked src on deploy.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 18:48:34 +02:00
Simo and Cursor
9b411e69b4
Fix CMS translations path to src/messages.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 18:43:34 +02:00
Simo and Cursor
d2c33145a2
Fix checkbox and switch styles after Base UI migration.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 18:35:44 +02:00
Simo and Cursor
25f01b61b3
Migrate UI primitives from Radix to Base UI.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 18:31:07 +02:00
Simo and Cursor
90cff7e5d5
Show full-body size=m avatars on admin users list.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 18:21:21 +02:00
Simo and Cursor
8bc4264f43
Replace monolithic radix-ui with scoped @radix-ui packages.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 18:20:27 +02:00
Simo and Cursor
741c3b5f51
Remove unused Lucide imports from economy analytics page.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 18:16:09 +02:00
Simo and Cursor
d7405238ea
Use Habbo currency PNGs for admin credits, duckets, and diamonds icons.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 18:16:01 +02:00
Simo and Cursor
b42a313825
Fix transparent admin Select/Popover overlays and semantic surface tokens.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 18:10:52 +02:00
Simo and Cursor
665d87cbf4
Harden analytics pages against missing tables and RSC dynamic imports.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 18:07:53 +02:00
Simo and Cursor
63c7ff8570
Fix missing next/image import on radio AutoDJ page.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 18:03:07 +02:00
Simo and Cursor
d2c0619f2f
Clean up admin hub UX: tabs, chrome, and redundant headers.
...
Wire orphan routes into hub tabs, group Radio into primary/tools rows, show theme/language once on desktop, and remove duplicate page titles under AdminHubChrome.
Co-authored-by: Cursor <[email protected] >
2026-07-17 18:01:01 +02:00
Simo and Cursor
378705dd73
Add admin UX cleanup Phase 1 design spec.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 17:53:15 +02:00
Simo and Cursor
8cce8837bc
Serve avatars from Habbo imager instead of broken self-hosted proxy.
...
Co-authored-by: Cursor <[email protected] >
2026-07-15 21:51:02 +02:00
Simo and Cursor
2c68fb7e5a
Polish admin language dropdown layout and selection styles.
...
Co-authored-by: Cursor <[email protected] >
2026-07-15 21:46:54 +02:00
Simo and Cursor
ea07950374
Fix radio admin StatusCard icons showing as Unicode escapes.
...
Co-authored-by: Cursor <[email protected] >
2026-07-15 21:45:57 +02:00
Simo and Cursor
7b6c02c07d
Make admin light/dark mode follow real palettes end-to-end.
...
Light admin derives from the public light theme; dark keeps HK overrides. Remap inputs, cards, muted text, and kill the public wallpaper on admin so fonts and boxes stay readable in both modes.
Co-authored-by: Cursor <[email protected] >
2026-07-15 21:37:25 +02:00
Simo and Cursor
94904f2ddb
Add language picker to admin sidebar and topbar.
...
Reuse LanguageSwitcher with an admin-styled dropdown next to the theme toggle.
Co-authored-by: Cursor <[email protected] >
2026-07-15 21:33:11 +02:00
Simo and Cursor
1e3eb86495
Add dark/light toggle to admin sidebar and topbar.
...
Reuse ThemeSwitcher with an admin variant (Sun/Moon) next to the staff profile and in the housekeeping header.
Co-authored-by: Cursor <[email protected] >
2026-07-15 21:32:05 +02:00
Simo and Cursor
363c9b3d56
Reorganize admin into tabbed hubs with a condensed sidebar.
...
Replace the long flat nav with hub entries, shared AdminHubChrome tabs, and AdminPageShell. Existing URLs stay stable; Settings/Radio and other sections now share one chrome.
Co-authored-by: Cursor <[email protected] >
2026-07-15 21:29:36 +02:00
Simo and Cursor
367f69a439
Decouple admin from public max-w-7xl via (site) route group.
...
Public chrome and width live only under (site). /admin and /client inherit the root layout alone, so housekeeping width is no longer tied to the public template.
Co-authored-by: Cursor <[email protected] >
2026-07-15 21:12:52 +02:00
Simo and Cursor
a1dc7ff0a7
Set admin max width to 96rem, wider than public 80rem.
...
Public site stays max-w-7xl; admin is ~20% wider and still centered, never full viewport.
Co-authored-by: Cursor <[email protected] >
2026-07-15 21:09:20 +02:00
Simo and Cursor
e892b0426a
Cap admin shell at 75vw instead of full bleed.
...
Keeps housekeeping wider than the public max-w-7xl grid without stretching edge-to-edge on large screens.
Co-authored-by: Cursor <[email protected] >
2026-07-15 21:07:01 +02:00
Simo and Cursor
e101ea474e
Fix rooms list crash and rebuild CMS settings UI.
...
Rooms queried the wrong Prisma model and a non-existent owner relation. Settings now use grouped managed fields plus a searchable advanced key/value panel.
Co-authored-by: Cursor <[email protected] >
2026-07-15 21:02:57 +02:00
Simo and Cursor
c186f51ae0
Widen admin by escaping the public max-w-7xl chrome.
...
Render /admin outside the site header/nav/footer grid so housekeeping uses the full viewport width.
Co-authored-by: Cursor <[email protected] >
2026-07-15 20:59:53 +02:00
Simo and Cursor
0096c55f96
Fix theme switcher desync and auto-correct unreadable saved colors.
...
Sync dark-mode state from the DOM after mount so admin text no longer needs a double toggle, and normalize text/button colors against their surfaces on theme save.
Co-authored-by: Cursor <[email protected] >
2026-07-15 20:54:46 +02:00
Simo and Cursor
ed56bf0917
Fix multi-theme contrast: separate public tokens from admin remap.
...
Public cards no longer paint with always-dark admin surfaces, and admin pages fully remap background/text/surface so shadcn UI stays readable on the admin canvas.
Co-authored-by: Cursor <[email protected] >
2026-07-15 20:51:20 +02:00
Simo and Cursor
d7278c77f9
Fix automatic readable text contrast for public and admin themes.
...
Derive admin/public text colors from WCAG contrast, unify ThemeVars CSS emission, and keep navbar overrides in sync with readable vars.
Co-authored-by: Cursor <[email protected] >
2026-07-15 20:41:34 +02:00
Simo and Cursor
9d4d409b77
Restore self-hosted /api/imaging/avatar (and badge) endpoints.
...
The clothing importer and imager helpers pointed at a missing route; proxy Habbo with disk/memory cache so avatars work again.
Co-authored-by: Cursor <[email protected] >
2026-07-15 20:41:18 +02:00
Simo and Cursor
3403d3b19f
Fix admin permissions bounce, prefixes APIs, and Italian UI leftovers.
...
Gate permissions on ACL manage + resolve super-admin from live user ranks, restore prefixes API routes, and anglicize hardcoded admin copy with nav i18n.
Co-authored-by: Cursor <[email protected] >
2026-07-15 20:33:00 +02:00
Simo and Cursor
0e89d03940
Finish fine-grained ACL across remaining admin pages and actions.
...
Replace leftover requireStaff gates with module PERMS, drop hardcoded room rank thresholds, and expand contract tests so admin mutations cannot regress to dashboard-only checks.
Co-authored-by: Cursor <[email protected] >
2026-07-15 20:15:22 +02:00
Simo and Cursor
3c8a8ff888
Extend fine-grained ACL to settings, content, shop, and radio.
...
Gate pages and mutations on module PERMS instead of dashboard-only staff checks, add radio view/edit slugs with migration 0015, and expand the operations contract tests.
Co-authored-by: Cursor <[email protected] >
2026-07-15 20:11:55 +02:00
Simo and Cursor
f2427b3483
Harden admin ACL on critical write paths.
...
Gate translations, RCON, and user mutations on SETTINGS_EDIT, RCON_EXECUTE, and USERS_EDIT instead of dashboard/rank checks; redirect the legacy user-edit URL to the guarded canonical page.
Co-authored-by: Cursor <[email protected] >
2026-07-15 20:07:15 +02:00
Simo and Cursor
bae543baf6
Fix admin regressions from Biome refactor: theme init, mobile nav, i18n.
...
Restore valid browser JS in theme-init, close mobile sidebar on navigation, and split autoDjForm title/trackTitle across locales.
Co-authored-by: Cursor <[email protected] >
2026-07-15 20:02:25 +02:00
Simo
65e942b268
Update README.md
2026-07-12 20:54:51 +02:00
Simo
60278b9e71
feat: add admin operations suite
2026-07-12 20:11:28 +02:00
Simo
21a61068fb
test: define admin operations contracts
2026-07-12 20:01:25 +02:00
Simo
dbb9cad01e
docs: plan admin operations port
2026-07-12 20:00:46 +02:00
Simo
f5ba556e29
docs: define admin operations port
2026-07-12 19:59:45 +02:00
Simo
c0ffc74f9b
fix: externalize lzma for import build
2026-07-12 19:15:08 +02:00
Simo
eb759f54bf
feat: connect guarded asset import api
2026-07-12 19:12:25 +02:00
Simo
3497df9dfd
feat: add asset import services
2026-07-12 19:12:25 +02:00
Simo
4b596226e0
fix: complete acl management
2026-07-12 19:12:24 +02:00
Simo
667ec9af4c
test: define acl and import backend contracts
2026-07-12 19:01:28 +02:00
Simo
63ab21616c
docs: define acl and import backend work
2026-07-12 19:00:47 +02:00
Simo
84e4123f09
fix: use semantic colors across admin pages
2026-07-12 18:50:45 +02:00
Simo
0fe482009c
fix: isolate shared admin styling
2026-07-12 18:50:44 +02:00
Simo
4ce35e91fb
feat: add semantic admin palette
2026-07-12 18:47:23 +02:00
Simo
d4bcf89449
test: enforce admin theme isolation
2026-07-12 18:46:16 +02:00
Simo
1c581ca5df
docs: plan admin theme isolation
2026-07-12 18:45:38 +02:00
Simo
907ac9bf5b
docs: define admin theme isolation
2026-07-12 18:44:24 +02:00
Simo
2606092337
feat: add admin content module pages
2026-07-12 15:27:07 +02:00
Simo
f422bb4a0b
feat: add admin content module actions
2026-07-12 15:27:07 +02:00
Simo
b9525c8e6b
feat: add schema for admin content modules
2026-07-12 15:27:06 +02:00
Simo
9ead82bbca
docs: plan first admin module port
2026-07-12 15:22:00 +02:00
Simo
acc34ea8bf
docs: define first admin module port
2026-07-12 15:19:48 +02:00
Simo
41002aa36d
fix: preserve Next.js deploy cache
2026-07-12 15:17:16 +02:00
Simo
f0b4bc1630
fix: enforce semantic contrast across admin
2026-07-12 15:14:15 +02:00
Simo
45c8178cfa
docs: plan semantic theme contrast work
2026-07-12 15:08:13 +02:00
Simo
2227902c3e
docs: define semantic theme contrast design
2026-07-12 15:07:30 +02:00
Simo
b1a60adbc2
feat: rebrand CMS information as EpicNext
2026-07-12 14:49:37 +02:00
Simo
9cdd0b4000
feat: persist complete multitheme palettes
2026-07-12 14:49:36 +02:00
Simo
3fd2a27719
feat: generate preset-aware dark theme variables
2026-07-12 14:49:36 +02:00
Simo
48c596cf41
feat: add complete light and dark presets
2026-07-12 14:45:11 +02:00
Simo
a550b06a58
docs: plan EpicNext multitheme implementation
2026-07-12 14:43:43 +02:00
Simo
7ec3095abd
docs: define EpicNext multitheme design
2026-07-12 14:42:36 +02:00
Simo
5261cfaa1a
feat: add CMS info footer popup
2026-07-12 14:37:00 +02:00
Simo
7d3430aeca
fix: seed production ACL permissions
2026-07-12 14:29:01 +02:00
Simo
685033dcbd
Update .gitea/workflows/deploy.yaml
2026-07-12 14:22:07 +02:00
Simo
48047f2782
Update .gitea/workflows/deploy.yaml
2026-07-12 14:11:06 +02:00
Simo
ec7257f4ea
Update .gitea/workflows/deploy.yaml
2026-07-12 14:09:57 +02:00
Simo
50496b20be
Update .gitea/workflows/deploy.yaml
2026-07-12 14:08:44 +02:00
Simo
9b1bc2fd09
Update .gitea/workflows/deploy.yaml
2026-07-12 13:48:13 +02:00
Simo
69ca4b035b
Update .gitea/workflows/deploy.yaml
2026-07-12 13:45:34 +02:00
Simo
cdf180ee3f
fix: isolate proxy session decoding
2026-07-12 13:39:25 +02:00
Simo
c768d80cab
Update .gitea/workflows/deploy.yaml
2026-07-11 23:11:36 +02:00
Simo
f9213beb9c
Update .gitea/workflows/deploy.yaml
2026-07-11 23:09:57 +02:00
Simo
3140cbbbd4
revert 71e0457e7e
...
revert Update .gitea/workflows/deploy.yaml
Signed-off-by: Simo <[email protected] >
2026-07-11 23:07:56 +02:00
Simo
71e0457e7e
Update .gitea/workflows/deploy.yaml
...
Signed-off-by: Simo <[email protected] >
2026-07-11 23:06:52 +02:00
Simo
f48532f2d0
Update .gitea/workflows/deploy.yaml
...
Signed-off-by: Simo <[email protected] >
2026-07-11 23:05:14 +02:00
Simo
c57a894d7a
Update .gitea/workflows/deploy.yaml
2026-07-11 23:01:53 +02:00
Simo
c4bf6488d0
fix: use canonical Auth.js session in proxy
2026-07-11 22:55:26 +02:00
Simo
cfa7998dd7
fix: detect deployed Auth.js session cookie
2026-07-11 22:46:04 +02:00
Simo
02bbcba240
fix: decode production admin session cookie
2026-07-11 22:42:19 +02:00
Simo
f08e56cf53
fix: authorize super admins by dynamic highest rank
2026-07-11 22:35:40 +02:00
Simo
bb847176ad
Merge remote-tracking branch 'nextjs/main' into codex/publish-nextjs-current
2026-07-11 22:18:52 +02:00