From f0682d626c522bb9a2cbabd1c1e593c0f7ac4704 Mon Sep 17 00:00:00 2001 From: Paul Derscheid Date: Mon, 2 Mar 2026 19:22:02 +0100 Subject: [PATCH] Bug 41963: (follow-up) Extend collapsible toolbar to search results - Extend the collapsible toolbar pattern to the catalog search results page (opac-results.tt) which has the same #floating sticky toolbar consuming the viewport on mobile - Un-scope .toolbar-collapse-toggle and .toolbar-collapse CSS rules so they apply globally (safe: only pages with those HTML classes are affected) - Add #results body ID to the per-item .actions-menu compact override alongside #opac-userlists and #opac-lists - Move the toggle click handler from opac-shelves.tt inline script to global.js to avoid duplication across pages Test plan: - Apply patch on top of Bug 41963 base patch - Run: yarn css:build - Run: koha-plack --reload kohadev - Perform a search that returns results - At mobile viewport (<=608px), verify toolbar is collapsed behind a "Search controls" toggle bar - Click the toggle to expand, verify pagination, sort, and batch controls are all accessible - Verify per-item actions display as compact inline links - Navigate to a list page and verify collapse still works - At desktop width (>608px), verify both pages display toolbars normally with no toggle button visible --- .../bootstrap/css/src/_responsive.scss | 43 +-- .../bootstrap/en/modules/opac-results.tt | 76 ++--- .../bootstrap/en/modules/opac-shelves.tt | 287 +++++++++--------- koha-tmpl/opac-tmpl/bootstrap/js/global.js | 10 + 4 files changed, 211 insertions(+), 205 deletions(-) diff --git a/koha-tmpl/opac-tmpl/bootstrap/css/src/_responsive.scss b/koha-tmpl/opac-tmpl/bootstrap/css/src/_responsive.scss index 684391159b6..5ea72d89d11 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/css/src/_responsive.scss +++ b/koha-tmpl/opac-tmpl/bootstrap/css/src/_responsive.scss @@ -218,33 +218,34 @@ display: block; } - #opac-userlists, - #opac-lists { - .toolbar-collapse-toggle { - background-color: #EEEEEE; - color: $gray-550; - display: block !important; - font-size: .9rem; - padding: 6px 10px; - text-align: center; - width: 100%; + .toolbar-collapse-toggle { + background-color: #EEEEEE; + color: $gray-550; + display: block !important; + font-size: .9rem; + padding: 6px 10px; + text-align: center; + width: 100%; - &:hover, - &:focus { - background-color: darken( #EEEEEE, 5% ); - color: $gray-700; - text-decoration: none; - } + &:hover, + &:focus { + background-color: darken( #EEEEEE, 5% ); + color: $gray-700; + text-decoration: none; } + } - .toolbar-collapse { - display: none; + .toolbar-collapse { + display: none; - &.open { - display: block; - } + &.open { + display: block; } + } + #opac-userlists, + #opac-lists, + #results { .actions-menu .actions { display: inline; diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt index 4034eb9633c..e6969ed2052 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt @@ -194,44 +194,48 @@ [% END # IF /searchdesc %]
-
-
[% INCLUDE 'page-numbers.inc' %]
- [% UNLESS tag %] -
- - - - - [% IF Koha.Preference('OPACnumSearchResultsDropdown') %] - - + [% INCLUDE 'resort_form.inc' %] - [% END # IF Koha.Preference('OPACnumSearchResultsDropdown') %] -
- -
- -
- - [% END # /UNLESS tag %] -
- - [% INCLUDE 'result-batch-controls.inc' results=1 %] + [% IF Koha.Preference('OPACnumSearchResultsDropdown') %] + + + [% END # IF Koha.Preference('OPACnumSearchResultsDropdown') %] +
+ +
+ +
+ + [% END # /UNLESS tag %] + + + + [% INCLUDE 'result-batch-controls.inc' results=1 %] + + diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt index 45583dbaf63..cd53f555b05 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt @@ -258,154 +258,155 @@ [% SET contents = shelf.get_contents %] [% IF ( contents.count ) %]

This list contains [% contents.count | html %] titles

[% END %]
- +
-
-
- New list | - - - - [% INCLUDE 'result-batch-controls.inc' %] -
+
@@ -1099,16 +1100,6 @@ Dopop( link ); }); - $(".toolbar-collapse-toggle").on("click", function(e) { - e.preventDefault(); - var $toggle = $(this); - var $collapse = $toggle.siblings(".toolbar-collapse"); - var isOpen = $collapse.hasClass("open"); - $collapse.toggleClass("open"); - $toggle.attr("aria-expanded", !isOpen ? "true" : "false"); - $toggle.find("i").toggleClass("fa-bars fa-times"); - }); - }); // document.ready function sortMenu( sorting_form ){ diff --git a/koha-tmpl/opac-tmpl/bootstrap/js/global.js b/koha-tmpl/opac-tmpl/bootstrap/js/global.js index 2e9d20287f4..dbbd14b7ddc 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/js/global.js +++ b/koha-tmpl/opac-tmpl/bootstrap/js/global.js @@ -304,6 +304,16 @@ $(document).ready(function () { facetMenu("hide"); } + $(".toolbar-collapse-toggle").on("click", function (e) { + e.preventDefault(); + var $toggle = $(this); + var $collapse = $toggle.siblings(".toolbar-collapse"); + var isOpen = $collapse.hasClass("open"); + $collapse.toggleClass("open"); + $toggle.attr("aria-expanded", isOpen ? "false" : "true"); + $toggle.find("i").toggleClass("fa-bars fa-times"); + }); + // clear the basket when user logs out $("#logout").click(function () { var nameCookie = "bib_list"; -- 2.53.0