[TikiWiki-commits] [Git][tikiwiki/tiki][master] [ENH] Improved collapsible sidebar behavior

"luci \(@luciash\) via TikiWiki-cvs" <[email protected]>
Newsgroups gmane.comp.cms.tiki.cvs
Message-ID <69b153c2b71ed_3b189ae858664@gitlab-sidekiq-low-urgency-cpu-bound-v2-69874456c-29gvc.mail>

luci pushed to branch master at Tiki Wiki CMS Groupware / Tiki


Commits:
6f65c5a2 by Moïse Nturubika at 2026-03-11T11:28:52+00:00
[ENH] Improved collapsible sidebar behavior
---
* [ENH][UI] Fix mobile content padding, center search icon, and expand sidebar on preference filters click

* [FIX] Fix typo and empty spaces

* [UI] Expand sidebar when clicking search icon in narrow mode

* [ENH] Improved collapsible sidebar behavior

See merge request tikiwiki/tiki!9698

- - - - -


2 changed files:

- lib/jquery_tiki/tiki-admin.js
- themes/base_files/css/feature/adminui.scss


Changes:

=====================================
lib/jquery_tiki/tiki-admin.js
=====================================
@@ -263,8 +263,7 @@
     $(function () {
         var $body = $("body"),
             $targets = $(".admin-nav .offcanvas, .admin-nav .navbar-wrapper"),
-            storageKey = "tiki_admin_sidebar_collapsed",
-            hoverTimeout;
+            storageKey = "tiki_admin_sidebar_collapsed";
 
         function setCollapsed(state) {
             $body.toggleClass("sidebar_collapsed", state);
@@ -282,33 +281,38 @@
             }
         }
 
-        // Events
+        // Toggle collapse on button click
         $(document).on("click", ".admin-menu-collapse-btn", function (e) {
             e.preventDefault();
             setCollapsed(!$body.hasClass("sidebar_collapsed"));
         });
 
+        // Handle search icon click in narrow mode (expand instead of submit)
+        $(document).on("click", ".search-preferences button[type='submit']", function (e) {
+            if ($body.hasClass("sidebar_collapsed")) {
+                e.preventDefault();
+                setCollapsed(false);
+                $(".search-preferences input[name='lm_criteria']").focus();
+            }
+        });
+
+        // Handle preference filters icon click in narrow mode (expand sidebar)
+        $(document).on("click", "#flush-heading-preference-filters > button", function (e) {
+            if ($body.hasClass("sidebar_collapsed")) {
+                e.preventDefault();
+                setCollapsed(false);
+            }
+        });
+
         // Ensure icon is correct on load immediately
         $(function () {
             var collapsed = $body.hasClass("sidebar_collapsed");
-            // Double check storage if class isn't there yet but should be (though PHP might have set it, body class is usually reliable if set by server)
             if (!collapsed && (localStorage.getItem(storageKey) === "y" || getCookie("sidebar_collapsed") === "y")) {
                 collapsed = true;
             }
             setCollapsed(collapsed);
         });
 
-        $(document).on("mouseenter mouseleave", ".admin-nav .offcanvas, .admin-nav .navbar-wrapper", function (e) {
-            if (!$body.hasClass("sidebar_collapsed")) return;
-
-            clearTimeout(hoverTimeout);
-            if (e.type === "mouseenter") {
-                $targets.removeClass("narrow");
-            } else {
-                hoverTimeout = setTimeout(function () { $targets.addClass("narrow"); }, 300);
-            }
-        });
-
         // Initialize (check storage)
         try {
             if (localStorage.getItem(storageKey) === "y" || getCookie("sidebar_collapsed") === "y") {


=====================================
themes/base_files/css/feature/adminui.scss
=====================================
@@ -322,6 +322,7 @@ body.tiki-admin {
 
 @media (min-width: 992px) {
 
+    // When the sidebar is collapsed (narrow mode)
     .tiki-admin aside.admin-nav .offcanvas.narrow,
     .tiki-admin aside.admin-nav .navbar-wrapper.narrow {
         max-width: 80px !important;
@@ -330,9 +331,21 @@ body.tiki-admin {
         min-height: calc(100vh - var(--tiki-admin-top-modules-height)) !important;
         display: flex !important;
         flex-direction: column !important;
+        overflow-x: hidden !important; // Hide any horizontal scrolling
+
+        // Ensure all items inside fit the narrow width
+        * {
+            max-width: 100% !important;
+        }
     }
 
-    // Ensure collapsed sidebar inner content expands to full height
+    // This part sits between the wrapper and offcanvas
+    .tiki-admin aside.admin-nav .navbar-wrapper.narrow>.navbar {
+        max-width: 100% !important;
+        overflow-x: hidden !important;
+    }
+
+    // Make sure the body takes full height
     .tiki-admin aside.admin-nav .offcanvas.narrow .offcanvas-body,
     .tiki-admin aside.admin-nav .navbar-wrapper.narrow .offcanvas-body {
         height: 100% !important;
@@ -340,6 +353,7 @@ body.tiki-admin {
         flex-direction: column !important;
     }
 
+    // Main inner container for sidebar items
     .tiki-admin aside.admin-nav .offcanvas.narrow .offcanvas-body>div,
     .tiki-admin aside.admin-nav .navbar-wrapper.narrow>div {
         height: 100% !important;
@@ -348,11 +362,20 @@ body.tiki-admin {
         flex: 1 !important;
     }
 
+    // The accordion holds the menu sections
     .tiki-admin aside.admin-nav .offcanvas.narrow .accordion,
     .tiki-admin aside.admin-nav .navbar-wrapper.narrow .accordion {
         flex: 1 !important;
         display: flex !important;
         flex-direction: column !important;
+        overflow-x: hidden !important; // Critical fix: prevents the horizontal scrollbar
+    }
+
+    // Center the search icon form
+    .tiki-admin aside.admin-nav .navbar-wrapper.narrow .search-preferences form {
+        text-align: center;
+        display: flex;
+        justify-content: center;
     }
 
     // Keep the collapse button at the bottom
@@ -434,6 +457,11 @@ body.tiki-admin {
         display: none !important;
     }
 
+
+    .tiki-admin aside.admin-nav .offcanvas.narrow .accordion-body {
+        padding: 0 !important;
+    }
+
     .tiki-admin aside.admin-nav .offcanvas.narrow .accordion-button .icon {
         margin: 0 !important;
         font-size: 1.2rem;
@@ -655,13 +683,10 @@ body.sidebar_collapsed .admin-menu-collapser .expand-text {
     border-color: rgba(0, 0, 0, 0.1);
 }
 
-// Prevent accordion collapse when sidebar is collapsed and showing popover
+// Allow accordion buttons to be clickable in narrow mode
 .tiki-admin aside.admin-nav .offcanvas.narrow .accordion-button {
     pointer-events: auto;
-}
-
-.tiki-admin aside.admin-nav .offcanvas.narrow .accordion-button[data-bs-toggle="collapse"] {
-    pointer-events: none;
+    cursor: pointer;
 }
 
 .tiki-admin aside.admin-nav .offcanvas.narrow .admin-menu-trigger {
@@ -730,12 +755,15 @@ body.sidebar_collapsed .admin-menu-collapser .expand-text {
     }
 }
 
-// Adjust content padding when sidebar is collapsed
-body.sidebar_collapsed.tiki-admin.uab #tikifeedback,
-body.sidebar_collapsed.tiki-admin.uab .admin-content,
-body.sidebar_collapsed.tiki-admin.uab .errors-wrapper,
-body.sidebar_collapsed.tiki-admin.uab .bottom_modules {
-    padding-left: 80px !important;
+// Adjust content padding when sidebar is collapsed (Desktop only, mobile has offcanvas)
+@media (min-width: 992px) {
+
+    body.sidebar_collapsed.tiki-admin.uab #tikifeedback,
+    body.sidebar_collapsed.tiki-admin.uab .admin-content,
+    body.sidebar_collapsed.tiki-admin.uab .errors-wrapper,
+    body.sidebar_collapsed.tiki-admin.uab .bottom_modules {
+        padding-left: 80px !important;
+    }
 }
 
 body.tiki-admin .container.container-std {



View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/6f65c5a29fca2b43cec68de1648617f28bb5043d

-- 
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/6f65c5a29fca2b43cec68de1648617f28bb5043d
You're receiving this email because of your account on gitlab.com. Manage all notifications: https://gitlab.com/-/profile/notifications | Help: https://gitlab.com/help

_______________________________________________
TikiWiki-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.