Simo and Cursor
dd806d2527
Reorganize admin nav by feature and soften light mode.
...
Sidebar lists one entry per feature; keep hub tabs only for sibling views (events, tickets, ranks/permissions, moderation, radio, analytics, devops). Soft cool-gray light canvas/surface replaces harsh white.
Co-authored-by: Cursor <[email protected] >
2026-07-18 22:06:41 +02:00
Simo and Cursor
bcbdca841b
i18n observability hub: analytics pages and log tables.
...
Translate analytics overview/activity/economy plus peak-hours/revenue charts, and audit/chat/commands/trades DataTables (en/nl/it). Includes prior events/polls detail i18n.
Co-authored-by: Cursor <[email protected] >
2026-07-18 21:51:55 +02:00
Simo and Cursor
a25008deb5
i18n events/polls detail pages, forms, and empty sections.
...
Align detail headers with admin chrome, translate stats/forms/breadcrumbs, and use admin-empty for prizes, winners, registrations, and questions.
Co-authored-by: Cursor <[email protected] >
2026-07-18 21:46:52 +02:00
Simo and Cursor
8009491245
i18n events and polls admin DataTable columns.
...
Wire column headers, search placeholders, and status/type labels through pages.admin.events/polls (en/nl/it), matching tickets-table.
Co-authored-by: Cursor <[email protected] >
2026-07-18 21:43:27 +02:00
Simo and Cursor
3cb8b92cb3
Polish admin hub pages: drop duplicate headers, align CTAs and empties.
...
Remove redundant titles under AdminHubChrome, style events/polls create flows with admin chrome + i18n, and standardize empty states / teams form classes.
Co-authored-by: Cursor <[email protected] >
2026-07-18 21:28:15 +02:00
Simo and Cursor
cd4233b430
fix(i18n): fill missing Dutch shop, transactions, and voucher admin keys
...
Align nl.json with en/it for admin shop orders columns and related payment hub labels.
Co-authored-by: Cursor <[email protected] >
2026-07-18 21:11:50 +02:00
Simo and Cursor
1f552c2822
Polish public error and 404 screens with brand atmosphere.
...
Local Build and Deploy / deploy (push) Successful in 1m31s
Shared ErrorScreen composition, i18n for en/nl/it, Sentry on route errors, and a self-contained global-error fallback that matches the hotel gold theme.
Co-authored-by: Cursor <[email protected] >
2026-07-18 20:00:04 +02:00
openhands
de9f837da1
fix(i18n/nl): add missing hubs/tickets/cfh sections to Dutch translations
Local Build and Deploy / deploy (push) Successful in 1m14s
2026-07-17 21:05:45 +02:00
openhands
b78d691281
fix(i18n): add missing save/importTitle keys, sync admin keys across all languages
Local Build and Deploy / deploy (push) Successful in 1m6s
2026-07-17 20:46:58 +02:00
Simo and Cursor
06610e9ae3
Migrate tickets and CFH lists to DataTable; confirm destructive mod actions.
...
Local Build and Deploy / deploy (push) Successful in 1m9s
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.
...
Local Build and Deploy / deploy (push) Successful in 1m3s
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.
...
Local Build and Deploy / deploy (push) Successful in 1m6s
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.
...
Local Build and Deploy / deploy (push) Successful in 1m12s
Co-authored-by: Cursor <[email protected] >
2026-07-17 20:14:55 +02:00
openhands
604e63da51
fix(i18n): auto-translate housekeeping keys via existing translation pairs
...
Local Build and Deploy / deploy (push) Successful in 1m12s
For each language, ~55 housekeeping keys that were English fallbacks have
been translated by matching against existing translations in the same file.
Remaining ~35 keys per language stay as English fallbacks where no
existing translation pair was available in that locale.
2026-07-17 20:10:05 +02:00
openhands
5c58a2b469
refactor(housekeeping): sortable columns, inline edit Enter/Escape, select all matching, i18n date
...
Local Build and Deploy / deploy (push) Successful in 1m0s
- Sortable columns: click headers to sort by permission/description/group/rank
- Inline edit: click rank value to edit, Enter to save, Escape to cancel
- Select all matching button when partial selection is active
- Select-all checkbox shows all-pages selection state
- AuditSection uses Intl.DateTimeFormat with CMS locale instead of toLocaleString
- Add selectAllMatching translation key to all 22 locales
2026-07-17 20:03:42 +02:00
openhands
f1e4e32a1e
refactor(housekeeping): modal confirm, bulk delete, search debounce, audit inline, form reset
...
Local Build and Deploy / deploy (push) Successful in 1m6s
- Replace browser confirm() with custom ConfirmModal component
- Add search debounce (300ms) before syncing URL params
- Reset add-permission form after successful submit
- Add bulk select/delete with checkbox column and bulkDeletePermissions action
- AuditSection fetches logs server-side via getAuditLogs and shows inline table
- Add 10 new i18n keys (cancel, confirm, confirmDeletePermission,
confirmBulkDelete, deleteSelected, confirmClearAllDesc,
auditTime, auditUser, auditAction, auditTarget) synced to all 22 locales
2026-07-17 19:53:53 +02:00
openhands
d693d169dd
refactor(housekeeping): return result from bulkImport, remove dead server calls, sync i18n
...
Local Build and Deploy / deploy (push) Successful in 1m15s
- bulkImportPermissions now returns {count, errors} instead of void
- ImportSection shows per-entry error details in toast
- Remove testRankPermission server action (test is 100% client-side)
- Clean up unused testing state in TestSection
- Sync pages.admin.{import,translations} keys to all 20 languages
- Add importedWithErrors translation key to all locales
2026-07-17 19:44:15 +02:00
openhands
702ab9fc67
fix(i18n): sync housekeeping translation keys to all 20 languages
...
Local Build and Deploy / deploy (push) Successful in 1m25s
All languages now have the full housekeeping key set (78 keys) from en.json,
including loading, pagination, presets, test, import/export, audit, etc.
Previously only en.json and nl.json had these keys.
2026-07-17 19:36:54 +02:00
openhands
c0680d7ae5
fix(i18n): remove trailing commas in en.json and nl.json
Local Build and Deploy / deploy (push) Successful in 1m1s
2026-07-17 19:31:09 +02:00
openhands
70f5e37373
refactor(housekeeping): split client, add loading states, URL persistence, fix dead code
...
Local Build and Deploy / deploy (push) Failing after 48s
- Split ManageClient into ManageSection, PresetsSection, TestSection,
ImportSection, ExportSection - each tab only renders what it needs
- Add loading/disabled states to preset, import, export, clear buttons
- Persist search and group filter via URL searchParams (survives refresh)
- Remove dead getAuditHistory export from actions
- Fix testRankPermission - remove unnecessary revalidatePath with JSON result
- Clean up unused errors/count variables in bulkImportPermissions
- Add 'loading' translation key to housekeeping section (en/nl)
2026-07-17 19:28:19 +02:00
openhands
0a350a354e
fix(i18n): move toast/pagination keys into housekeeping section
...
Local Build and Deploy / deploy (push) Failing after 44s
- Move saved, deleted, errorOccurred, emptyInput, invalidJson, imported,
presetApplied, cleared, invalidRank, testDone, testing, prev, next
from translations section into pages.admin.housekeeping
- Remove duplicate misplaced keys
2026-07-17 19:23:21 +02:00
openhands
6ba8928791
fix(admin): add client-side search, pagination, toast feedback, confirm dialogs and test result display
...
Local Build and Deploy / deploy (push) Successful in 1m21s
- Rewrite manage/import/presets/test tabs as client component with sonner toasts
- Add client-side search filtering (no page reload)
- Add pagination (25 per page)
- Add confirm dialog before delete and clear-all
- Show test results inline after submission
- Add toast feedback for import, preset apply, save, delete
- Add prev/next pagination labels
2026-07-17 19:17:12 +02:00
openhands
98d4b715df
feat(admin): extend housekeeping permissions page with groups, presets, audit, test, import/export, rank overview and dependency tracking
...
Local Build and Deploy / deploy (push) Successful in 1m14s
- Add group_name, depends_on and updated_by columns to website_housekeeping_permissions
- Add migration 0016 for new columns
- Rewrite housekeeping page with 7 tabs: Overview, Manage, Import/Export, Rank overview, Presets, Test, Audit log
- Add permission groups/categories with filtering
- Add bulk JSON import/export
- Add rank overview grouped by permission category
- Add permission presets for Moderator (rank 5), Admin (rank 7), Super Admin (rank 8)
- Add audit logging for all permission changes via AdminAuditLog
- Add test mode to check permissions by rank
- Add dependency tracking with warnings for missing dependencies
- Add overview dashboard with statistics
- Add Dutch and English translations for all new features
2026-07-17 19:02:23 +02:00
Simo and Cursor
49d204e85c
Remove import/repair feature and related API routes.
...
Local Build and Deploy / deploy (push) Successful in 1m41s
Co-authored-by: Cursor <[email protected] >
2026-07-17 18:52:38 +02:00
Simo and Cursor
363c9b3d56
Reorganize admin into tabbed hubs with a condensed sidebar.
...
Local Build and Deploy / deploy (push) Successful in 57s
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
3403d3b19f
Fix admin permissions bounce, prefixes APIs, and Italian UI leftovers.
...
Local Build and Deploy / deploy (push) Successful in 56s
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
bae543baf6
Fix admin regressions from Biome refactor: theme init, mobile nav, i18n.
...
Local Build and Deploy / deploy (push) Successful in 54s
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
openhands
59b63d6e70
Fix real Biome bugs: inner declarations, dup keys, assign-in-expr, implicit any, cookie, a11y svg/keyboard, json
Local Build and Deploy / deploy (push) Successful in 51s
2026-07-14 18:58:40 +02:00
openhands
df38dccbf1
style: format code biome
Local Build and Deploy / deploy (push) Failing after 46s
2026-07-13 21:57:41 +02:00
openhands
8bf1aa2fa7
Use translations for emulator page (was hardcoded Italian)
Local Build and Deploy / deploy (push) Successful in 58s
2026-07-12 23:14:35 +02:00
openhands
5ae29e2a58
Add i18n support for import page and translations tabs
Local Build and Deploy / deploy (push) Successful in 1m7s
2026-07-12 23:11:59 +02:00
openhands
72a3284ddd
Fix Cyrillic-translated HTML tags in Serbian and Bulgarian translations
Local Build and Deploy / deploy (push) Successful in 49s
2026-07-12 22:54:27 +02:00
openhands
6ddfcafa67
Fix placeholders in machine translations and add Russian translation
Local Build and Deploy / deploy (push) Successful in 54s
2026-07-12 22:37:52 +02:00
openhands
efe467d352
Add 12 more languages: ro, hu, cs, sk, da, no, el, bg, hr, sr, uk, ru
Local Build and Deploy / deploy (push) Successful in 1m0s
2026-07-12 21:52:22 +02:00
openhands
395b43081c
Add Turkish language support
Local Build and Deploy / deploy (push) Successful in 1m6s
2026-07-12 21:47:50 +02:00
openhands
e3b792f5a3
Add Portuguese, Polish, and Swedish language support with flags
Local Build and Deploy / deploy (push) Failing after 1m7s
2026-07-12 21:45:35 +02:00
openhands
0bf4a9367a
Add missing Italian translations for admin nav: import, sounds, translations
Local Build and Deploy / deploy (push) Successful in 1m5s
2026-07-12 21:37:04 +02:00
Simo
5b4228261a
Reapply "Add missing admin action files and navigation links"
...
This reverts commit 4d515bc400 .
2026-07-11 20:52:56 +02:00
Simo
4d515bc400
Revert "Add missing admin action files and navigation links"
...
This reverts commit 41be6835bf .
2026-07-11 20:37:56 +02:00
openhands
2465ff2170
Add translation keys for new admin nav items in all languages
2026-07-11 12:28:52 +02:00
openhands
41be6835bf
Add missing admin action files and navigation links
...
- Add 11 missing server action files: badges, bulk-users, catalog, catalog-bc, catalog-items, import-badges, import-furni, multi-account-detect, permissions, rooms, soundtracks
- Add missing admin navigation links: tickets, sounds, translations, import, radio sub-pages
- Add translation keys for all new navigation items
2026-07-11 12:01:05 +02:00
openhands
b058a3827b
Fix theme consistency, i18n completeness, CSS variable naming, and hardcoded strings
2026-07-09 18:13:22 +02:00
openhands
fc57fb06d1
chore: remove dead code, unused CSS, unused components, and clean up git tracking
...
- Remove storage/logs/ and prod.log from git tracking; add to .gitignore
- Remove unused AvatarCarousel and ArticleSlider components
- Remove unused SkeletonTable export from ui.tsx
- Remove unused ChevronDown import from admin layout
- Remove 13 unused CSS classes (icon-base, nav-*, navigation-icon*, .app.dark,
text-body, transition-base, card-base, admin-info-grid, .coin.*)
- Remove duplicate translation keys (openMenu/closeMenu in en.json)
- Fix admin-bans to use Prisma-generated bans_type enum
- Create shared AdminPageHeader component and formatDate utility
- Add logger and generateRequestId for structured logging
- All 58 tests pass, typecheck clean, build succeeds
2026-07-08 13:27:01 +02:00
openhands
29f8a44f0f
Add favicon generator with color picker and text
2026-07-05 23:32:24 +02:00
openhands
25c3040949
Add favicon upload option in admin panel
2026-07-05 23:22:44 +02:00
openhands
befa4ec282
Translate admin panel to all 6 languages
2026-07-04 21:21:15 +02:00
openhands
f381aa987f
Fix dropdown visibility and add missing translations
2026-07-04 20:18:30 +02:00
openhands
8bcbc501ba
Performance, SEO, a11y, and code quality improvements
...
CI / check (push) Has been cancelled
1. Performance: 25 pages switched from force-dynamic to revalidate=300 (ISR);
2 pages (community, developers) now fully static (SSG)
2. DB indexes: Added @@index on foreign keys for WebsiteArticles,
WebsiteArticleReactions, WebsiteArticleComments, WebsiteHelpCenterTickets,
WebsiteShopArticles, RadioSongRequests, StaffActivities
3. SEO: Added robots.ts, sitemap.ts, canonical URLs, Open Graph + Twitter
Card metadata on root layout and news articles
4. A11Y: Replaced <details>/<summary> dropdowns with accessible button-based
NavDropdown (aria-expanded, aria-haspopup, role=menu). MobileNav now
uses translated aria-label, aria-expanded, aria-controls, role=menu
5. Code quality: Added try/catch to updateArticle/deleteArticle; deleteArticle
now uses prisma. for atomicity
6. CI/CD: Added GitHub Actions workflow (typecheck + test)
7. i18n: Added openMenu/closeMenu keys to all 6 locales
8. Observability: Health endpoint now checks SMTP reachability when configured
9. Loading states: Added loading.tsx for root, admin, and news sections
10. Word filter cache: Added 60s TTL auto-refresh instead of manual cache bust
2026-07-04 19:41:04 +02:00
remco
d6ccc250f6
feat: mobile nav, radio layout/requests, leaderboard tabs, client i18n, habbo background, navbar fixes
2026-07-01 15:59:02 +02:00
remco
1de72863db
latest changes
2026-07-01 15:06:52 +02:00