diff --git a/static/skywire-manager-src/src/app/components/pages/node/apps/node-apps-list/node-apps-list.component.html b/static/skywire-manager-src/src/app/components/pages/node/apps/node-apps-list/node-apps-list.component.html index 96dcaa7c6b..a2d50c971f 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/apps/node-apps-list/node-apps-list.component.html +++ b/static/skywire-manager-src/src/app/components/pages/node/apps/node-apps-list/node-apps-list.component.html @@ -96,10 +96,7 @@ - + {{ app.name }} diff --git a/static/skywire-manager-src/src/app/components/pages/node/apps/node-apps-list/node-apps-list.component.ts b/static/skywire-manager-src/src/app/components/pages/node/apps/node-apps-list/node-apps-list.component.ts index ad5873f038..f804f414e1 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/apps/node-apps-list/node-apps-list.component.ts +++ b/static/skywire-manager-src/src/app/components/pages/node/apps/node-apps-list/node-apps-list.component.ts @@ -231,6 +231,32 @@ export class NodeAppsListComponent implements OnDestroy { return null; } + /** + * Gets the class for the app status dot. + */ + getStateClass(app: Application): string { + if (app.status === 1) { + return 'dot-green'; + } else if (app.name === 'vpn-client' && app.status === 3) { + return 'dot-yellow'; + } + + return 'dot-red'; + } + + /** + * Gets the tooltip text for the app status dot. + */ + getStateTooltip(app: Application): string { + if (app.status === 1) { + return 'apps.status-running-tooltip'; + } else if (app.name === 'vpn-client' && app.status === 3) { + return 'apps.status-connecting-tooltip'; + } + + return 'apps.status-stopped-tooltip'; + } + /** * Changes the selection state of an entry (modifies the state of its checkbox). */ diff --git a/static/skywire-manager-src/src/app/services/vpn-client.service.ts b/static/skywire-manager-src/src/app/services/vpn-client.service.ts index f69edbc0dd..6f05fc4631 100644 --- a/static/skywire-manager-src/src/app/services/vpn-client.service.ts +++ b/static/skywire-manager-src/src/app/services/vpn-client.service.ts @@ -680,7 +680,7 @@ export class VpnClientService { // Get the required data from the app properties. if (appData) { vpnClientData = new VpnClientAppData(); - vpnClientData.running = appData.status === 1; + vpnClientData.running = appData.status === 1 || appData.status === 3; vpnClientData.connectionDuration = appData.connection_duration; vpnClientData.appState = AppState.Stopped; diff --git a/static/skywire-manager-src/src/assets/i18n/en.json b/static/skywire-manager-src/src/assets/i18n/en.json index 0716773ec1..6708d08d25 100644 --- a/static/skywire-manager-src/src/assets/i18n/en.json +++ b/static/skywire-manager-src/src/assets/i18n/en.json @@ -464,6 +464,7 @@ "status-stopped": "Stopped", "status-failed": "Failed", "status-running-tooltip": "App is currently running", + "status-connecting-tooltip": "App is currently connecting", "status-stopped-tooltip": "App is currently stopped", "status-failed-tooltip": "Something went wrong. Check the app's messages for more information" }, diff --git a/static/skywire-manager-src/src/assets/i18n/es.json b/static/skywire-manager-src/src/assets/i18n/es.json index ed0dce50cd..8ab4238706 100644 --- a/static/skywire-manager-src/src/assets/i18n/es.json +++ b/static/skywire-manager-src/src/assets/i18n/es.json @@ -468,6 +468,7 @@ "status-stopped": "Detenida", "status-failed": "Fallida", "status-running-tooltip": "La aplicación está actualmente corriendo", + "status-connecting-tooltip": "La aplicación está actualmente conectando", "status-stopped-tooltip": "La aplicación está actualmente detenida", "status-failed-tooltip": "Algo salió mal. Revise los mensajes de la aplicación para más información" }, diff --git a/static/skywire-manager-src/src/assets/i18n/es_base.json b/static/skywire-manager-src/src/assets/i18n/es_base.json index b17d749d64..bfe0252cda 100644 --- a/static/skywire-manager-src/src/assets/i18n/es_base.json +++ b/static/skywire-manager-src/src/assets/i18n/es_base.json @@ -468,6 +468,7 @@ "status-stopped": "Stopped", "status-failed": "Failed", "status-running-tooltip": "App is currently running", + "status-connecting-tooltip": "App is currently connecting", "status-stopped-tooltip": "App is currently stopped", "status-failed-tooltip": "Something went wrong. Check the app's messages for more information" },