From 8e18e0c8489b2f5892be0fde8e315494b5f31638 Mon Sep 17 00:00:00 2001 From: Edouard Vanbelle Date: Thu, 16 Apr 2026 00:16:40 +0200 Subject: [PATCH 1/3] fix(section/favorite): ensure select-all-checkbox is wired --- static/js/app/state.js | 1 - static/js/features/files/multiSelect.js | 2 +- static/js/features/library/favorites.js | 5 +++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/static/js/app/state.js b/static/js/app/state.js index 0fd2575a..3911e264 100644 --- a/static/js/app/state.js +++ b/static/js/app/state.js @@ -12,7 +12,6 @@ export const app = { contextMenuTargetFile: null, selectedTargetFolderId: '', moveDialogMode: 'file', - currentSection: null, // will be defined on first call isSearchMode: false, shareDialogItem: null, diff --git a/static/js/features/files/multiSelect.js b/static/js/features/files/multiSelect.js index 5dc1a7a1..a3a4a56a 100644 --- a/static/js/features/files/multiSelect.js +++ b/static/js/features/files/multiSelect.js @@ -256,7 +256,7 @@ const multiSelect = { // Sync individual item checkboxes this._syncItemCheckboxes(); // Sync select-all checkbox state (for non-selection-mode) - if (!this._barVisible) this._syncSelectAllCheckbox(); + this._syncSelectAllCheckbox(); }, /** Wire click handlers on batch action buttons (idempotent per render) */ diff --git a/static/js/features/library/favorites.js b/static/js/features/library/favorites.js index 579e8a43..43fe53be 100644 --- a/static/js/features/library/favorites.js +++ b/static/js/features/library/favorites.js @@ -9,6 +9,7 @@ import { ui } from '../../app/ui.js'; import { getCsrfHeaders } from '../../core/csrf.js'; import { i18n } from '../../core/i18n.js'; +import { multiSelect } from '../files/multiSelect.js'; const favorites = { /** @type {Map} key = "file:" | "folder:" */ @@ -172,6 +173,10 @@ const favorites = { } ui.resetFilesList(); // ensure also list visible & error hidden + // wire buttons & select-all-checkbox as list header has changed in ui.resetFilesList() + // FIXME: this case is not easy to understand, should apply better implementation + multiSelect.init(); + ui.updateBreadcrumb(''); if (this._cache.size === 0) { From c8dbcd2409d8428f63b35c3a3b9d0c13ed47a74a Mon Sep 17 00:00:00 2001 From: Edouard Vanbelle Date: Thu, 16 Apr 2026 00:49:32 +0200 Subject: [PATCH 2/3] fix(multi-select/action bar): keep large bar --- static/css/components/multiSelect.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/static/css/components/multiSelect.css b/static/css/components/multiSelect.css index 87961bff..ed54c193 100644 --- a/static/css/components/multiSelect.css +++ b/static/css/components/multiSelect.css @@ -42,6 +42,9 @@ padding: 10px 20px; border-radius: 12px; overflow: hidden; + margin-right: 12px; + height: 60px; + transform: translateY(-8px); transition: opacity 0.2s, max-height 0.25s, From 9073274e69ae36d948033bd128d0ebe00ca5c1c8 Mon Sep 17 00:00:00 2001 From: Edouard Vanbelle Date: Thu, 16 Apr 2026 01:06:09 +0200 Subject: [PATCH 3/3] fix(list-view/select-all-checkbox): avoid multiple listener on select all checkbox --- static/js/app/ui.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/static/js/app/ui.js b/static/js/app/ui.js index aecad705..1c3e7f83 100644 --- a/static/js/app/ui.js +++ b/static/js/app/ui.js @@ -1309,9 +1309,6 @@ const ui = { filesList.classList.remove('hidden'); filesContainerError?.classList.add('hidden'); - - // apply hook as header changed - multiSelect.init(); }, showEmptyList() {