feat: comprehensive CMS improvements
CI / runtime-diagnostics (push) Skipped
CI / release (push) Skipped
CI / check (push) Failing after 0s
CI / deploy (push) Skipped

- Fix DOMPurify SSR crash (use isomorphic-dompurify)
- Fix SanitizedHtml to sanitize by default
- Add auth guards to studio/catalog maintenance pages
- Add update/edit to vouchers CRUD
- Add update/edit to rare-values CRUD
- Add approve workflow to applications page
- Add edit form to guilds detail page
- Add SEO metadata to all public pages (21 pages)
- Fix mobile nav accessibility (focus trap, aria attributes)
- Fix missing labels and table accessibility
- Add dynamic imports for heavy client components (6 components)
- Fix silent error swallowing (40+ locations)
- Add content scheduling for articles (publishAt, status)
- Wire up 12 missing webhook notification triggers
- Add global search to admin panel
- Add bulk actions to admin users table
- Fix JSON formatting and a11y issues
This commit is contained in:
openhands committed 2026-09-03 16:00:32 +02:00
1 parent b810b16672
commit 30c95b1a5c
78 files changed
+2252 -134

No files matched your search

+35 -3
View File
@@ -1069,7 +1069,17 @@
"commandLog": "Command log",
"tradeLog": "Trade log",
"tools": "Tools",
"studio": "Studio"
"studio": "Studio",
"search": {
"placeholder": "Search…",
"noResults": "No results found",
"users": "Users",
"articles": "Articles",
"rooms": "Rooms",
"guilds": "Guilds",
"shop": "Shop",
"hint": "Start typing to search across users, articles, rooms, guilds and shop items"
}
},
"dashboard": {
"title": "Dashboard",
@@ -1120,7 +1130,13 @@
"saving": "Saving…",
"deleteArticle": "Delete article",
"deleteConfirm": "This action cannot be undone. The article will be permanently removed.",
"cancel": "Cancel"
"cancel": "Cancel",
"status": "Status",
"statusDraft": "Draft",
"statusScheduled": "Scheduled",
"statusPublished": "Published",
"publishAt": "Publish at",
"publishedAt": "Published at"
}
},
"events": {
@@ -1893,7 +1909,20 @@
"noMembers": "No members.",
"back": "Back to guilds",
"viewPublic": "Open public page",
"disband": "Disband guild"
"disband": "Disband guild",
"edit": "Edit guild",
"save": "Save",
"saving": "Saving…",
"updated": "Guild updated",
"updateError": "Could not update guild",
"formName": "Name",
"formDescription": "Description",
"formState": "State",
"formForum": "Forum",
"formReadForum": "Read forum",
"formPostMessages": "Post messages",
"formPostThreads": "Post threads",
"formModForum": "Moderate forum"
},
"transactions": {
"title": "Transactions",
@@ -1943,8 +1972,10 @@
"confirmDelete": "Delete voucher \"{code}\"?",
"created": "Voucher created",
"deleted": "Voucher deleted",
"updated": "Voucher updated",
"createError": "Could not create voucher",
"deleteError": "Could not delete voucher",
"updateError": "Could not update voucher",
"statusActive": "Active",
"statusUsedUp": "Used up",
"statusExpired": "Expired",
@@ -2010,6 +2041,7 @@
"items": "Items",
"addCategory": "Add category",
"editCategory": "Edit category",
"editValue": "Edit value",
"deleteCategory": "Delete category",
"noCategories": "No rare value categories yet",
"confirmDeleteCategory": "Delete category \"{name}\" and all its items?",