Fix lora page header

This commit is contained in:
Will Miao
2025-03-17 15:53:53 +08:00
parent a4ee82b51f
commit 0580130d47
6 changed files with 14 additions and 60 deletions

View File

@@ -1,3 +1,5 @@
import { updateService } from '../managers/UpdateService.js';
/** /**
* Header.js - Manages the application header behavior across different pages * Header.js - Manages the application header behavior across different pages
* Handles initialization of appropriate search and filter managers based on current page * Handles initialization of appropriate search and filter managers based on current page
@@ -76,7 +78,7 @@ export class HeaderManager {
const settingsToggle = document.querySelector('.settings-toggle'); const settingsToggle = document.querySelector('.settings-toggle');
if (settingsToggle) { if (settingsToggle) {
settingsToggle.addEventListener('click', () => { settingsToggle.addEventListener('click', () => {
if (window.settingsManager && typeof window.settingsManager.toggleSettings === 'function') { if (window.settingsManager) {
window.settingsManager.toggleSettings(); window.settingsManager.toggleSettings();
} }
}); });
@@ -86,7 +88,7 @@ export class HeaderManager {
const updateToggle = document.getElementById('updateToggleBtn'); const updateToggle = document.getElementById('updateToggleBtn');
if (updateToggle) { if (updateToggle) {
updateToggle.addEventListener('click', () => { updateToggle.addEventListener('click', () => {
// Handle update check logic updateService.toggleUpdateModal();
}); });
} }
@@ -148,8 +150,3 @@ export class HeaderManager {
} }
} }
} }
// Initialize the header manager when the DOM is loaded
document.addEventListener('DOMContentLoaded', () => {
window.headerManager = new HeaderManager();
});

View File

@@ -3,6 +3,7 @@ import { LoadingManager } from './managers/LoadingManager.js';
import { modalManager } from './managers/ModalManager.js'; import { modalManager } from './managers/ModalManager.js';
import { updateService } from './managers/UpdateService.js'; import { updateService } from './managers/UpdateService.js';
import { state, initSettings } from './state/index.js'; import { state, initSettings } from './state/index.js';
import { initializeCommonComponents } from './common.js';
import { showLoraModal } from './components/LoraModal.js'; import { showLoraModal } from './components/LoraModal.js';
import { toggleShowcase, scrollToTop } from './components/LoraModal.js'; import { toggleShowcase, scrollToTop } from './components/LoraModal.js';
import { loadMoreLoras, fetchCivitai, deleteModel, replacePreview, resetAndReload, refreshLoras } from './api/loraApi.js'; import { loadMoreLoras, fetchCivitai, deleteModel, replacePreview, resetAndReload, refreshLoras } from './api/loraApi.js';
@@ -22,16 +23,13 @@ import {
} from './utils/uiHelpers.js'; } from './utils/uiHelpers.js';
import { initializeInfiniteScroll } from './utils/infiniteScroll.js'; import { initializeInfiniteScroll } from './utils/infiniteScroll.js';
import { showDeleteModal, confirmDelete, closeDeleteModal } from './utils/modalUtils.js'; import { showDeleteModal, confirmDelete, closeDeleteModal } from './utils/modalUtils.js';
import { SearchManager } from './managers/SearchManager.js';
import { DownloadManager } from './managers/DownloadManager.js'; import { DownloadManager } from './managers/DownloadManager.js';
import { SettingsManager, toggleApiKeyVisibility } from './managers/SettingsManager.js'; import { SettingsManager, toggleApiKeyVisibility } from './managers/SettingsManager.js';
import { LoraContextMenu } from './components/ContextMenu.js'; import { LoraContextMenu } from './components/ContextMenu.js';
import { moveManager } from './managers/MoveManager.js'; import { moveManager } from './managers/MoveManager.js';
import { FilterManager } from './managers/FilterManager.js';
import { createLoraCard, updateCardsForBulkMode } from './components/LoraCard.js'; import { createLoraCard, updateCardsForBulkMode } from './components/LoraCard.js';
import { bulkManager } from './managers/BulkManager.js'; import { bulkManager } from './managers/BulkManager.js';
import { HeaderManager } from './components/Header.js'; import { HeaderManager } from './components/Header.js';
// Add bulk mode to state // Add bulk mode to state
state.bulkMode = false; state.bulkMode = false;
state.selectedLoras = new Set(); state.selectedLoras = new Set();
@@ -73,6 +71,8 @@ document.addEventListener('DOMContentLoaded', async () => {
// Ensure settings are initialized // Ensure settings are initialized
initSettings(); initSettings();
initializeCommonComponents();
window.headerManager = new HeaderManager();
state.loadingManager = new LoadingManager(); state.loadingManager = new LoadingManager();
modalManager.initialize(); // Initialize modalManager after DOM is loaded modalManager.initialize(); // Initialize modalManager after DOM is loaded
updateService.initialize(); // Initialize updateService after modalManager updateService.initialize(); // Initialize updateService after modalManager
@@ -104,19 +104,6 @@ document.addEventListener('DOMContentLoaded', async () => {
// Update positions on window resize // Update positions on window resize
window.addEventListener('resize', updatePanelPositions); window.addEventListener('resize', updatePanelPositions);
// Initialize search manager with LoRA-specific options
const loraSearchManager = new SearchManager({
searchCallback: (query, options, recursive) => {
// LoRA-specific search implementation
// This could call your API with the right parameters
fetchLoras({
search: query,
search_options: options,
recursive: recursive
});
}
});
// Set the current page for proper context // Set the current page for proper context
document.body.dataset.page = 'loras'; document.body.dataset.page = 'loras';
}); });

View File

@@ -10,7 +10,6 @@ import { showToast } from '../utils/uiHelpers.js';
export class LoraSearchManager extends SearchManager { export class LoraSearchManager extends SearchManager {
constructor(options = {}) { constructor(options = {}) {
console.log("initializing lora search manager");
super({ super({
page: 'loras', page: 'loras',
...options ...options

View File

@@ -34,10 +34,10 @@ export class UpdateService {
}); });
// Set up event listener for update button // Set up event listener for update button
const updateToggle = document.getElementById('updateToggleBtn'); // const updateToggle = document.getElementById('updateToggleBtn');
if (updateToggle) { // if (updateToggle) {
updateToggle.addEventListener('click', () => this.toggleUpdateModal()); // updateToggle.addEventListener('click', () => this.toggleUpdateModal());
} // }
// Immediately update modal content with current values (even if from default) // Immediately update modal content with current values (even if from default)
this.updateModalContent(); this.updateModalContent();
@@ -226,10 +226,6 @@ export class UpdateService {
}); });
} }
showUpdateModal() {
this.toggleUpdateModal();
}
async manualCheckForUpdates() { async manualCheckForUpdates() {
this.lastCheckTime = 0; // Reset last check time to force check this.lastCheckTime = 0; // Reset last check time to force check
await this.checkForUpdates(); await this.checkForUpdates();

View File

@@ -161,6 +161,7 @@ class RecipeManager {
// Initialize components // Initialize components
document.addEventListener('DOMContentLoaded', () => { document.addEventListener('DOMContentLoaded', () => {
initializeCommonComponents(); initializeCommonComponents();
window.headerManager = new HeaderManager();
window.recipeManager = new RecipeManager(); window.recipeManager = new RecipeManager();
// Make importRecipes function available globally // Make importRecipes function available globally

View File

@@ -36,11 +36,11 @@
<div class="header-actions"> <div class="header-actions">
<!-- Integrated corner controls --> <!-- Integrated corner controls -->
<div class="header-controls"> <div class="header-controls">
<div class="theme-toggle" onclick="toggleTheme()" title="Toggle theme"> <div class="theme-toggle" title="Toggle theme">
<i class="fas fa-moon dark-icon"></i> <i class="fas fa-moon dark-icon"></i>
<i class="fas fa-sun light-icon"></i> <i class="fas fa-sun light-icon"></i>
</div> </div>
<div class="settings-toggle" onclick="settingsManager.toggleSettings()" title="Settings"> <div class="settings-toggle" title="Settings">
<i class="fas fa-cog"></i> <i class="fas fa-cog"></i>
</div> </div>
<div class="update-toggle" id="updateToggleBtn" title="Check Updates"> <div class="update-toggle" id="updateToggleBtn" title="Check Updates">
@@ -149,31 +149,5 @@
} else if (currentPath === '/checkpoints') { } else if (currentPath === '/checkpoints') {
checkpointsNavItem.classList.add('active'); checkpointsNavItem.classList.add('active');
} }
// Initialize search options panel toggle
const searchOptionsToggle = document.getElementById('searchOptionsToggle');
const searchOptionsPanel = document.getElementById('searchOptionsPanel');
if (searchOptionsToggle && searchOptionsPanel) {
searchOptionsToggle.addEventListener('click', function() {
const isHidden = searchOptionsPanel.classList.contains('hidden');
if (isHidden) {
searchOptionsPanel.classList.remove('hidden');
searchOptionsToggle.classList.add('active');
} else {
searchOptionsPanel.classList.add('hidden');
searchOptionsToggle.classList.remove('active');
}
});
// Close search options panel when clicking the close button
const closeSearchOptions = document.getElementById('closeSearchOptions');
if (closeSearchOptions) {
closeSearchOptions.addEventListener('click', function() {
searchOptionsPanel.classList.add('hidden');
searchOptionsToggle.classList.remove('active');
});
}
}
}); });
</script> </script>