From e7871bf84332264c5788aaf8797f7470a18f0246 Mon Sep 17 00:00:00 2001 From: Richard Hristov Date: Sat, 29 Mar 2025 17:11:53 +0200 Subject: [PATCH] Remember sort by name/date in LoRAs page --- static/js/loras.js | 45 +++++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/static/js/loras.js b/static/js/loras.js index fbfc314d..ba89049b 100644 --- a/static/js/loras.js +++ b/static/js/loras.js @@ -17,6 +17,7 @@ import { LoraContextMenu } from './components/ContextMenu.js'; import { moveManager } from './managers/MoveManager.js'; import { updateCardsForBulkMode } from './components/LoraCard.js'; import { bulkManager } from './managers/BulkManager.js'; +import { setStorageItem, getStorageItem } from './utils/storageHelpers.js'; // Initialize the LoRA page class LoraPageManager { @@ -63,7 +64,7 @@ class LoraPageManager { async initialize() { // Initialize page-specific components - initializeEventListeners(); + this.initEventListeners(); restoreFolderFilter(); initFolderTagsVisibility(); new LoraContextMenu(); @@ -77,22 +78,38 @@ class LoraPageManager { // Initialize common page features (lazy loading, infinite scroll) appCore.initializePageFeatures(); } -} -// Initialize event listeners -function initializeEventListeners() { - const sortSelect = document.getElementById('sortSelect'); - if (sortSelect) { - sortSelect.value = state.sortBy; - sortSelect.addEventListener('change', async (e) => { - state.sortBy = e.target.value; - await resetAndReload(); - }); + loadSortPreference() { + const savedSort = getStorageItem('loras_sort'); + if (savedSort) { + state.sortBy = savedSort; + const sortSelect = document.getElementById('sortSelect'); + if (sortSelect) { + sortSelect.value = savedSort; + } + } } - document.querySelectorAll('.folder-tags .tag').forEach(tag => { - tag.addEventListener('click', toggleFolder); - }); + saveSortPreference(sortValue) { + setStorageItem('loras_sort', sortValue); + } + + initEventListeners() { + const sortSelect = document.getElementById('sortSelect'); + if (sortSelect) { + sortSelect.value = state.sortBy; + this.loadSortPreference(); + sortSelect.addEventListener('change', async (e) => { + state.sortBy = e.target.value; + this.saveSortPreference(e.target.value); + await resetAndReload(); + }); + } + + document.querySelectorAll('.folder-tags .tag').forEach(tag => { + tag.addEventListener('click', toggleFolder); + }); + } } // Initialize everything when DOM is ready