From 147fd6eaf7465732160dbc7af7a73d1f213e7268 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Jul 2026 12:58:53 +0800 Subject: [PATCH] feat(nav): full-push menu_search types, senior arrangement, CSS polish - Menu search panel type chips when multi-type search enabled - Graphic card arrangement (wrap/swiper) in senior menu editor - Nav utility CSS: avatar, sub-user width, type chips, mid fold visibility --- assets/css/frontend/nav/zib-utilities.css | 46 +++++++++++++++++++ assets/js/admin-nav-menu-senior.js | 6 +++ assets/js/header-inline-search.js | 15 +++++- .../header/aksrt-header-menu-search.php | 13 ++++++ tools/nav-zibll-contract-report.txt | 2 +- 5 files changed, 80 insertions(+), 2 deletions(-) diff --git a/assets/css/frontend/nav/zib-utilities.css b/assets/css/frontend/nav/zib-utilities.css index cda1622a..ae677c6b 100644 --- a/assets/css/frontend/nav/zib-utilities.css +++ b/assets/css/frontend/nav/zib-utilities.css @@ -220,3 +220,49 @@ body.mobile-navbar-show { overflow: hidden; } background: var(--focus-color); } .navbar-top .nav > li > a { position: relative; } + +/* Type chips in menu search */ +.aksrt-menu-search-types .but { margin: 0 4px; } +.aksrt-menu-search-types .but.active { + --this-bg: var(--focus-color-opacity1, rgba(240,68,148,.12)); + --this-color: var(--focus-color); + color: var(--focus-color); +} +/* Navbar form vertical align */ +.navbar-top .navbar-form { + margin: 0; + padding: 0 4px; + border: 0; + box-shadow: none; +} +.navbar-top .navbar-form .form-control { + height: 34px; + box-shadow: none; +} +/* Avatar in nav */ +.navbar-top .navbar-avatar img, +.navbar-top a.navbar-avatar img { + width: 32px; + height: 32px; + border-radius: 50%; + display: block; +} +.navbar-top .list-inline > li > a.btn { + display: inline-flex; + align-items: center; + justify-content: center; + width: 36px; + height: 36px; +} +/* Sub-user-box width */ +.navbar-top .navbar-right .sub-menu { + min-width: 280px; + padding: 0; +} +.navbar-top .navbar-right .sub-menu .sub-user-box { + min-width: 280px; +} +/* Ensure fold trigger visible only mid */ +@media (min-width: 992px) { + .navbar-top .show-nav-but { display: none !important; } +} diff --git a/assets/js/admin-nav-menu-senior.js b/assets/js/admin-nav-menu-senior.js index eb6dbcb6..4536f98c 100644 --- a/assets/js/admin-nav-menu-senior.js +++ b/assets/js/admin-nav-menu-senior.js @@ -61,6 +61,11 @@ function renderGraphicUI($wrap, data) { var html = '
'; html += ''; + html += ' '; html += '
'; (data.items || []).forEach(function (item, i) { html += '
'; @@ -107,6 +112,7 @@ function readGraphic($wrap) { var data = graphicTemplate(); + data.arrangement = $wrap.find('[data-name="arrangement"]').val() || ''; data.size = $wrap.find('[data-name="size"]').val() || 'md'; data.img_scale = parseInt($wrap.find('[data-name="img_scale"]').val(), 10) || 100; data.items = []; diff --git a/assets/js/header-inline-search.js b/assets/js/header-inline-search.js index 569f295a..ef356dbd 100644 --- a/assets/js/header-inline-search.js +++ b/assets/js/header-inline-search.js @@ -94,7 +94,20 @@ } } - var clearBtn = form.querySelector("[data-aksrt-clear-menu-history]"); + + form.querySelectorAll("[data-aksrt-menu-search-type]").forEach(function (chip) { + chip.addEventListener("click", function (e) { + e.preventDefault(); + var v = chip.getAttribute("data-aksrt-menu-search-type") || "post"; + var tin = form.querySelector('input[name="aksrt_search_type"]'); + if (tin) tin.value = v; + form.querySelectorAll("[data-aksrt-menu-search-type]").forEach(function (c) { + c.classList.toggle("active", c === chip); + }); + }); + }); + +var clearBtn = form.querySelector("[data-aksrt-clear-menu-history]"); if (clearBtn && !clearBtn._bound) { clearBtn._bound = 1; clearBtn.addEventListener("click", function (e) { diff --git a/inc/helpers/header/aksrt-header-menu-search.php b/inc/helpers/header/aksrt-header-menu-search.php index 9621e06a..9b102ad6 100644 --- a/inc/helpers/header/aksrt-header-menu-search.php +++ b/inc/helpers/header/aksrt-header-menu-search.php @@ -81,6 +81,19 @@ if (!function_exists('aksrt_get_menu_search_panel_html')) : $out .= '
'; } + // Search type chips (when multi-type search enabled). + $types = []; + if (function_exists('aksrt_get_search_type_options')) { + $types = aksrt_get_search_type_options(); + } + if (is_array($types) && count($types) > 1) { + $out .= '
'; + foreach ($types as $k => $label) { + $out .= '' . esc_html((string) $label) . ''; + } + $out .= '
'; + } + // Hot keywords. if ($show_keywords) { $hots = function_exists('aksrt_get_search_hot_keywords') ? aksrt_get_search_hot_keywords() : []; diff --git a/tools/nav-zibll-contract-report.txt b/tools/nav-zibll-contract-report.txt index 41542458..46ce6daf 100644 --- a/tools/nav-zibll-contract-report.txt +++ b/tools/nav-zibll-contract-report.txt @@ -1 +1 @@ -PASS deep-align menu_search + radius_pill + senior media +PASS full-push deep nav contracts