|
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().toLowerCase(); |
|
|
|
gradioApp().querySelectorAll('#settings > div[id^=settings_] div[id^=column_settings_] > *').forEach(function(elem) { |
|
var visible = elem.textContent.trim().toLowerCase().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); |
|
}); |
|
|
|
|
|
onOptionsChanged(function() { |
|
if (gradioApp().querySelector('#settings .settings-category')) return; |
|
|
|
var sectionMap = {}; |
|
gradioApp().querySelectorAll('#settings > div > button').forEach(function(x) { |
|
sectionMap[x.textContent.trim()] = x; |
|
}); |
|
|
|
opts._categories.forEach(function(x) { |
|
var section = x[0]; |
|
var category = x[1]; |
|
|
|
var span = document.createElement('SPAN'); |
|
span.textContent = category; |
|
span.className = 'settings-category'; |
|
|
|
var sectionElem = sectionMap[section]; |
|
if (!sectionElem) return; |
|
|
|
sectionElem.parentElement.insertBefore(span, sectionElem); |
|
}); |
|
}); |
|
|
|
|