feat(cms): add recovery history and operational reliability tools
This commit is contained in:
1 parent
89526af344
commit
1ef405be0a
92 files changed
+6384
-267
No files matched your search
+140
-3
@@ -916,7 +916,8 @@
|
||||
"tools": "Tools",
|
||||
"guilds": "Guilds",
|
||||
"itemsBase": "Items base",
|
||||
"adminMenu": "Admin menu"
|
||||
"adminMenu": "Admin menu",
|
||||
"operationsCenter": "Operations center"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Irányítópult",
|
||||
@@ -1597,6 +1598,40 @@
|
||||
"acceptBulk": "Accept prices into draft",
|
||||
"previous": "Previous",
|
||||
"next": "Next"
|
||||
},
|
||||
"integrity": {
|
||||
"title": "Catalog integrity",
|
||||
"description": "Check references, category paths, identifiers and furniture icons. Scanning does not change records.",
|
||||
"catalog": "Catalog",
|
||||
"normal": "Normal catalog",
|
||||
"bc": "Builders Club",
|
||||
"refresh": "Scan again",
|
||||
"working": "Checking…",
|
||||
"failed": "The operation could not be completed. Try again.",
|
||||
"stalePreview": "The catalog changed after the preview. Create a new preview before applying repairs.",
|
||||
"applied": "{count} categories reattached to the catalog root.",
|
||||
"iconsUnavailable": "The icon folder could not be read. Icon availability has not been verified.",
|
||||
"healthy": "No issues found in the completed checks.",
|
||||
"total": "{count} issues found. Showing {shown}.",
|
||||
"open": "Open",
|
||||
"reference": "Reference: {value}",
|
||||
"repairHint": "Preview categories whose parent no longer exists. Applying moves only these categories to the root and preserves every record. Cycles, missing furniture, icons and identifier conflicts require individual review.",
|
||||
"preview": "Preview safe repairs",
|
||||
"planned": "{count} categories will be moved:",
|
||||
"parentChange": "parent #{from} → catalog root",
|
||||
"apply": "Apply previewed repairs",
|
||||
"legacyTitle": "Advanced maintenance actions",
|
||||
"legacyHint": "These existing maintenance tools can rewrite identifiers and merge or remove duplicate records. They are separate from the non-destructive integrity check and its previewed parent repair.",
|
||||
"issues": {
|
||||
"missing_furniture": "Offer references missing furniture",
|
||||
"invalid_item_ids": "Invalid furniture identifiers",
|
||||
"missing_page": "Offer references a missing category",
|
||||
"unreachable_page": "Unreachable category",
|
||||
"category_cycle": "Category path contains a cycle",
|
||||
"missing_icon": "Missing furniture icon",
|
||||
"invalid_offer_id": "Invalid offer identifier",
|
||||
"duplicate_offer_id": "Repeated offer identifier"
|
||||
}
|
||||
}
|
||||
},
|
||||
"shop": {
|
||||
@@ -2303,6 +2338,51 @@
|
||||
"colStatus": "Status",
|
||||
"statusUnknown": "unknown",
|
||||
"searchPlaceholder": "Search by username…"
|
||||
},
|
||||
"history": {
|
||||
"preview": "Preview restore",
|
||||
"title": "Restore a recorded edit",
|
||||
"description": "Compare current values with the previous values before confirming. Only category settings, offer prices or news content are restored. Deleted records and category hierarchy cannot be restored here.",
|
||||
"loading": "Loading…",
|
||||
"unavailable": "This revision is unavailable or you do not have permission to restore it.",
|
||||
"conflict": "This record changed after the selected edit. Refresh and review its latest history before restoring.",
|
||||
"failed": "The restore could not be completed. Please reload and try again.",
|
||||
"field": "Field",
|
||||
"current": "Current value",
|
||||
"restore": "Value to restore",
|
||||
"confirm": "Confirm restore",
|
||||
"restoring": "Restoring…",
|
||||
"fields": {
|
||||
"caption": "Category name",
|
||||
"captionSave": "Internal category name",
|
||||
"pageLayout": "Category layout",
|
||||
"enabled": "Enabled",
|
||||
"visible": "Visible",
|
||||
"clubOnly": "Club members only",
|
||||
"vipOnly": "VIP members only",
|
||||
"minRank": "Minimum rank",
|
||||
"iconImage": "Category icon",
|
||||
"iconColor": "Icon colour",
|
||||
"pageHeadline": "Header image",
|
||||
"pageTeaser": "Preview image",
|
||||
"pageSpecial": "Special image",
|
||||
"pageText1": "Primary text",
|
||||
"pageText2": "Secondary text",
|
||||
"pageTextDetails": "Details text",
|
||||
"pageTextTeaser": "Preview text",
|
||||
"includes": "Included categories",
|
||||
"costCredits": "Credit price",
|
||||
"costPoints": "Points price",
|
||||
"pointsType": "Points currency",
|
||||
"title": "News title",
|
||||
"slug": "News address",
|
||||
"image": "News image",
|
||||
"shortStory": "Summary",
|
||||
"fullStory": "Article content",
|
||||
"status": "Publication status",
|
||||
"publishAt": "Scheduled publication",
|
||||
"publishedAt": "Publication date"
|
||||
}
|
||||
}
|
||||
},
|
||||
"wordfilter": {
|
||||
@@ -3200,7 +3280,17 @@
|
||||
"clearAssignment": "Clear assignment",
|
||||
"openOperation": "Open related area",
|
||||
"releaseOccurrences": "Occurrences by release",
|
||||
"releaseScope": "These releases appear in the retained records. The earliest occurrence here does not establish which release introduced the error."
|
||||
"releaseScope": "These releases appear in the retained records. The earliest occurrence here does not establish which release introduced the error.",
|
||||
"releaseFilter": "Version",
|
||||
"allReleases": "All versions",
|
||||
"period": "Period",
|
||||
"allRetained": "All retained events",
|
||||
"last24h": "Last 24 hours",
|
||||
"last7d": "Last 7 days",
|
||||
"sort": "Order",
|
||||
"recentFirst": "Most recent first",
|
||||
"frequentFirst": "Most frequent first",
|
||||
"filterScope": "Counts refer to matching retained events. Group status and latest details remain current across versions."
|
||||
},
|
||||
"installation": {
|
||||
"title": "Installation diagnostics",
|
||||
@@ -3240,7 +3330,11 @@
|
||||
"refreshHistory": "Refresh history",
|
||||
"showMoreItems": "Show 50 more items",
|
||||
"uncertainOutcome": "An interrupted item may already have changed local data. It is excluded from retries.",
|
||||
"reviewLocalData": "Review local data"
|
||||
"reviewLocalData": "Review local data",
|
||||
"ownerHistory": "Your imports and repairs, newest first. Retries never repeat completed or uncertain items.",
|
||||
"previousPage": "Previous",
|
||||
"nextPage": "Next",
|
||||
"page": "Page {page}"
|
||||
},
|
||||
"operations": {
|
||||
"title": "Needs attention",
|
||||
@@ -3325,6 +3419,49 @@
|
||||
"retry": "Retry",
|
||||
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
|
||||
"partialError": "Some results could not be loaded. Try again."
|
||||
},
|
||||
"permissionPreview": {
|
||||
"title": "Role access preview",
|
||||
"description": "Inspect CMS access without changing a session or impersonating a user.",
|
||||
"back": "Back to permissions",
|
||||
"role": "Role",
|
||||
"show": "Show access",
|
||||
"missing": "Select an existing role.",
|
||||
"entryAllowed": "Housekeeping entry allowed",
|
||||
"entryDenied": "Housekeeping entry denied: dashboard permission missing",
|
||||
"superAdmin": "This rank currently receives the highest-rank override.",
|
||||
"scope": "This preview shows one role only. A user may receive additional roles. Navigation customization can hide allowed sections; specific records and actions can require further checks.",
|
||||
"sections": "Sections",
|
||||
"allowed": "Allowed",
|
||||
"denied": "Denied",
|
||||
"actions": "CMS permissions",
|
||||
"actionScope": "A granted permission alone does not bypass dashboard entry, rank hierarchy, record ownership or action-specific validation.",
|
||||
"granted": "Granted",
|
||||
"notGranted": "Not granted"
|
||||
},
|
||||
"operationsCenter": {
|
||||
"title": "Operations center",
|
||||
"hint": "Track your durable imports and repairs, and the shared catalog export queue.",
|
||||
"syncTitle": "Source synchronization",
|
||||
"syncHint": "Source synchronization shows live progress on its own page. It has no durable history or automatic retry of failed items here. Catalog export reports the shared queue and latest result; item-level retry is not supported.",
|
||||
"openSync": "Open synchronization and export",
|
||||
"openImports": "Open furniture imports"
|
||||
},
|
||||
"operationsExport": {
|
||||
"title": "Catalog repository export",
|
||||
"hint": "Automatic export of bundles, icons, gamedata, translations and catalog SQL. The queue and latest result are shared across operators.",
|
||||
"loadError": "Unable to load export status",
|
||||
"queueError": "Unable to queue export",
|
||||
"loading": "Loading…",
|
||||
"disabled": "Export is disabled. Open synchronization to review its configuration.",
|
||||
"active": "Waiting for {count} operation(s) to finish.",
|
||||
"running": "Export in progress…",
|
||||
"pending": "{count} update(s) queued for export.",
|
||||
"idle": "No pending updates.",
|
||||
"lastCommit": "Last published commit:",
|
||||
"lastAttempt": "Last attempt: {date}",
|
||||
"queuing": "Queuing…",
|
||||
"queue": "Export now / retry"
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
||||
Reference in new issue
Block a user