diff --git a/public/themes/dist_static/static/js/announce.js b/public/themes/dist_static/static/js/announce.js index 21499ab..d2836a0 100644 --- a/public/themes/dist_static/static/js/announce.js +++ b/public/themes/dist_static/static/js/announce.js @@ -45,8 +45,39 @@ function initFilterDropdown() { if (!$(event.target).closest("[data-filter-trigger], [data-filter-dropdown]").length) closeDropdown(); }); } +function getActiveTabId() { + return $("[data-filter-dropdown] .is-active[data-tab]").attr("data-tab") || ""; +} +function activateTabById(tabId) { + if (!tabId) return; + const $item = $(`[data-filter-dropdown] [data-tab="${tabId}"]`).first(); + if (!$item.length) return; + const $dropdown = $item.closest("[data-filter-dropdown]"); + const $btn = $dropdown.prev("[data-filter-trigger]"); + $item.addClass("is-active").siblings().removeClass("is-active"); + $btn.find("span").text($item.text()); + $btn.addClass("is-selected"); +} +function initTabKeywordsSearch() { + $("[data-tab-search]").on("submit", function(event) { + event.preventDefault(); + const params = new URLSearchParams(); + const keywords = $(this).find('[name="keywords"]').val().trim(); + const tabId = getActiveTabId(); + if (tabId) params.set("tab", tabId); + if (keywords) params.set("keywords", keywords); + const query = params.toString(); + window.location.href = query ? `${window.location.pathname}?${query}` : window.location.pathname; + }); + const searchParams = new URLSearchParams(window.location.search); + const tabParam = searchParams.get("tab"); + const keywordsParam = searchParams.get("keywords"); + if (keywordsParam) $("[data-tab-search] [name='keywords']").val(keywordsParam); + if (tabParam) activateTabById(tabParam); +} $(function() { setActiveNav(); initFilterDropdown(); + initTabKeywordsSearch(); }); //#endregion diff --git a/public/themes/dist_static/static/js/download.js b/public/themes/dist_static/static/js/download.js index 248e195..0750a72 100644 --- a/public/themes/dist_static/static/js/download.js +++ b/public/themes/dist_static/static/js/download.js @@ -65,7 +65,7 @@ $(function() { $(document).on("click", function(event) { if (!$(event.target).closest(".d-tabs__group").length) closeDropdowns(); }); - $("[data-download-search]").on("submit", function(event) { + $("[data-tab-search]").on("submit", function(event) { event.preventDefault(); const params = new URLSearchParams(); const keywords = $(this).find('[name="keywords"]').val().trim(); @@ -78,7 +78,7 @@ $(function() { const searchParams = new URLSearchParams(window.location.search); const tabParam = searchParams.get("tab"); const keywordsParam = searchParams.get("keywords"); - if (keywordsParam) $("[data-download-search] [name='keywords']").val(keywordsParam); + if (keywordsParam) $("[data-tab-search] [name='keywords']").val(keywordsParam); if (tabParam) activateTabById(tabParam); }); //#endregion diff --git a/public/themes/dist_static/static/js/faq.js b/public/themes/dist_static/static/js/faq.js index fdaaf53..102e60b 100644 --- a/public/themes/dist_static/static/js/faq.js +++ b/public/themes/dist_static/static/js/faq.js @@ -8,12 +8,39 @@ function setActiveNav() { link.classList.toggle("is-active", active); }); } +function activateFaqTab($btn) { + $btn.addClass("is-active").attr("aria-selected", "true"); + $btn.siblings(".f-tabs__item").removeClass("is-active").attr("aria-selected", "false"); +} +function getActiveTabId() { + return $(".f-tabs__item.is-active").attr("data-tab") || ""; +} +function activateTabById(tabId) { + if (!tabId) return; + const $target = $(`.f-tabs__item[data-tab="${tabId}"]`).first(); + if ($target.length) activateFaqTab($target); +} +function initTabKeywordsSearch() { + $("[data-tab-search]").on("submit", function(event) { + event.preventDefault(); + const params = new URLSearchParams(); + const keywords = $(this).find('[name="keywords"]').val().trim(); + const tabId = getActiveTabId(); + if (tabId) params.set("tab", tabId); + if (keywords) params.set("keywords", keywords); + const query = params.toString(); + window.location.href = query ? `${window.location.pathname}?${query}` : window.location.pathname; + }); + const searchParams = new URLSearchParams(window.location.search); + const tabParam = searchParams.get("tab"); + const keywordsParam = searchParams.get("keywords"); + if (keywordsParam) $("[data-tab-search] [name='keywords']").val(keywordsParam); + if (tabParam) activateTabById(tabParam); +} $(function() { setActiveNav(); $(".f-tabs__item").on("click", function() { - const $btn = $(this); - $btn.addClass("is-active").attr("aria-selected", "true"); - $btn.siblings(".f-tabs__item").removeClass("is-active").attr("aria-selected", "false"); + activateFaqTab($(this)); }); $(".f-item__trigger").on("click", function() { const $item = $(this).closest(".f-item"); @@ -22,5 +49,6 @@ $(function() { $item.toggleClass("is-open", willOpen); $(this).attr("aria-expanded", willOpen ? "true" : "false"); }); + initTabKeywordsSearch(); }); //#endregion diff --git a/public/themes/dist_static/static/js/video.js b/public/themes/dist_static/static/js/video.js index 8ec71be..58b5d7c 100644 --- a/public/themes/dist_static/static/js/video.js +++ b/public/themes/dist_static/static/js/video.js @@ -86,9 +86,40 @@ function initFilterDropdown() { if (!$(event.target).closest("[data-filter-trigger], [data-filter-dropdown]").length) closeDropdown(); }); } +function getActiveTabId() { + return $("[data-filter-dropdown] .is-active[data-tab]").attr("data-tab") || ""; +} +function activateTabById(tabId) { + if (!tabId) return; + const $item = $(`[data-filter-dropdown] [data-tab="${tabId}"]`).first(); + if (!$item.length) return; + const $dropdown = $item.closest("[data-filter-dropdown]"); + const $btn = $dropdown.prev("[data-filter-trigger]"); + $item.addClass("is-active").siblings().removeClass("is-active"); + $btn.find("span").text($item.text()); + $btn.addClass("is-selected"); +} +function initTabKeywordsSearch() { + $("[data-tab-search]").on("submit", function(event) { + event.preventDefault(); + const params = new URLSearchParams(); + const keywords = $(this).find('[name="keywords"]').val().trim(); + const tabId = getActiveTabId(); + if (tabId) params.set("tab", tabId); + if (keywords) params.set("keywords", keywords); + const query = params.toString(); + window.location.href = query ? `${window.location.pathname}?${query}` : window.location.pathname; + }); + const searchParams = new URLSearchParams(window.location.search); + const tabParam = searchParams.get("tab"); + const keywordsParam = searchParams.get("keywords"); + if (keywordsParam) $("[data-tab-search] [name='keywords']").val(keywordsParam); + if (tabParam) activateTabById(tabParam); +} $(function() { setActiveNav(); initVideoModal(); initFilterDropdown(); + initTabKeywordsSearch(); }); //#endregion diff --git a/public/themes/website/1/zh/demo/announce.html b/public/themes/website/1/zh/demo/announce.html index 11123f3..7cae52c 100644 --- a/public/themes/website/1/zh/demo/announce.html +++ b/public/themes/website/1/zh/demo/announce.html @@ -80,9 +80,9 @@ -
diff --git a/public/themes/website/1/zh/demo/download.html b/public/themes/website/1/zh/demo/download.html index 05f6801..95f8811 100644 --- a/public/themes/website/1/zh/demo/download.html +++ b/public/themes/website/1/zh/demo/download.html @@ -1,8 +1,6 @@ -{php}$download_keywords = input('keywords', '');{/php} - @@ -87,9 +85,9 @@ {/if} {/volist} - diff --git a/public/themes/website/1/zh/demo/faq.html b/public/themes/website/1/zh/demo/faq.html index 6a14f68..7c0d4f0 100644 --- a/public/themes/website/1/zh/demo/faq.html +++ b/public/themes/website/1/zh/demo/faq.html @@ -68,9 +68,9 @@ - diff --git a/public/themes/website/1/zh/demo/video.html b/public/themes/website/1/zh/demo/video.html index b837033..3c32781 100644 --- a/public/themes/website/1/zh/demo/video.html +++ b/public/themes/website/1/zh/demo/video.html @@ -80,9 +80,9 @@ -