Path: blob/master/javascript/settings.js
3055 views
let settingsExcludeTabsFromShowAll = {1settings_tab_defaults: 1,2settings_tab_sysinfo: 1,3settings_tab_actions: 1,4settings_tab_licenses: 1,5};67function settingsShowAllTabs() {8gradioApp().querySelectorAll('#settings > div').forEach(function(elem) {9if (settingsExcludeTabsFromShowAll[elem.id]) return;1011elem.style.display = "block";12});13}1415function settingsShowOneTab() {16gradioApp().querySelector('#settings_show_one_page').click();17}1819onUiLoaded(function() {20var edit = gradioApp().querySelector('#settings_search');21var editTextarea = gradioApp().querySelector('#settings_search > label > input');22var buttonShowAllPages = gradioApp().getElementById('settings_show_all_pages');23var settings_tabs = gradioApp().querySelector('#settings div');2425onEdit('settingsSearch', editTextarea, 250, function() {26var searchText = (editTextarea.value || "").trim().toLowerCase();2728gradioApp().querySelectorAll('#settings > div[id^=settings_] div[id^=column_settings_] > *').forEach(function(elem) {29var visible = elem.textContent.trim().toLowerCase().indexOf(searchText) != -1;30elem.style.display = visible ? "" : "none";31});3233if (searchText != "") {34settingsShowAllTabs();35} else {36settingsShowOneTab();37}38});3940settings_tabs.insertBefore(edit, settings_tabs.firstChild);41settings_tabs.appendChild(buttonShowAllPages);424344buttonShowAllPages.addEventListener("click", settingsShowAllTabs);45});464748onOptionsChanged(function() {49if (gradioApp().querySelector('#settings .settings-category')) return;5051var sectionMap = {};52gradioApp().querySelectorAll('#settings > div > button').forEach(function(x) {53sectionMap[x.textContent.trim()] = x;54});5556opts._categories.forEach(function(x) {57var section = localization[x[0]] ?? x[0];58var category = localization[x[1]] ?? x[1];5960var span = document.createElement('SPAN');61span.textContent = category;62span.className = 'settings-category';6364var sectionElem = sectionMap[section];65if (!sectionElem) return;6667sectionElem.parentElement.insertBefore(span, sectionElem);68});69});70717273