diff --git a/locales/de.json b/locales/de.json index 909fd2fa..595ce9a3 100644 --- a/locales/de.json +++ b/locales/de.json @@ -216,8 +216,6 @@ "presetDeleteConfirmClick": "Zum Bestätigen erneut klicken", "presetOverwriteConfirm": "Voreinstellung \"{name}\" existiert bereits. Überschreiben?", "presetNamePlaceholder": "Voreinstellungsname...", - "restoreDefaults": "Standard wiederherstellen", - "noPresets": "Noch keine Voreinstellungen gespeichert. Filter unten auswählen und auf + klicken zum Speichern", "baseModel": "Basis-Modell", "modelTags": "Tags (Top 20)", "modelTypes": "Model Types", diff --git a/locales/en.json b/locales/en.json index 19de693e..229e8bda 100644 --- a/locales/en.json +++ b/locales/en.json @@ -216,8 +216,6 @@ "presetDeleteConfirmClick": "Click again to confirm", "presetOverwriteConfirm": "Preset \"{name}\" already exists. Overwrite?", "presetNamePlaceholder": "Preset name...", - "restoreDefaults": "Restore defaults", - "noPresets": "No presets saved yet. Select filters below and click + to save", "baseModel": "Base Model", "modelTags": "Tags (Top 20)", "modelTypes": "Model Types", diff --git a/locales/es.json b/locales/es.json index 76f9366f..f8a9909b 100644 --- a/locales/es.json +++ b/locales/es.json @@ -216,8 +216,6 @@ "presetDeleteConfirmClick": "Haga clic de nuevo para confirmar", "presetOverwriteConfirm": "El preset \"{name}\" ya existe. ¿Sobrescribir?", "presetNamePlaceholder": "Nombre del preajuste...", - "restoreDefaults": "Restaurar predeterminados", - "noPresets": "Aún no hay preajustes guardados. Seleccione filtros abajo y haga clic en + para guardar", "baseModel": "Modelo base", "modelTags": "Etiquetas (Top 20)", "modelTypes": "Model Types", diff --git a/locales/fr.json b/locales/fr.json index ee37339b..3b0694ab 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -216,8 +216,6 @@ "presetDeleteConfirmClick": "Cliquez à nouveau pour confirmer", "presetOverwriteConfirm": "Le préréglage \"{name}\" existe déjà. Remplacer?", "presetNamePlaceholder": "Nom du préréglage...", - "restoreDefaults": "Restaurer les paramètres par défaut", - "noPresets": "Aucun préréglage enregistré. Sélectionnez des filtres ci-dessous et cliquez sur + pour enregistrer", "baseModel": "Modèle de base", "modelTags": "Tags (Top 20)", "modelTypes": "Model Types", diff --git a/locales/he.json b/locales/he.json index ddf39f10..c37998af 100644 --- a/locales/he.json +++ b/locales/he.json @@ -216,8 +216,6 @@ "presetDeleteConfirmClick": "לחץ שוב לאישור", "presetOverwriteConfirm": "הפריסט \"{name}\" כבר קיים. לדרוס?", "presetNamePlaceholder": "שם קביעה מראש...", - "restoreDefaults": "שחזור ברירות מחדל", - "noPresets": "עדיין אין קביעות מראש שמורות. בחר מסננים למטה ולחץ על + כדי לשמור", "baseModel": "מודל בסיס", "modelTags": "תגיות (20 המובילות)", "modelTypes": "Model Types", diff --git a/locales/ja.json b/locales/ja.json index 76ef3f6c..465f50b7 100644 --- a/locales/ja.json +++ b/locales/ja.json @@ -216,8 +216,6 @@ "presetDeleteConfirmClick": "もう一度クリックして確認", "presetOverwriteConfirm": "プリセット「{name}」は既に存在します。上書きしますか?", "presetNamePlaceholder": "プリセット名...", - "restoreDefaults": "デフォルトを復元", - "noPresets": "まだプリセットが保存されていません。下のフィルタを選択して+をクリックして保存", "baseModel": "ベースモデル", "modelTags": "タグ(上位20)", "modelTypes": "Model Types", diff --git a/locales/ko.json b/locales/ko.json index 8f3d57d5..326e8eee 100644 --- a/locales/ko.json +++ b/locales/ko.json @@ -216,8 +216,6 @@ "presetDeleteConfirmClick": "다시 클릭하여 확인", "presetOverwriteConfirm": "프리셋 \"{name}\"이(가) 이미 존재합니다. 덮어쓰시겠습니까?", "presetNamePlaceholder": "프리셋 이름...", - "restoreDefaults": "기본값 복원", - "noPresets": "저장된 프리셋이 없습니다. 아래 필터를 선택하고 +를 클릭하여 저장", "baseModel": "베이스 모델", "modelTags": "태그 (상위 20개)", "modelTypes": "Model Types", diff --git a/locales/ru.json b/locales/ru.json index 5e6f35c2..a2e3b8d1 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -216,8 +216,6 @@ "presetDeleteConfirmClick": "Нажмите еще раз для подтверждения", "presetOverwriteConfirm": "Пресет \"{name}\" уже существует. Перезаписать?", "presetNamePlaceholder": "Имя пресета...", - "restoreDefaults": "Восстановить по умолчанию", - "noPresets": "Пресеты еще не сохранены. Выберите фильтры ниже и нажмите + для сохранения", "baseModel": "Базовая модель", "modelTags": "Теги (Топ 20)", "modelTypes": "Model Types", diff --git a/locales/zh-CN.json b/locales/zh-CN.json index a630223b..e0e9b199 100644 --- a/locales/zh-CN.json +++ b/locales/zh-CN.json @@ -216,8 +216,6 @@ "presetDeleteConfirmClick": "再次点击确认", "presetOverwriteConfirm": "预设 \"{name}\" 已存在。是否覆盖?", "presetNamePlaceholder": "预设名称...", - "restoreDefaults": "恢复默认", - "noPresets": "尚未保存预设。选择下方筛选器并点击 + 保存", "baseModel": "基础模型", "modelTags": "标签(前20)", "modelTypes": "Model Types", diff --git a/locales/zh-TW.json b/locales/zh-TW.json index dd379abd..a4f023b5 100644 --- a/locales/zh-TW.json +++ b/locales/zh-TW.json @@ -216,8 +216,6 @@ "presetDeleteConfirmClick": "再次點擊確認", "presetOverwriteConfirm": "預設 \"{name}\" 已存在。是否覆蓋?", "presetNamePlaceholder": "預設名稱...", - "restoreDefaults": "恢復預設", - "noPresets": "尚未儲存預設。選擇下方篩選器並點擊 + 儲存", "baseModel": "基礎模型", "modelTags": "標籤(前 20)", "modelTypes": "Model Types", diff --git a/static/css/components/search-filter.css b/static/css/components/search-filter.css index 9345b09c..a8c5a8ed 100644 --- a/static/css/components/search-filter.css +++ b/static/css/components/search-filter.css @@ -660,15 +660,7 @@ to { opacity: 1; } } -.no-presets { - width: 100%; - padding: 12px 8px; - text-align: center; - font-size: 0.9em; - color: var(--text-color); - opacity: 0.6; - font-style: italic; -} + /* Mobile adjustments */ @media (max-width: 768px) { diff --git a/static/js/managers/FilterPresetManager.js b/static/js/managers/FilterPresetManager.js index 3bbb5ba6..012c8480 100644 --- a/static/js/managers/FilterPresetManager.js +++ b/static/js/managers/FilterPresetManager.js @@ -195,9 +195,6 @@ export class FilterPresetManager { } if (!presets) { - if (this.currentPage === 'loras') { - return this.getDefaultPresets(); - } return []; } @@ -213,28 +210,12 @@ export class FilterPresetManager { return true; }); - if (validPresets.length === 0 && this.currentPage === 'loras') { - return this.getDefaultPresets(); - } + return validPresets; } - getDefaultPresets() { - return [ - { - name: "WAN Models", - filters: { - baseModel: ["Wan Video*"], - tags: {}, - license: {}, - modelTypes: [] - }, - createdAt: Date.now(), - isDefault: true - } - ]; - } + /** * Resolve base model patterns to actual available models @@ -542,16 +523,7 @@ export class FilterPresetManager { return Array.isArray(localPresets) && localPresets.length > 0; } - async restoreDefaultPresets() { - const defaultPresets = this.getDefaultPresets(); - await this.savePresets(defaultPresets); - this.renderPresets(); - showToast( - translate('toast.presets.restored', {}, 'Default presets restored'), - {}, - 'success' - ); - } + /** * Check if the add button should be disabled @@ -763,31 +735,6 @@ export class FilterPresetManager { const presets = this.loadPresets(); presetsContainer.innerHTML = ''; - // Show empty state with restore option if no presets - if (presets.length === 0) { - const emptyState = document.createElement('div'); - emptyState.className = 'presets-empty-state'; - emptyState.style.cssText = 'width: 100%; padding: 12px; text-align: center;'; - - const noPresetsMsg = document.createElement('div'); - noPresetsMsg.className = 'no-presets'; - noPresetsMsg.style.cssText = 'margin-bottom: 8px;'; - noPresetsMsg.textContent = translate('header.filter.noPresets', {}, 'No presets saved yet. Select filters below and click + to save'); - - const restoreLink = document.createElement('button'); - restoreLink.className = 'restore-defaults-btn'; - restoreLink.style.cssText = 'background: none; border: none; color: var(--lora-accent); cursor: pointer; font-size: 13px; text-decoration: underline; padding: 4px 8px;'; - restoreLink.textContent = translate('header.filter.restoreDefaults', {}, 'Restore defaults'); - restoreLink.addEventListener('click', (e) => { - e.stopPropagation(); - this.restoreDefaultPresets(); - }); - - emptyState.appendChild(noPresetsMsg); - emptyState.appendChild(restoreLink); - presetsContainer.appendChild(emptyState); - } - // Render existing presets presets.forEach(preset => { const presetEl = document.createElement('div'); @@ -840,7 +787,7 @@ export class FilterPresetManager { presetsContainer.appendChild(presetEl); }); - // Add the "Add new preset" button as the last element + // Add the "Add new preset" button (always shown, unified style) const addBtn = document.createElement('div'); addBtn.className = 'filter-preset add-preset-btn'; addBtn.innerHTML = ` ${translate('common.actions.add', {}, 'Add')}`; @@ -854,7 +801,7 @@ export class FilterPresetManager { presetsContainer.appendChild(addBtn); - // Update add button state + // Update add button state (handles disabled state based on filters) this.updateAddButtonState(); }