From d94a2da63beda9de4e9f35e527f047906aa60533 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Wed, 22 Jan 2025 17:28:28 +0100 Subject: [PATCH] feat: prevent stop, detach and delete if monitoring is enabled (#1141) * feat: prevent stop, detach and delete if monitoring is enabled * chore: fmt --- .../components/canister/CanisterStop.svelte | 8 ++++- .../canister/CanisterStopStart.svelte | 5 +-- .../components/canister/SegmentDetach.svelte | 9 +++++- .../components/orbiter/OrbiterActions.svelte | 28 ++++++++++++++-- .../satellites/SatelliteActions.svelte | 32 +++++++++++++++++-- src/frontend/src/lib/i18n/en.json | 3 +- src/frontend/src/lib/i18n/zh-cn.json | 3 +- src/frontend/src/lib/types/i18n.d.ts | 1 + 8 files changed, 78 insertions(+), 11 deletions(-) diff --git a/src/frontend/src/lib/components/canister/CanisterStop.svelte b/src/frontend/src/lib/components/canister/CanisterStop.svelte index d539f1736..776b91f48 100644 --- a/src/frontend/src/lib/components/canister/CanisterStop.svelte +++ b/src/frontend/src/lib/components/canister/CanisterStop.svelte @@ -15,11 +15,12 @@ interface Props { canister: CanisterSyncData; + monitoringEnabled: boolean; segment: 'satellite' | 'orbiter'; onstop: () => void; } - let { canister, segment, onstop }: Props = $props(); + let { canister, monitoringEnabled, segment, onstop }: Props = $props(); let visible = $state(false); @@ -33,6 +34,11 @@ return; } + if (monitoringEnabled) { + toasts.warn($i18n.monitoring.warn_monitoring_enabled); + return; + } + busy.start(); try { diff --git a/src/frontend/src/lib/components/canister/CanisterStopStart.svelte b/src/frontend/src/lib/components/canister/CanisterStopStart.svelte index d9fcb34d3..3afd51bca 100644 --- a/src/frontend/src/lib/components/canister/CanisterStopStart.svelte +++ b/src/frontend/src/lib/components/canister/CanisterStopStart.svelte @@ -7,12 +7,13 @@ interface Props { canister?: CanisterSyncData | undefined; + monitoringEnabled: boolean; segment: 'satellite' | 'orbiter'; onstart: () => void; onstop: () => void; } - let { canister = undefined, segment, onstart, onstop }: Props = $props(); + let { canister = undefined, monitoringEnabled, segment, onstart, onstop }: Props = $props(); let status = $derived(canister?.data?.canister.status); let sync = $derived(canister?.sync); @@ -21,7 +22,7 @@ {#if nonNullish(canister) && status === 'stopped' && sync === 'synced'}
{:else if nonNullish(canister) && status === 'running' && sync === 'synced'} -
+
{/if}