From c0113872c5f814cf8cf96deca541bffaf1af2568 Mon Sep 17 00:00:00 2001 From: AUTOMATIC1111 <16777216c@gmail.com> Date: Sun, 1 Oct 2023 11:48:41 +0300 Subject: add search field to settings --- javascript/settings.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 javascript/settings.js (limited to 'javascript/settings.js') diff --git a/javascript/settings.js b/javascript/settings.js new file mode 100644 index 00000000..7889cf1c --- /dev/null +++ b/javascript/settings.js @@ -0,0 +1,46 @@ +let settingsExcludeTabsFromShowAll = { + settings_tab_defaults: 1, + settings_tab_sysinfo: 1, + settings_tab_actions: 1, + settings_tab_licenses: 1, +}; + +function settingsShowAllTabs() { + gradioApp().querySelectorAll('#settings > div').forEach(function(elem) { + if (settingsExcludeTabsFromShowAll[elem.id]) return; + + elem.style.display = "block"; + }); +} + +function settingsShowOneTab() { + gradioApp().querySelector('#settings_show_one_page').click(); +} + +onUiLoaded(function() { + var edit = gradioApp().querySelector('#settings_search'); + var editTextarea = gradioApp().querySelector('#settings_search > label > input'); + var buttonShowAllPages = gradioApp().getElementById('settings_show_all_pages'); + var settings_tabs = gradioApp().querySelector('#settings div'); + + onEdit('settingsSearch', editTextarea, 250, function() { + var searchText = (editTextarea.value || "").trim(); + + gradioApp().querySelectorAll('#settings > div[id^=settings_] div[id^=column_settings_] > *').forEach(function(elem) { + var visible = elem.textContent.trim().indexOf(searchText) != -1; + elem.style.display = visible ? "" : "none"; + }); + + if (searchText != "") { + settingsShowAllTabs(); + } else { + settingsShowOneTab(); + } + }); + + settings_tabs.insertBefore(edit, settings_tabs.firstChild); + settings_tabs.appendChild(buttonShowAllPages); + + + buttonShowAllPages.addEventListener("click", settingsShowAllTabs); +}); -- cgit v1.2.1 From 7d60076b8b275771a1aa98f017aff845ef68d964 Mon Sep 17 00:00:00 2001 From: AUTOMATIC1111 <16777216c@gmail.com> Date: Tue, 3 Oct 2023 16:22:32 +0300 Subject: case-insensitive search for settings --- javascript/settings.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'javascript/settings.js') diff --git a/javascript/settings.js b/javascript/settings.js index 7889cf1c..4e79ec00 100644 --- a/javascript/settings.js +++ b/javascript/settings.js @@ -24,10 +24,10 @@ onUiLoaded(function() { var settings_tabs = gradioApp().querySelector('#settings div'); onEdit('settingsSearch', editTextarea, 250, function() { - var searchText = (editTextarea.value || "").trim(); + var searchText = (editTextarea.value || "").trim().toLowerCase(); gradioApp().querySelectorAll('#settings > div[id^=settings_] div[id^=column_settings_] > *').forEach(function(elem) { - var visible = elem.textContent.trim().indexOf(searchText) != -1; + var visible = elem.textContent.trim().toLowerCase().indexOf(searchText) != -1; elem.style.display = visible ? "" : "none"; }); -- cgit v1.2.1