mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-21 21:22:11 -03:00
feat: add metadata refresh skip paths setting, #790
This commit is contained in:
@@ -133,6 +133,10 @@ export class SettingsManager {
|
||||
backendSettings?.auto_organize_exclusions ?? defaults.auto_organize_exclusions
|
||||
);
|
||||
|
||||
merged.metadata_refresh_skip_paths = this.normalizePatternList(
|
||||
backendSettings?.metadata_refresh_skip_paths ?? defaults.metadata_refresh_skip_paths
|
||||
);
|
||||
|
||||
Object.keys(merged).forEach(key => this.backendSettingKeys.add(key));
|
||||
|
||||
return merged;
|
||||
@@ -349,6 +353,16 @@ export class SettingsManager {
|
||||
});
|
||||
}
|
||||
|
||||
const metadataRefreshSkipPathsInput = document.getElementById('metadataRefreshSkipPaths');
|
||||
if (metadataRefreshSkipPathsInput) {
|
||||
metadataRefreshSkipPathsInput.addEventListener('keydown', (event) => {
|
||||
if (event.key === 'Enter' && !event.shiftKey) {
|
||||
event.preventDefault();
|
||||
this.saveMetadataRefreshSkipPaths();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
this.setupPriorityTagInputs();
|
||||
|
||||
this.initialized = true;
|
||||
@@ -410,6 +424,16 @@ export class SettingsManager {
|
||||
autoOrganizeExclusionsError.textContent = '';
|
||||
}
|
||||
|
||||
const metadataRefreshSkipPathsInput = document.getElementById('metadataRefreshSkipPaths');
|
||||
if (metadataRefreshSkipPathsInput) {
|
||||
const skipPaths = this.normalizePatternList(state.global.settings.metadata_refresh_skip_paths);
|
||||
metadataRefreshSkipPathsInput.value = skipPaths.join(', ');
|
||||
}
|
||||
const metadataRefreshSkipPathsError = document.getElementById('metadataRefreshSkipPathsError');
|
||||
if (metadataRefreshSkipPathsError) {
|
||||
metadataRefreshSkipPathsError.textContent = '';
|
||||
}
|
||||
|
||||
// Set video autoplay on hover setting
|
||||
const autoplayOnHoverCheckbox = document.getElementById('autoplayOnHover');
|
||||
if (autoplayOnHoverCheckbox) {
|
||||
@@ -1721,6 +1745,58 @@ export class SettingsManager {
|
||||
}
|
||||
}
|
||||
|
||||
async saveMetadataRefreshSkipPaths() {
|
||||
const input = document.getElementById('metadataRefreshSkipPaths');
|
||||
const errorElement = document.getElementById('metadataRefreshSkipPathsError');
|
||||
if (!input) return;
|
||||
|
||||
const normalized = this.normalizePatternList(input.value);
|
||||
|
||||
if (input.value.trim() && normalized.length === 0) {
|
||||
if (errorElement) {
|
||||
errorElement.textContent = translate(
|
||||
'settings.metadataRefreshSkipPaths.validation.noPaths',
|
||||
{},
|
||||
'Enter at least one path separated by commas.'
|
||||
);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
const current = this.normalizePatternList(state.global.settings.metadata_refresh_skip_paths);
|
||||
if (normalized.join('|') === current.join('|')) {
|
||||
if (errorElement) {
|
||||
errorElement.textContent = '';
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
if (errorElement) {
|
||||
errorElement.textContent = '';
|
||||
}
|
||||
|
||||
await this.saveSetting('metadata_refresh_skip_paths', normalized);
|
||||
input.value = normalized.join(', ');
|
||||
|
||||
showToast(
|
||||
'toast.settings.settingsUpdated',
|
||||
{ setting: translate('settings.metadataRefreshSkipPaths.label') },
|
||||
'success'
|
||||
);
|
||||
} catch (error) {
|
||||
console.error('Failed to save metadata refresh skip paths:', error);
|
||||
if (errorElement) {
|
||||
errorElement.textContent = translate(
|
||||
'settings.metadataRefreshSkipPaths.validation.saveFailed',
|
||||
{ message: error.message },
|
||||
`Unable to save skip paths: ${error.message}`
|
||||
);
|
||||
}
|
||||
showToast('toast.settings.settingSaveFailed', { message: error.message }, 'error');
|
||||
}
|
||||
}
|
||||
|
||||
async saveInputSetting(elementId, settingKey) {
|
||||
const element = document.getElementById(elementId);
|
||||
if (!element) return;
|
||||
|
||||
@@ -35,6 +35,7 @@ const DEFAULT_SETTINGS_BASE = Object.freeze({
|
||||
priority_tags: { ...DEFAULT_PRIORITY_TAG_CONFIG },
|
||||
update_flag_strategy: 'same_base',
|
||||
auto_organize_exclusions: [],
|
||||
metadata_refresh_skip_paths: [],
|
||||
});
|
||||
|
||||
export function createDefaultSettings() {
|
||||
|
||||
Reference in New Issue
Block a user