mirror of
https://github.com/lllyasviel/stable-diffusion-webui-forge.git
synced 2026-07-21 21:01:24 +08:00
118 lines
3.2 KiB
JavaScript
118 lines
3.2 KiB
JavaScript
function extensions_apply(_disabled_list, _update_list, disable_all) {
|
|
let disable = [];
|
|
let update = [];
|
|
const extensions_input = gradioApp().querySelectorAll(
|
|
'#extensions input[type="checkbox"]',
|
|
);
|
|
if (extensions_input.length == 0) {
|
|
throw Error("Extensions page not yet loaded.");
|
|
}
|
|
extensions_input.forEach(function (x) {
|
|
if (x.name.startsWith("enable_") && !x.checked) {
|
|
disable.push(x.name.substring(7));
|
|
}
|
|
|
|
if (x.name.startsWith("update_") && x.checked) {
|
|
update.push(x.name.substring(7));
|
|
}
|
|
});
|
|
|
|
restart_reload();
|
|
|
|
return [JSON.stringify(disable), JSON.stringify(update), disable_all];
|
|
}
|
|
|
|
function extensions_check() {
|
|
let disable = [];
|
|
|
|
gradioApp()
|
|
.querySelectorAll('#extensions input[type="checkbox"]')
|
|
.forEach(function (x) {
|
|
if (x.name.startsWith("enable_") && !x.checked) {
|
|
disable.push(x.name.substring(7));
|
|
}
|
|
});
|
|
|
|
gradioApp()
|
|
.querySelectorAll("#extensions .extension_status")
|
|
.forEach(function (x) {
|
|
x.innerHTML = "Loading...";
|
|
});
|
|
|
|
let id = randomId();
|
|
requestProgress(
|
|
id,
|
|
gradioApp().getElementById("extensions_installed_html"),
|
|
null,
|
|
function () { },
|
|
);
|
|
|
|
return [id, JSON.stringify(disable)];
|
|
}
|
|
|
|
function install_extension_from_index(button, url) {
|
|
button.disabled = "disabled";
|
|
button.value = "Installing...";
|
|
|
|
let textarea = gradioApp().querySelector("#extension_to_install textarea");
|
|
textarea.value = url;
|
|
updateInput(textarea);
|
|
|
|
gradioApp().querySelector("#install_extension_button").click();
|
|
}
|
|
|
|
function config_state_confirm_restore(
|
|
_,
|
|
config_state_name,
|
|
config_restore_type,
|
|
) {
|
|
if (config_state_name == "Current") {
|
|
return [false, config_state_name, config_restore_type];
|
|
}
|
|
let restored = "";
|
|
if (config_restore_type == "extensions") {
|
|
restored = "all saved extension versions";
|
|
} else if (config_restore_type == "webui") {
|
|
restored = "the webui version";
|
|
} else {
|
|
restored = "the webui version and all saved extension versions";
|
|
}
|
|
let confirmed = confirm(
|
|
"Are you sure you want to restore from this state?\nThis will reset " +
|
|
restored +
|
|
".",
|
|
);
|
|
if (confirmed) {
|
|
restart_reload();
|
|
gradioApp()
|
|
.querySelectorAll("#extensions .extension_status")
|
|
.forEach(function (x) {
|
|
x.innerHTML = "Loading...";
|
|
});
|
|
}
|
|
return [confirmed, config_state_name, config_restore_type];
|
|
}
|
|
|
|
function toggle_all_extensions(event) {
|
|
gradioApp()
|
|
.querySelectorAll("#extensions .extension_toggle")
|
|
.forEach(function (checkbox_el) {
|
|
checkbox_el.checked = event.target.checked;
|
|
});
|
|
}
|
|
|
|
function toggle_extension() {
|
|
let all_extensions_toggled = true;
|
|
for (const checkbox_el of gradioApp().querySelectorAll(
|
|
"#extensions .extension_toggle",
|
|
)) {
|
|
if (!checkbox_el.checked) {
|
|
all_extensions_toggled = false;
|
|
break;
|
|
}
|
|
}
|
|
|
|
gradioApp().querySelector("#extensions .all_extensions_toggle").checked =
|
|
all_extensions_toggled;
|
|
}
|