feat(observability): phases 4-7 - complete frontend UI (big bang)
Add all frontend pages for observability & proxy management: - Proxy Viewer: /proxies with grouped view, filtering, health indicators - Proxy Creation: form with live validation, diagnostic hints, edit/delete - Stale Containers: /containers/stale with dashboard widget, cleanup actions - Event Log: /events with filters, pagination, real-time SSE streaming - Navigation: proxies and events links in sidebar - i18n: full EN/RU translations for all new features - Settings: stale threshold configuration
This commit is contained in:
+119
-2
@@ -7,6 +7,8 @@
|
||||
"dashboard": "Dashboard",
|
||||
"projects": "Projects",
|
||||
"deploy": "Deploy",
|
||||
"proxies": "Proxies",
|
||||
"events": "Events",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"dashboard": {
|
||||
@@ -19,7 +21,8 @@
|
||||
"retry": "Retry",
|
||||
"noProjects": "No projects yet.",
|
||||
"addFirst": "Add your first project",
|
||||
"loadFailed": "Failed to load dashboard"
|
||||
"loadFailed": "Failed to load dashboard",
|
||||
"staleContainers": "Stale Containers"
|
||||
},
|
||||
"projects": {
|
||||
"title": "Projects",
|
||||
@@ -176,7 +179,9 @@
|
||||
"registries": "Registries",
|
||||
"credentials": "Credentials",
|
||||
"authentication": "Authentication",
|
||||
"appearance": "Appearance"
|
||||
"appearance": "Appearance",
|
||||
"staleThreshold": "Stale threshold (days)",
|
||||
"staleThresholdHelp": "Containers inactive for longer than this will be flagged as stale."
|
||||
},
|
||||
"settingsGeneral": {
|
||||
"title": "General Settings",
|
||||
@@ -320,6 +325,27 @@
|
||||
"loginFailed": "Login failed",
|
||||
"networkError": "Network error"
|
||||
},
|
||||
"proxies": {
|
||||
"title": "Proxy Manager",
|
||||
"create": "Create Proxy",
|
||||
"standalone": "Standalone Proxies",
|
||||
"managed": "Managed Proxies",
|
||||
"noProxies": "No proxies found",
|
||||
"noProxiesDesc": "Create a standalone proxy or deploy a project with proxy enabled.",
|
||||
"filter": {
|
||||
"search": "Search by domain or destination...",
|
||||
"health": "Health",
|
||||
"type": "Type",
|
||||
"all": "All",
|
||||
"clear": "Clear filters"
|
||||
},
|
||||
"health": {
|
||||
"healthy": "Healthy",
|
||||
"unhealthy": "Unhealthy",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lastChecked": "Last checked"
|
||||
},
|
||||
"common": {
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Confirm",
|
||||
@@ -387,6 +413,97 @@
|
||||
"search": "Search...",
|
||||
"noResults": "No results found"
|
||||
},
|
||||
"stale": {
|
||||
"title": "Stale Containers",
|
||||
"noStale": "No stale containers",
|
||||
"noStaleDesc": "All containers are healthy and running.",
|
||||
"cleanup": "Clean up",
|
||||
"cleanupAll": "Clean up all",
|
||||
"confirmCleanup": "This will stop and remove the container. Continue?",
|
||||
"confirmBulkCleanup": "This will stop and remove all stale containers. Continue?",
|
||||
"daysStale": "days stale",
|
||||
"lastAlive": "Last alive",
|
||||
"count": "Stale",
|
||||
"cleanedUp": "Container cleaned up",
|
||||
"bulkCleanedUp": "{count} containers cleaned up",
|
||||
"cleanupFailed": "Cleanup failed",
|
||||
"loadFailed": "Failed to load stale containers"
|
||||
},
|
||||
"proxies": {
|
||||
"title": "Proxies",
|
||||
"create": "Create Proxy",
|
||||
"noProxies": "No proxies configured yet.",
|
||||
"noProxiesDesc": "Create a standalone proxy or deploy a project to see proxies here.",
|
||||
"standalone": "Standalone Proxies",
|
||||
"managed": "Managed",
|
||||
"lastChecked": "Last checked",
|
||||
"health": {
|
||||
"healthy": "Healthy",
|
||||
"unhealthy": "Unhealthy",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"filter": {
|
||||
"search": "Search proxies...",
|
||||
"health": "Health",
|
||||
"type": "Type",
|
||||
"all": "All",
|
||||
"clear": "Clear filters"
|
||||
},
|
||||
"form": {
|
||||
"title": "Create Proxy",
|
||||
"editTitle": "Edit Proxy",
|
||||
"destination": "Destination URL / IP",
|
||||
"port": "Port",
|
||||
"domain": "Domain",
|
||||
"domainHelp": "The public domain for this proxy.",
|
||||
"validate": "Validate",
|
||||
"validating": "Validating...",
|
||||
"create": "Create Proxy",
|
||||
"save": "Save Changes",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"deleteConfirm": "Delete this proxy? This cannot be undone."
|
||||
},
|
||||
"validation": {
|
||||
"title": "Destination Validation",
|
||||
"syntax": "URL syntax",
|
||||
"dns": "DNS resolution",
|
||||
"tcp": "TCP connection",
|
||||
"http": "HTTP response",
|
||||
"checking": "Checking...",
|
||||
"skipped": "Skipped"
|
||||
}
|
||||
},
|
||||
"events": {
|
||||
"title": "Event Log",
|
||||
"noEvents": "No events found",
|
||||
"noEventsDesc": "Events will appear here as they occur.",
|
||||
"loadMore": "Load more",
|
||||
"newEvents": "new events",
|
||||
"filter": {
|
||||
"severity": "Severity",
|
||||
"source": "Source",
|
||||
"dateRange": "Date range",
|
||||
"search": "Search events...",
|
||||
"lastHour": "Last hour",
|
||||
"last24h": "Last 24 hours",
|
||||
"last7d": "Last 7 days",
|
||||
"allTime": "All time",
|
||||
"clear": "Clear filters"
|
||||
},
|
||||
"severity": {
|
||||
"info": "Info",
|
||||
"warn": "Warning",
|
||||
"error": "Error"
|
||||
},
|
||||
"source": {
|
||||
"deploy": "Deploy",
|
||||
"container": "Container",
|
||||
"proxy": "Proxy",
|
||||
"system": "System"
|
||||
},
|
||||
"metadata": "Details"
|
||||
},
|
||||
"language": {
|
||||
"en": "English",
|
||||
"ru": "Russian"
|
||||
|
||||
Reference in New Issue
Block a user