From d0bc5ebbd05e1167b4e52ccb0000d1a0e269aa66 Mon Sep 17 00:00:00 2001 From: Bruno Charest Date: Mon, 15 Jun 2026 15:16:54 -0400 Subject: [PATCH] fix: mise a jour legacy.js + app.js pour les nouveaux IDs rb-* (barre flottante) --- frontend/app.js | 34 +++++++++++++++++++++------------- frontend/js/legacy.js | 30 ++++++++++++++++++------------ 2 files changed, 39 insertions(+), 25 deletions(-) diff --git a/frontend/app.js b/frontend/app.js index a0875f0..1e3307c 100644 --- a/frontend/app.js +++ b/frontend/app.js @@ -4896,25 +4896,29 @@ function initSearch() { const input = document.getElementById("search-input"); if (!input) return; - const caseBtn = document.getElementById("search-case-btn"); - const wordBtn = document.getElementById("search-word-btn"); - const regexBtn = document.getElementById("search-regex-btn"); + const caseBtn = document.getElementById("rb-case"); + const wordBtn = document.getElementById("rb-word"); + const regexBtn = document.getElementById("rb-regex"); const filterBtn = document.getElementById("search-filter-btn"); const clearBtn = document.getElementById("search-clear-btn"); const filterRow = document.getElementById("search-filter-row"); - const prevBtn = document.getElementById("search-prev-btn"); - const nextBtn = document.getElementById("search-next-btn"); - const countEl = document.getElementById("search-match-count"); + const prevBtn = document.getElementById("rb-prev"); + const nextBtn = document.getElementById("rb-next"); + const countEl = document.getElementById("rb-count"); + const resultsBar = document.getElementById("results-bar"); + + function _showResultsBar() { if (resultsBar) resultsBar.style.display = 'flex'; } + function _hideResultsBar() { if (resultsBar) resultsBar.style.display = 'none'; } function _updateToggleUI() { - caseBtn.classList.toggle("active", searchCaseSensitive); - wordBtn.classList.toggle("active", searchWholeWord); - regexBtn.classList.toggle("active", searchRegex); - filterBtn.classList.toggle("active", searchFilterVisible); + if (caseBtn) caseBtn.classList.toggle("active", searchCaseSensitive); + if (wordBtn) wordBtn.classList.toggle("active", searchWholeWord); + if (regexBtn) regexBtn.classList.toggle("active", searchRegex); + if (filterBtn) filterBtn.classList.toggle("active", searchFilterVisible); } // Toggle buttons - caseBtn.addEventListener("click", () => { searchCaseSensitive = !searchCaseSensitive; _updateToggleUI(); _research(); }); + if (caseBtn) caseBtn.addEventListener("click", () => { searchCaseSensitive = !searchCaseSensitive; _updateToggleUI(); _research(); }); if (wordBtn) wordBtn.addEventListener("click", () => { searchWholeWord = !searchWholeWord; _updateToggleUI(); _research(); }); if (regexBtn) regexBtn.addEventListener("click", () => { searchRegex = !searchRegex; _updateToggleUI(); _research(); }); if (filterBtn) filterBtn.addEventListener("click", () => { searchFilterVisible = !searchFilterVisible; if (filterRow) filterRow.style.display = searchFilterVisible ? "flex" : "none"; _updateToggleUI(); }); @@ -4930,7 +4934,7 @@ if (_searchResultIdx >= 0 && _searchResultIdx < _searchResultItems.length) { _searchResultItems[_searchResultIdx].scrollIntoView({ block: "nearest", behavior: "smooth" }); } - const countEl = document.getElementById("search-match-count"); + const countEl = document.getElementById("rb-count"); if (countEl) countEl.textContent = _searchResultIdx >= 0 ? `${_searchResultIdx + 1}/${_searchResultItems.length}` : `0/${_searchResultItems.length}`; } @@ -4938,6 +4942,7 @@ _searchResultItems = Array.from(document.querySelectorAll(".search-result-item")); _searchResultIdx = _searchResultItems.length > 0 ? 0 : -1; _updateResultHighlight(); + if (_searchResultItems.length > 0) _showResultsBar(); else _hideResultsBar(); } window.navigateSearchResults = function(delta) { @@ -5259,8 +5264,11 @@ area.innerHTML = ""; // Update match counter - const countEl = document.getElementById("search-match-count"); + const countEl = document.getElementById("rb-count"); if (countEl) countEl.textContent = `${data.total > 0 ? "1" : "0"}/${data.total}`; + // Show floating results bar + var rb = document.getElementById('results-bar'); + if (rb) rb.style.display = 'flex'; // Header with result count and sort controls const header = el("div", { class: "search-results-header" }); diff --git a/frontend/js/legacy.js b/frontend/js/legacy.js index 6a92553..ea55a23 100644 --- a/frontend/js/legacy.js +++ b/frontend/js/legacy.js @@ -77,25 +77,29 @@ function _isInputFocused() { function initSearch() { const input = document.getElementById("search-input"); if (!input) return; - const caseBtn = document.getElementById("search-case-btn"); - const wordBtn = document.getElementById("search-word-btn"); - const regexBtn = document.getElementById("search-regex-btn"); + const caseBtn = document.getElementById("rb-case"); + const wordBtn = document.getElementById("rb-word"); + const regexBtn = document.getElementById("rb-regex"); const filterBtn = document.getElementById("search-filter-btn"); const clearBtn = document.getElementById("search-clear-btn"); const filterRow = document.getElementById("search-filter-row"); - const prevBtn = document.getElementById("search-prev-btn"); - const nextBtn = document.getElementById("search-next-btn"); - const countEl = document.getElementById("search-match-count"); + const prevBtn = document.getElementById("rb-prev"); + const nextBtn = document.getElementById("rb-next"); + const countEl = document.getElementById("rb-count"); + const resultsBar = document.getElementById("results-bar"); + + function _showResultsBar() { if (resultsBar) resultsBar.style.display = 'flex'; } + function _hideResultsBar() { if (resultsBar) resultsBar.style.display = 'none'; } function _updateToggleUI() { - caseBtn.classList.toggle("active", state.searchCaseSensitive); - wordBtn.classList.toggle("active", state.searchWholeWord); - regexBtn.classList.toggle("active", state.searchRegex); - filterBtn.classList.toggle("active", state.searchFilterVisible); + if (caseBtn) caseBtn.classList.toggle("active", state.searchCaseSensitive); + if (wordBtn) wordBtn.classList.toggle("active", state.searchWholeWord); + if (regexBtn) regexBtn.classList.toggle("active", state.searchRegex); + if (filterBtn) filterBtn.classList.toggle("active", state.searchFilterVisible); } // Toggle buttons - caseBtn.addEventListener("click", () => { state.searchCaseSensitive = !state.searchCaseSensitive; _updateToggleUI(); _research(); }); + if (caseBtn) caseBtn.addEventListener("click", () => { state.searchCaseSensitive = !state.searchCaseSensitive; _updateToggleUI(); _research(); }); if (wordBtn) wordBtn.addEventListener("click", () => { state.searchWholeWord = !state.searchWholeWord; _updateToggleUI(); _research(); }); if (regexBtn) regexBtn.addEventListener("click", () => { state.searchRegex = !state.searchRegex; _updateToggleUI(); _research(); }); if (filterBtn) filterBtn.addEventListener("click", () => { state.searchFilterVisible = !state.searchFilterVisible; if (filterRow) filterRow.style.display = state.searchFilterVisible ? "flex" : "none"; _updateToggleUI(); }); @@ -111,7 +115,7 @@ function initSearch() { if (_searchResultIdx >= 0 && _searchResultIdx < _searchResultItems.length) { _searchResultItems[_searchResultIdx].scrollIntoView({ block: "nearest", behavior: "smooth" }); } - const countEl = document.getElementById("search-match-count"); + const countEl = document.getElementById("rb-count"); if (countEl) countEl.textContent = _searchResultIdx >= 0 ? `${_searchResultIdx + 1}/${_searchResultItems.length}` : `0/${_searchResultItems.length}`; } @@ -119,6 +123,7 @@ function initSearch() { _searchResultItems = Array.from(document.querySelectorAll(".search-result-item")); _searchResultIdx = _searchResultItems.length > 0 ? 0 : -1; _updateResultHighlight(); + if (_searchResultItems.length > 0) _showResultsBar(); else _hideResultsBar(); } window.navigateSearchResults = function(delta) { @@ -269,6 +274,7 @@ function initSearch() { state.searchWholeWord = false; state.searchRegex = false; _updateToggleUI(); + _hideResultsBar(); SearchChips.clear(); AutocompleteDropdown.hide(); showWelcome();