feat: Implement download path template settings and base model path mappings in UI

This commit is contained in:
Will Miao
2025-07-20 17:51:08 +08:00
parent bcf3b2cf55
commit 0c883433c1
4 changed files with 502 additions and 36 deletions

View File

@@ -177,6 +177,52 @@
</div>
</div>
<!-- Add Video Settings Section -->
<div class="settings-section">
<h3>Video Settings</h3>
<div class="setting-item">
<div class="setting-row">
<div class="setting-info">
<label for="autoplayOnHover">Autoplay Videos on Hover</label>
</div>
<div class="setting-control">
<label class="toggle-switch">
<input type="checkbox" id="autoplayOnHover"
onchange="settingsManager.saveToggleSetting('autoplayOnHover', 'autoplay_on_hover')">
<span class="toggle-slider"></span>
</label>
</div>
</div>
<div class="input-help">
Only play video previews when hovering over them
</div>
</div>
</div>
<!-- Add Video Settings Section -->
<div class="settings-section">
<h3>Video Settings</h3>
<div class="setting-item">
<div class="setting-row">
<div class="setting-info">
<label for="autoplayOnHover">Autoplay Videos on Hover</label>
</div>
<div class="setting-control">
<label class="toggle-switch">
<input type="checkbox" id="autoplayOnHover"
onchange="settingsManager.saveToggleSetting('autoplayOnHover', 'autoplay_on_hover')">
<span class="toggle-slider"></span>
</label>
</div>
</div>
<div class="input-help">
Only play video previews when hovering over them
</div>
</div>
</div>
<!-- Add Folder Settings Section -->
<div class="settings-section">
<h3>Folder Settings</h3>
@@ -215,6 +261,59 @@
</div>
</div>
</div>
<!-- Default Path Customization Section -->
<div class="settings-section">
<h3>Default Path Customization</h3>
<div class="setting-item">
<div class="setting-row">
<div class="setting-info">
<label for="downloadPathTemplate">Download Path Template</label>
</div>
<div class="setting-control select-control">
<select id="downloadPathTemplate" onchange="settingsManager.saveSelectSetting('downloadPathTemplate', 'download_path_template')">
<option value="">Flat Structure</option>
<option value="{base_model}">By Base Model</option>
<option value="{first_tag}">By First Tag</option>
<option value="{base_model}/{first_tag}">Base Model + First Tag</option>
</select>
</div>
</div>
<div class="input-help">
"Configure path structure for default download locations
<ul class="list-description">
<li><strong>Flat:</strong> All models in root folder</li>
<li><strong>Base Model:</strong> Organized by model type (e.g., Flux.1 D, SDXL)</li>
<li><strong>First Tag:</strong> Organized by primary tag (e.g., style, character)</li>
<li><strong>Base Model + Tag:</strong> Two-level organization for better structure</li>
</ul>
</div>
<div id="pathTemplatePreview" class="template-preview"></div>
</div>
<div class="setting-item">
<div class="setting-row">
<div class="setting-info">
<label>Base Model Path Mappings</label>
</div>
<div class="setting-control">
<button type="button" class="add-mapping-btn" onclick="settingsManager.addMappingRow()">
<i class="fas fa-plus"></i>
<span>Add Mapping</span>
</button>
</div>
</div>
<div class="input-help">
Customize folder names for specific base models (e.g., "Flux.1 D" → "flux")
</div>
<div class="mappings-container">
<div id="baseModelMappingsContainer">
<!-- Mapping rows will be added dynamically -->
</div>
</div>
</div>
</div>
<!-- Add Layout Settings Section -->
<div class="settings-section">
@@ -235,7 +334,7 @@
</div>
<div class="input-help">
Choose how many cards to display per row:
<ul class="density-description">
<ul class="list-description">
<li><strong>Default:</strong> 5 (1080p), 6 (2K), 8 (4K)</li>
<li><strong>Medium:</strong> 6 (1080p), 7 (2K), 9 (4K)</li>
<li><strong>Compact:</strong> 7 (1080p), 8 (2K), 10 (4K)</li>
@@ -259,7 +358,7 @@
</div>
<div class="input-help">
Choose when to display model information and action buttons:
<ul>
<ul class="list-description">
<li><strong>Always Visible:</strong> Headers and footers are always visible</li>
<li><strong>Reveal on Hover:</strong> Headers and footers only appear when hovering over a card</li>
</ul>
@@ -267,29 +366,6 @@
</div>
</div>
<!-- Add Cache Management Section -->
<!-- <div class="settings-section">
<h3>Cache Management</h3>
<div class="setting-item">
<div class="setting-row">
<div class="setting-info">
<label>Clear Cache Files</label>
</div>
<div class="setting-control">
<button id="clearCacheBtn" class="secondary-btn" onclick="settingsManager.confirmClearCache()">
<i class="fas fa-trash"></i>
<span>Clear Cache</span>
</button>
</div>
</div>
<div class="input-help">
Removes cached model data. System will rebuild cache on next startup or when triggered manually.
<span class="warning-text">May cause temporary performance impact during rebuild.</span>
</div>
</div>
</div> -->
<!-- Add Example Images Settings Section -->
<div class="settings-section">
<h3>Example Images</h3>