feat: Implement sidebar collapse and expand functionality
- Add CSS for collapsed sidebar state and transitions - Introduce SidebarToggle class for managing collapse/expand logic - Integrate SidebarToggle initialization in main script - Add toggle button to navbar and make mini sidebar clickable - Store sidebar collapsed state in localStorage - Filter image files and directories in view mode via FileTree - Make navbar brand clickable to navigate to collection root or home
This commit is contained in:
@@ -4,13 +4,14 @@
|
||||
*/
|
||||
|
||||
class FileTree {
|
||||
constructor(containerId, webdavClient) {
|
||||
constructor(containerId, webdavClient, isEditMode = false) {
|
||||
this.container = document.getElementById(containerId);
|
||||
this.webdavClient = webdavClient;
|
||||
this.tree = [];
|
||||
this.selectedPath = null;
|
||||
this.onFileSelect = null;
|
||||
this.onFolderSelect = null;
|
||||
this.filterImagesInViewMode = !isEditMode; // Track if we should filter images (true in view mode)
|
||||
|
||||
// Drag and drop state
|
||||
this.draggedNode = null;
|
||||
@@ -426,6 +427,19 @@ class FileTree {
|
||||
|
||||
renderNodes(nodes, parentElement, level) {
|
||||
nodes.forEach(node => {
|
||||
// Filter out images and image directories in view mode
|
||||
if (this.filterImagesInViewMode) {
|
||||
// Skip image files
|
||||
if (!node.isDirectory && PathUtils.isBinaryFile(node.path)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Skip image directories
|
||||
if (node.isDirectory && PathUtils.isImageDirectory(node.path)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
const nodeWrapper = document.createElement('div');
|
||||
nodeWrapper.className = 'tree-node-wrapper';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user