diff --git a/backend/controllers/navigationController.js b/backend/controllers/navigationController.js index cdc8379..fc1d774 100644 --- a/backend/controllers/navigationController.js +++ b/backend/controllers/navigationController.js @@ -251,6 +251,10 @@ const menuStructure = { visible: ["mainadmin", "chatrooms"], path: "/admin/chatrooms" }, + servicesStatus: { + visible: ["mainadmin"], + path: "/admin/services/status" + }, interests: { visible: ["mainadmin", "interests"], path: "/admin/interests" diff --git a/frontend/src/i18n/locales/de/admin.json b/frontend/src/i18n/locales/de/admin.json index 8d250ad..a44a439 100644 --- a/frontend/src/i18n/locales/de/admin.json +++ b/frontend/src/i18n/locales/de/admin.json @@ -230,6 +230,44 @@ "updateSuccess": "Map wurde erfolgreich aktualisiert!", "deleteSuccess": "Map wurde erfolgreich gelöscht!" } + }, + "servicesStatus": { + "title": "Service-Status", + "description": "Überwache den Status von Backend, Chat und Daemon", + "status": { + "connected": "Verbunden", + "connecting": "Verbinde...", + "disconnected": "Nicht verbunden", + "error": "Fehler", + "unknown": "Unbekannt" + }, + "backend": { + "title": "Backend", + "connected": "Backend-Service ist erreichbar und verbunden" + }, + "chat": { + "title": "Chat", + "connected": "Chat-Service ist erreichbar und verbunden" + }, + "daemon": { + "title": "Daemon", + "connected": "Daemon-Service ist erreichbar und verbunden", + "connections": { + "title": "Aktive Verbindungen", + "none": "Keine aktiven Verbindungen", + "userId": "Benutzer-ID", + "connections": "Verbindungen", + "duration": "Verbindungsdauer", + "lastPong": "Zeit seit letztem Pong", + "pingTimeouts": "Ping-Timeouts", + "pongReceived": "Pong empfangen", + "yes": "Ja", + "no": "Nein", + "notConnected": "Daemon nicht verbunden", + "sendError": "Fehler beim Senden der Anfrage", + "error": "Fehler beim Abrufen der Verbindungen" + } + } } } } \ No newline at end of file diff --git a/frontend/src/i18n/locales/de/navigation.json b/frontend/src/i18n/locales/de/navigation.json index 30cfc1d..a9b91f6 100644 --- a/frontend/src/i18n/locales/de/navigation.json +++ b/frontend/src/i18n/locales/de/navigation.json @@ -64,7 +64,8 @@ "match3": "Match3 Level", "taxiTools": "Taxi-Tools" }, - "chatrooms": "Chaträume" + "chatrooms": "Chaträume", + "servicesStatus": "Service-Status" }, "m-friends": { "manageFriends": "Freunde verwalten", diff --git a/frontend/src/i18n/locales/en/admin.json b/frontend/src/i18n/locales/en/admin.json index 0caf239..3391ff0 100644 --- a/frontend/src/i18n/locales/en/admin.json +++ b/frontend/src/i18n/locales/en/admin.json @@ -230,6 +230,44 @@ "updateSuccess": "Map updated successfully!", "deleteSuccess": "Map deleted successfully!" } + }, + "servicesStatus": { + "title": "Service Status", + "description": "Monitor the status of Backend, Chat and Daemon", + "status": { + "connected": "Connected", + "connecting": "Connecting...", + "disconnected": "Disconnected", + "error": "Error", + "unknown": "Unknown" + }, + "backend": { + "title": "Backend", + "connected": "Backend service is reachable and connected" + }, + "chat": { + "title": "Chat", + "connected": "Chat service is reachable and connected" + }, + "daemon": { + "title": "Daemon", + "connected": "Daemon service is reachable and connected", + "connections": { + "title": "Active Connections", + "none": "No active connections", + "userId": "User ID", + "connections": "connections", + "duration": "Connection Duration", + "lastPong": "Time Since Last Pong", + "pingTimeouts": "Ping Timeouts", + "pongReceived": "Pong Received", + "yes": "Yes", + "no": "No", + "notConnected": "Daemon not connected", + "sendError": "Error sending request", + "error": "Error fetching connections" + } + } } } } \ No newline at end of file diff --git a/frontend/src/i18n/locales/en/navigation.json b/frontend/src/i18n/locales/en/navigation.json index 43d7c24..7c0d47f 100644 --- a/frontend/src/i18n/locales/en/navigation.json +++ b/frontend/src/i18n/locales/en/navigation.json @@ -64,7 +64,8 @@ "match3": "Match3 Levels", "taxiTools": "Taxi Tools" }, - "chatrooms": "Chat rooms" + "chatrooms": "Chat rooms", + "servicesStatus": "Service Status" }, "m-friends": { "manageFriends": "Manage friends", diff --git a/frontend/src/router/adminRoutes.js b/frontend/src/router/adminRoutes.js index bd2547e..c7e701d 100644 --- a/frontend/src/router/adminRoutes.js +++ b/frontend/src/router/adminRoutes.js @@ -8,6 +8,7 @@ import AdminMinigamesView from '../views/admin/MinigamesView.vue'; import AdminTaxiToolsView from '../views/admin/TaxiToolsView.vue'; import AdminUsersView from '../views/admin/UsersView.vue'; import UserStatisticsView from '../views/admin/UserStatisticsView.vue'; +import ServicesStatusView from '../views/admin/ServicesStatusView.vue'; const adminRoutes = [ { @@ -69,6 +70,12 @@ const adminRoutes = [ name: 'AdminTaxiTools', component: AdminTaxiToolsView, meta: { requiresAuth: true } + }, + { + path: '/admin/services/status', + name: 'AdminServicesStatus', + component: ServicesStatusView, + meta: { requiresAuth: true } } ]; diff --git a/frontend/src/views/admin/ServicesStatusView.vue b/frontend/src/views/admin/ServicesStatusView.vue new file mode 100644 index 0000000..33c5a5b --- /dev/null +++ b/frontend/src/views/admin/ServicesStatusView.vue @@ -0,0 +1,419 @@ + + + + + +