mirror of
https://github.com/lllyasviel/stable-diffusion-webui-forge.git
synced 2026-07-21 21:01:24 +08:00
82 lines
2.4 KiB
JavaScript
82 lines
2.4 KiB
JavaScript
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 () {
|
|
let edit = gradioApp().querySelector("#settings_search");
|
|
let editTextarea = gradioApp().querySelector(
|
|
"#settings_search > label > input",
|
|
);
|
|
let buttonShowAllPages = gradioApp().getElementById(
|
|
"settings_show_all_pages",
|
|
);
|
|
let settings_tabs = gradioApp().querySelector("#settings div");
|
|
|
|
onEdit("settingsSearch", editTextarea, 300, function () {
|
|
let searchText = (editTextarea.value || "").trim().toLowerCase();
|
|
|
|
gradioApp()
|
|
.querySelectorAll(
|
|
"#settings > div[id^=settings_] div[id^=column_settings_] > *",
|
|
)
|
|
.forEach(function (elem) {
|
|
let 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;
|
|
|
|
let sectionMap = {};
|
|
gradioApp()
|
|
.querySelectorAll("#settings > div > button")
|
|
.forEach(function (x) {
|
|
sectionMap[x.textContent.trim()] = x;
|
|
});
|
|
|
|
opts._categories.forEach(function (x) {
|
|
let section = localization[x[0]] ?? x[0];
|
|
let category = localization[x[1]] ?? x[1];
|
|
|
|
let span = document.createElement("SPAN");
|
|
span.textContent = category;
|
|
span.className = "settings-category";
|
|
|
|
let sectionElem = sectionMap[section];
|
|
if (!sectionElem) return;
|
|
|
|
sectionElem.parentElement.insertBefore(span, sectionElem);
|
|
});
|
|
});
|