From 0ddad87a9aac3de06b78235a70036ec1d024aa0f Mon Sep 17 00:00:00 2001 From: "alexei.dolgolyov" Date: Sun, 5 Apr 2026 14:20:49 +0300 Subject: [PATCH] fix: add confirmation dialog for Docker image prune button --- web/src/lib/i18n/en.json | 1 + web/src/lib/i18n/ru.json | 1 + web/src/routes/settings/+page.svelte | 14 +++++++++++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/web/src/lib/i18n/en.json b/web/src/lib/i18n/en.json index cd1b762..7484ec0 100644 --- a/web/src/lib/i18n/en.json +++ b/web/src/lib/i18n/en.json @@ -260,6 +260,7 @@ "pruneImages": "Prune Unused Images", "pruning": "Pruning...", "pruneResult": "Removed {count} images, reclaimed {mb} MB", + "pruneConfirmMessage": "This will remove unused Docker images belonging to your projects. Images used by active instances will not be affected.", "pruneFailed": "Failed to prune images", "proxyProvider": "Proxy Provider", "proxyProviderHelp": "Select how reverse proxy routes are managed for deployed containers.", diff --git a/web/src/lib/i18n/ru.json b/web/src/lib/i18n/ru.json index d29d526..dd5e6ab 100644 --- a/web/src/lib/i18n/ru.json +++ b/web/src/lib/i18n/ru.json @@ -260,6 +260,7 @@ "pruneImages": "Очистить неиспользуемые образы", "pruning": "Очистка...", "pruneResult": "Удалено {count} образов, освобождено {mb} МБ", + "pruneConfirmMessage": "Будут удалены неиспользуемые Docker-образы ваших проектов. Образы активных экземпляров не затрагиваются.", "pruneFailed": "Не удалось очистить образы", "proxyProvider": "Провайдер прокси", "proxyProviderHelp": "Выберите способ управления обратным прокси для развёрнутых контейнеров.", diff --git a/web/src/routes/settings/+page.svelte b/web/src/routes/settings/+page.svelte index 1e6280b..61c4ed8 100644 --- a/web/src/routes/settings/+page.svelte +++ b/web/src/routes/settings/+page.svelte @@ -2,6 +2,7 @@ import { getSettings, updateSettings, getWebhookUrl, regenerateWebhookUrl, testDnsConnection, listDnsZones, pruneImages } from '$lib/api'; import type { EntityPickerItem } from '$lib/types'; import FormField from '$lib/components/FormField.svelte'; + import ConfirmDialog from '$lib/components/ConfirmDialog.svelte'; import EntityPicker from '$lib/components/EntityPicker.svelte'; import { toasts } from '$lib/stores/toast'; import { t } from '$lib/i18n'; @@ -40,6 +41,7 @@ let testingDns = $state(false); let pruning = $state(false); + let showPruneConfirm = $state(false); let errors = $state>({}); async function handlePruneImages() { @@ -363,7 +365,7 @@

{$t('settings.dockerCleanupHelp')}