diff --git a/locales/de.json b/locales/de.json
index fddefb9b..260b5244 100644
--- a/locales/de.json
+++ b/locales/de.json
@@ -443,7 +443,6 @@
"label": "Bereits heruntergeladene Modellversionen überspringen",
"help": "Wenn aktiviert, überspringt LoRA Manager den Download einer Modellversion, wenn der Download-Verlaufsdienst diese spezifische Version als bereits heruntergeladen erfasst hat. Gilt für alle Download-Abläufe."
},
- "deleteUndoEnabled": "[TODO: Translate] Keep deleted items recoverable for 30 seconds (undo)",
"layoutSettings": {
"groupByModel": "Nach Modell gruppieren",
"groupByModelHelp": "Wenn aktiviert, wird nur die neueste Version jedes Civitai-Modells als einzelne Karte angezeigt. Ältere Versionen werden ausgeblendet.",
@@ -1281,7 +1280,6 @@
"freesSpace": "[TODO: Translate] Frees {size}",
"title": "Modell löschen",
"message": "Sind Sie sicher, dass Sie dieses Modell und alle zugehörigen Dateien löschen möchten?",
- "permanentWarning": "[TODO: Translate] This will permanently delete the file from disk.",
"recoverableWarning": "[TODO: Translate] This will permanently delete the file after 30 seconds unless you undo."
},
"excludeModel": {
diff --git a/locales/en.json b/locales/en.json
index 7cbbc15e..125cee81 100644
--- a/locales/en.json
+++ b/locales/en.json
@@ -443,7 +443,6 @@
"label": "Skip previously downloaded model versions",
"help": "When enabled, versions downloaded before will be skipped."
},
- "deleteUndoEnabled": "Keep deleted items recoverable for 30 seconds (undo)",
"layoutSettings": {
"groupByModel": "Group by Model",
"groupByModelHelp": "When enabled, only the latest version of each Civitai model is shown as a single card. Older versions are hidden.",
@@ -1281,7 +1280,6 @@
"freesSpace": "Frees {size}",
"title": "Delete Model",
"message": "Are you sure you want to delete this model and all associated files?",
- "permanentWarning": "This will permanently delete the file from disk.",
"recoverableWarning": "This will permanently delete the file after 30 seconds unless you undo."
},
"excludeModel": {
diff --git a/locales/es.json b/locales/es.json
index 5415617e..96aa6d4f 100644
--- a/locales/es.json
+++ b/locales/es.json
@@ -443,7 +443,6 @@
"label": "Omitir versiones de modelos previamente descargadas",
"help": "Cuando está habilitado, LoRA Manager omitirá la descarga de una versión de modelo si el servicio de historial de descargas registra esa versión exacta como ya descargada. Aplica a todos los flujos de descarga."
},
- "deleteUndoEnabled": "[TODO: Translate] Keep deleted items recoverable for 30 seconds (undo)",
"layoutSettings": {
"groupByModel": "Agrupar por modelo",
"groupByModelHelp": "Cuando está activado, solo se muestra la versión más reciente de cada modelo de Civitai como una tarjeta única. Las versiones anteriores están ocultas.",
@@ -1281,7 +1280,6 @@
"freesSpace": "[TODO: Translate] Frees {size}",
"title": "Eliminar modelo",
"message": "¿Estás seguro de que quieres eliminar este modelo y todos los archivos asociados?",
- "permanentWarning": "[TODO: Translate] This will permanently delete the file from disk.",
"recoverableWarning": "[TODO: Translate] This will permanently delete the file after 30 seconds unless you undo."
},
"excludeModel": {
diff --git a/locales/fr.json b/locales/fr.json
index 200a84bb..3b28744f 100644
--- a/locales/fr.json
+++ b/locales/fr.json
@@ -443,7 +443,6 @@
"label": "Ignorer les versions de modèles précédemment téléchargées",
"help": "Lorsque activé, LoRA Manager ignorera le téléchargement d'une version de modèle si le service d'historique des téléchargements enregistre cette version exacte comme déjà téléchargée. S'applique à tous les flux de téléchargement."
},
- "deleteUndoEnabled": "[TODO: Translate] Keep deleted items recoverable for 30 seconds (undo)",
"layoutSettings": {
"groupByModel": "Grouper par modèle",
"groupByModelHelp": "Lorsque activé, seule la version la plus récente de chaque modèle Civitai s'affiche sous forme de carte unique. Les versions plus anciennes sont masquées.",
@@ -1281,7 +1280,6 @@
"freesSpace": "[TODO: Translate] Frees {size}",
"title": "Supprimer le modèle",
"message": "Êtes-vous sûr de vouloir supprimer ce modèle et tous les fichiers associés ?",
- "permanentWarning": "[TODO: Translate] This will permanently delete the file from disk.",
"recoverableWarning": "[TODO: Translate] This will permanently delete the file after 30 seconds unless you undo."
},
"excludeModel": {
diff --git a/locales/he.json b/locales/he.json
index 64a8cf2a..c0d22e04 100644
--- a/locales/he.json
+++ b/locales/he.json
@@ -443,7 +443,6 @@
"label": "דלג על גרסאות מודלים שהורדו בעבר",
"help": "כאשר מופעל, LoRA Manager ידלג על הורדת גרסת מודל אם שירות היסטוריית ההורדות רושם את הגרסה המדויקת הזו ככבר שהורדה. חל על כל תהליכי ההורדה."
},
- "deleteUndoEnabled": "[TODO: Translate] Keep deleted items recoverable for 30 seconds (undo)",
"layoutSettings": {
"groupByModel": "קיבוץ לפי דגם",
"groupByModelHelp": "כאשר מופעל, רק הגרסה העדכנית ביותר של כל דגם Civitai מוצגת ככרטיס בודד. גרסאות ישנות יותר מוסתרות.",
@@ -1281,7 +1280,6 @@
"freesSpace": "[TODO: Translate] Frees {size}",
"title": "מחק מודל",
"message": "האם אתה בטוח שברצונך למחוק מודל זה וכל הקבצים הנלווים?",
- "permanentWarning": "[TODO: Translate] This will permanently delete the file from disk.",
"recoverableWarning": "[TODO: Translate] This will permanently delete the file after 30 seconds unless you undo."
},
"excludeModel": {
diff --git a/locales/ja.json b/locales/ja.json
index 36be7466..cc8cda98 100644
--- a/locales/ja.json
+++ b/locales/ja.json
@@ -443,7 +443,6 @@
"label": "以前にダウンロードしたモデルバージョンをスキップ",
"help": "有効にすると、ダウンロード履歴サービスがそのバージョンが既にダウンロード済みと記録している場合、LoRA Managerはそのモデルバージョンのダウンロードをスキップします。すべてのダウンロードフローに適用されます。"
},
- "deleteUndoEnabled": "[TODO: Translate] Keep deleted items recoverable for 30 seconds (undo)",
"layoutSettings": {
"groupByModel": "モデルでグループ化",
"groupByModelHelp": "有効にすると、各Civitaiモデルの最新バージョンのみが1枚のカードとして表示され、古いバージョンは非表示になります。",
@@ -1281,7 +1280,6 @@
"freesSpace": "[TODO: Translate] Frees {size}",
"title": "モデルを削除",
"message": "このモデルと関連するすべてのファイルを削除してもよろしいですか?",
- "permanentWarning": "[TODO: Translate] This will permanently delete the file from disk.",
"recoverableWarning": "[TODO: Translate] This will permanently delete the file after 30 seconds unless you undo."
},
"excludeModel": {
diff --git a/locales/ko.json b/locales/ko.json
index b45d100b..fa6df6be 100644
--- a/locales/ko.json
+++ b/locales/ko.json
@@ -443,7 +443,6 @@
"label": "이전에 다운로드한 모델 버전 건너뛰기",
"help": "활성화하면 다운로드 기록 서비스가 해당 버전이 이미 다운로드되었음을 기록한 경우 LoRA Manager는 해당 모델 버전 다운로드를 건너뜁니다. 모든 다운로드 플로우에 적용됩니다."
},
- "deleteUndoEnabled": "[TODO: Translate] Keep deleted items recoverable for 30 seconds (undo)",
"layoutSettings": {
"groupByModel": "모델별 그룹화",
"groupByModelHelp": "활성화하면 각 Civitai 모델의 최신 버전만 단일 카드로 표시되며, 이전 버전은 숨겨집니다.",
@@ -1281,7 +1280,6 @@
"freesSpace": "[TODO: Translate] Frees {size}",
"title": "모델 삭제",
"message": "이 모델과 모든 관련 파일을 삭제하시겠습니까?",
- "permanentWarning": "[TODO: Translate] This will permanently delete the file from disk.",
"recoverableWarning": "[TODO: Translate] This will permanently delete the file after 30 seconds unless you undo."
},
"excludeModel": {
diff --git a/locales/ru.json b/locales/ru.json
index 8f15fab8..dd19437b 100644
--- a/locales/ru.json
+++ b/locales/ru.json
@@ -443,7 +443,6 @@
"label": "Пропускать ранее загруженные версии моделей",
"help": "Если включено, LoRA Manager будет пропускать загрузку версии модели, если сервис истории загрузок записал, что эта конкретная версия уже загружена. Применяется ко всем потокам загрузки."
},
- "deleteUndoEnabled": "[TODO: Translate] Keep deleted items recoverable for 30 seconds (undo)",
"layoutSettings": {
"groupByModel": "Группировать по модели",
"groupByModelHelp": "При включении отображается только последняя версия каждой модели Civitai в виде одной карточки. Старые версии скрыты.",
@@ -1281,7 +1280,6 @@
"freesSpace": "[TODO: Translate] Frees {size}",
"title": "Удалить модель",
"message": "Вы уверены, что хотите удалить эту модель и все связанные файлы?",
- "permanentWarning": "[TODO: Translate] This will permanently delete the file from disk.",
"recoverableWarning": "[TODO: Translate] This will permanently delete the file after 30 seconds unless you undo."
},
"excludeModel": {
diff --git a/locales/zh-CN.json b/locales/zh-CN.json
index 656f071c..a34b044c 100644
--- a/locales/zh-CN.json
+++ b/locales/zh-CN.json
@@ -443,7 +443,6 @@
"label": "跳过已下载的模型版本",
"help": "启用后,如果下载历史服务记录显示该版本已下载,LoRA Manager 将跳过下载该模型版本。适用于所有下载流程。"
},
- "deleteUndoEnabled": "[TODO: Translate] Keep deleted items recoverable for 30 seconds (undo)",
"layoutSettings": {
"groupByModel": "按模型分组",
"groupByModelHelp": "开启后,每个 Civitai 模型仅显示最新版本的单张卡片,旧版本将被隐藏。",
@@ -1281,7 +1280,6 @@
"freesSpace": "[TODO: Translate] Frees {size}",
"title": "删除模型",
"message": "你确定要删除此模型及所有相关文件吗?",
- "permanentWarning": "[TODO: Translate] This will permanently delete the file from disk.",
"recoverableWarning": "[TODO: Translate] This will permanently delete the file after 30 seconds unless you undo."
},
"excludeModel": {
diff --git a/locales/zh-TW.json b/locales/zh-TW.json
index f128073f..e5fe09c3 100644
--- a/locales/zh-TW.json
+++ b/locales/zh-TW.json
@@ -443,7 +443,6 @@
"label": "跳過已下載的模型版本",
"help": "啟用後,如果下載歷史服務記錄顯示該版本已下載,LoRA Manager 將跳過下載該模型版本。適用於所有下載流程。"
},
- "deleteUndoEnabled": "[TODO: Translate] Keep deleted items recoverable for 30 seconds (undo)",
"layoutSettings": {
"groupByModel": "按模型分組",
"groupByModelHelp": "啟用後,每個 Civitai 模型僅顯示最新版本的單張卡片,舊版本將被隱藏。",
@@ -1281,7 +1280,6 @@
"freesSpace": "[TODO: Translate] Frees {size}",
"title": "刪除模型",
"message": "您確定要刪除此模型及所有相關檔案嗎?",
- "permanentWarning": "[TODO: Translate] This will permanently delete the file from disk.",
"recoverableWarning": "[TODO: Translate] This will permanently delete the file after 30 seconds unless you undo."
},
"excludeModel": {
diff --git a/py/services/pending_delete_service.py b/py/services/pending_delete_service.py
index dd19c102..1b0dc5ae 100644
--- a/py/services/pending_delete_service.py
+++ b/py/services/pending_delete_service.py
@@ -39,7 +39,6 @@ from typing import (
from ..utils.constants import PREVIEW_EXTENSIONS
from ..utils import settings_paths
-from .settings_manager import get_settings_manager
logger = logging.getLogger(__name__)
@@ -122,16 +121,13 @@ class PendingDeleteService:
(``target_dir``), so staging/undo renames stay within one real
directory - EXDEV is impossible even when the business path traverses
nested symlinks to other volumes. Returns the batch id, or ``None``
- when undo is disabled, the model root cannot be resolved, or staging
- failed (caller falls back to a hard delete).
+ when the model root cannot be resolved, or staging failed (caller
+ falls back to a hard delete).
"""
# LOCK-FREE section: opportunistic purge must never run while holding
# the ops lock (the lock is not re-entrant).
await self._opportunistic_purge()
- if not self._undo_enabled():
- return None
-
async with self._ops_lock:
batch_dir: Optional[str] = None
staged_pairs: List[Dict[str, Any]] = []
@@ -190,9 +186,10 @@ class PendingDeleteService:
# manifest's expires_at at fire time, so stale timers no-op.
self._arm_purge_timer(batch_id)
logger.info(
- "Staged model delete batch %s with %d file(s)",
+ "Staged model delete batch %s with %d file(s): %s",
batch_id,
len(staged_pairs),
+ staged_pairs[0]["original"] if staged_pairs else None,
)
return batch_id
except OSError as exc:
@@ -218,14 +215,11 @@ class PendingDeleteService:
) -> Optional[str]:
"""Copy a recipe JSON (and, when it exists, its image) into staging.
- Returns the batch id, or ``None`` when undo is disabled / staging
- failed. Missing or shared preview images are skipped.
+ Returns the batch id, or ``None`` when staging failed. Missing or
+ shared preview images are skipped.
"""
await self._opportunistic_purge()
- if not self._undo_enabled():
- return None
-
async with self._ops_lock:
batch_dir: Optional[str] = None
staged_pairs: List[Dict[str, Any]] = []
@@ -255,9 +249,10 @@ class PendingDeleteService:
self._write_manifest_atomic(batch_dir, manifest)
self._arm_purge_timer(batch_id)
logger.info(
- "Staged recipe delete batch %s with %d file(s)",
+ "Staged recipe delete batch %s with %d file(s): %s",
batch_id,
len(staged_pairs),
+ staged_pairs[0]["original"] if staged_pairs else None,
)
return batch_id
except OSError as exc:
@@ -573,13 +568,6 @@ class PendingDeleteService:
except Exception as exc: # defensive - staging/undo must still proceed
logger.warning("Opportunistic pending-delete purge failed: %s", exc)
- def _undo_enabled(self) -> bool:
- try:
- return bool(get_settings_manager().get("delete_undo_enabled", True))
- except Exception as exc: # defensive - default to enabled
- logger.warning("Failed to read delete_undo_enabled setting: %s", exc)
- return True
-
def _remember_root(self, root: str) -> None:
"""Record a root the service has staged into (in-process registry)."""
if root and root not in self._known_roots:
diff --git a/py/services/settings_manager.py b/py/services/settings_manager.py
index e266739f..86278fe8 100644
--- a/py/services/settings_manager.py
+++ b/py/services/settings_manager.py
@@ -111,7 +111,6 @@ DEFAULT_SETTINGS: Dict[str, Any] = {
"backup_retention_count": 5,
"use_new_license_icons": True,
"group_by_model": False,
- "delete_undo_enabled": True,
# AI / LLM provider configuration (BYOK)
"llm_provider": "openai", # "openai" | "ollama" | "custom"
"llm_api_key": "",
diff --git a/static/js/api/baseModelApi.js b/static/js/api/baseModelApi.js
index e9f561b2..e276d70c 100644
--- a/static/js/api/baseModelApi.js
+++ b/static/js/api/baseModelApi.js
@@ -203,7 +203,7 @@ export class BaseModelApiClient {
}
const batchId = data.batch_id || null;
if (!batchId) {
- // Not staged (undo disabled or staging failed): keep the legacy toast.
+ // Not staged (staging failed): keep the legacy toast.
// When staged, the caller shows the undo action toast instead.
showToast('toast.api.deleteSuccess', { type: this.apiConfig.config.displayName }, 'success');
}
diff --git a/static/js/components/DuplicatesManager.js b/static/js/components/DuplicatesManager.js
index 32acc2fb..63f17be3 100644
--- a/static/js/components/DuplicatesManager.js
+++ b/static/js/components/DuplicatesManager.js
@@ -1,7 +1,6 @@
// Duplicates Manager Component
import { showToast, showActionToast } from '../utils/uiHelpers.js';
import { handleUndoDelete } from '../utils/undoHelpers.js';
-import { armDeleteButton } from '../utils/modalUtils.js';
import { translate } from '../utils/i18nHelpers.js';
import { RecipeCard } from './RecipeCard.js';
import { state, getCurrentPageState } from '../state/index.js';
@@ -449,7 +448,6 @@ export class DuplicatesManager {
// Use the modal manager to show the confirmation modal
modalManager.showModal('duplicateDeleteModal');
- armDeleteButton(document.getElementById('duplicateDeleteModal'));
} catch (error) {
console.error('Error preparing delete:', error);
showToast('toast.duplicates.deleteError', { message: error.message }, 'error');
diff --git a/static/js/components/ModelDuplicatesManager.js b/static/js/components/ModelDuplicatesManager.js
index ebe21a7e..c1fa8758 100644
--- a/static/js/components/ModelDuplicatesManager.js
+++ b/static/js/components/ModelDuplicatesManager.js
@@ -1,7 +1,6 @@
// Model Duplicates Manager Component for LoRAs and Checkpoints
import { showToast, showActionToast } from '../utils/uiHelpers.js';
import { handleUndoDelete } from '../utils/undoHelpers.js';
-import { armDeleteButton } from '../utils/modalUtils.js';
import { translate } from '../utils/i18nHelpers.js';
import { state, getCurrentPageState } from '../state/index.js';
import { formatDate } from '../utils/formatters.js';
@@ -703,7 +702,6 @@ export class ModelDuplicatesManager {
// Use the modal manager to show the confirmation modal
modalManager.showModal('modelDuplicateDeleteModal');
- armDeleteButton(document.getElementById('modelDuplicateDeleteModal'));
} catch (error) {
console.error('Error preparing delete:', error);
showToast('toast.duplicates.deleteError', { message: error.message }, 'error');
diff --git a/static/js/components/RecipeCard.js b/static/js/components/RecipeCard.js
index 780c861d..f6fade33 100644
--- a/static/js/components/RecipeCard.js
+++ b/static/js/components/RecipeCard.js
@@ -9,7 +9,6 @@ import { bulkManager } from '../managers/BulkManager.js';
import { NSFW_LEVELS, getBaseModelAbbreviation, getMatureBlurThreshold } from '../utils/constants.js';
import { translate } from '../utils/i18nHelpers.js';
import { handleUndoDelete } from '../utils/undoHelpers.js';
-import { armDeleteButton } from '../utils/modalUtils.js';
class RecipeCard {
constructor(recipe, clickHandler) {
@@ -366,7 +365,7 @@ class RecipeCard {
${this.recipe.title}
-
This action cannot be undone.
+
This action can be undone for 30 seconds.
Note: Deleting this recipe will not affect the LoRA files used in it.
@@ -378,13 +377,8 @@ class RecipeCard {
`;
// Show the modal with custom content and setup callbacks
- let deleteArmTimer = null;
modalManager.showModal('deleteModal', deleteModalContent, () => {
// This is the onClose callback
- if (deleteArmTimer) {
- clearTimeout(deleteArmTimer);
- deleteArmTimer = null;
- }
const deleteModal = document.getElementById('deleteModal');
const deleteBtn = deleteModal.querySelector('.delete-btn');
deleteBtn.textContent = 'Delete';
@@ -404,8 +398,6 @@ class RecipeCard {
cancelBtn.onclick = () => modalManager.closeModal('deleteModal');
deleteBtn.onclick = () => this.confirmDeleteRecipe();
- deleteArmTimer = armDeleteButton(deleteModal);
-
} catch (error) {
console.error('Error showing delete confirmation:', error);
showToast('toast.recipes.deleteConfirmationError', {}, 'error');
diff --git a/static/js/managers/BulkManager.js b/static/js/managers/BulkManager.js
index ca9c94fe..207b7ea5 100644
--- a/static/js/managers/BulkManager.js
+++ b/static/js/managers/BulkManager.js
@@ -1,7 +1,6 @@
import { state, getCurrentPageState } from '../state/index.js';
import { showToast, showActionToast, copyToClipboard, sendLoraToWorkflow, sendEmbeddingToWorkflow, buildLoraSyntax, getNSFWLevelName } from '../utils/uiHelpers.js';
import { handleUndoDelete } from '../utils/undoHelpers.js';
-import { armDeleteButton } from '../utils/modalUtils.js';
import { updateCardsForBulkMode } from '../components/shared/ModelCard.js';
import { modalManager } from './ModalManager.js';
import { getModelApiClient, resetAndReload } from '../api/modelApiFactory.js';
@@ -630,7 +629,6 @@ export class BulkManager {
}
modalManager.showModal('bulkDeleteModal');
- armDeleteButton(document.getElementById('bulkDeleteModal'));
}
async confirmBulkDelete() {
diff --git a/static/js/managers/SettingsManager.js b/static/js/managers/SettingsManager.js
index cd679e25..70b11958 100644
--- a/static/js/managers/SettingsManager.js
+++ b/static/js/managers/SettingsManager.js
@@ -1111,12 +1111,6 @@ export class SettingsManager {
includeTriggerWordsCheckbox.checked = state.global.settings.include_trigger_words || false;
}
- // Set delete undo setting (defaults to enabled)
- const deleteUndoEnabledCheckbox = document.getElementById('deleteUndoEnabled');
- if (deleteUndoEnabledCheckbox) {
- deleteUndoEnabledCheckbox.checked = state.global.settings.delete_undo_enabled ?? true;
- }
-
// Set lora syntax format
const loraSyntaxFormatSelect = document.getElementById('loraSyntaxFormat');
if (loraSyntaxFormatSelect) {
diff --git a/static/js/state/index.js b/static/js/state/index.js
index f1468d99..4749f497 100644
--- a/static/js/state/index.js
+++ b/static/js/state/index.js
@@ -58,7 +58,6 @@ const DEFAULT_SETTINGS_BASE = Object.freeze({
strip_lora_on_copy: false,
use_new_license_icons: true,
group_by_model: false,
- delete_undo_enabled: true,
llm_provider: 'openai',
llm_api_key: '',
llm_api_base: '',
diff --git a/static/js/utils/modalUtils.js b/static/js/utils/modalUtils.js
index 0b7377ae..45ffb9ec 100644
--- a/static/js/utils/modalUtils.js
+++ b/static/js/utils/modalUtils.js
@@ -3,31 +3,11 @@ import { getModelApiClient, resetAndReload } from '../api/modelApiFactory.js';
import { showActionToast } from './uiHelpers.js';
import { translate } from './i18nHelpers.js';
import { handleUndoDelete } from './undoHelpers.js';
-import { state } from '../state/index.js';
import { formatFileSize } from '../components/shared/utils.js';
-const DELETE_BUTTON_ARM_DELAY_MS = 1500;
-
let pendingDeletePath = null;
let pendingDeleteName = null;
let pendingExcludePath = null;
-let pendingDeleteArmTimer = null;
-
-// Delay-activates every delete button inside a delete-confirmation modal so a
-// misclick in the first moments after opening cannot confirm the deletion.
-// Returns the pending timeout id so callers can cancel it when the modal closes early.
-export function armDeleteButton(modalElement, delayMs = DELETE_BUTTON_ARM_DELAY_MS) {
- if (!modalElement) return null;
-
- const deleteButtons = modalElement.querySelectorAll('.delete-btn');
- if (!deleteButtons.length) return null;
-
- deleteButtons.forEach((button) => { button.disabled = true; });
-
- return setTimeout(() => {
- deleteButtons.forEach((button) => { button.disabled = false; });
- }, delayMs);
-}
export function showDeleteModal(filePath) {
pendingDeletePath = filePath;
@@ -41,10 +21,6 @@ export function showDeleteModal(filePath) {
const modal = modalManager.getModal('deleteModal').element;
const modelInfo = modal.querySelector('.delete-model-info');
- const undoEnabled = state.global?.settings?.delete_undo_enabled;
- const warningKey = undoEnabled
- ? 'modals.deleteModel.recoverableWarning'
- : 'modals.deleteModel.permanentWarning';
const fileSize = card?.dataset.file_size;
const sizeLine = fileSize
? ` ${translate('modals.deleteModel.freesSpace', { size: formatFileSize(parseInt(fileSize, 10)) })}`
@@ -55,11 +31,10 @@ export function showDeleteModal(filePath) {
File: ${filePath}
- ${translate(warningKey)}${sizeLine}
+ ${translate('modals.deleteModel.recoverableWarning')}${sizeLine}
`;
modalManager.showModal('deleteModal');
- pendingDeleteArmTimer = armDeleteButton(modal);
}
export async function confirmDelete() {
@@ -90,10 +65,6 @@ export async function confirmDelete() {
export function closeDeleteModal() {
modalManager.closeModal('deleteModal');
- if (pendingDeleteArmTimer) {
- clearTimeout(pendingDeleteArmTimer);
- pendingDeleteArmTimer = null;
- }
pendingDeletePath = null;
pendingDeleteName = null;
}
diff --git a/templates/components/modals/settings_modal.html b/templates/components/modals/settings_modal.html
index 9a7fdb80..df46df75 100644
--- a/templates/components/modals/settings_modal.html
+++ b/templates/components/modals/settings_modal.html
@@ -811,22 +811,6 @@
-