reorganized and fixed the auto-save settings stuff so its all in its own file

This commit is contained in:
Malcolm Diller 2022-10-15 15:10:42 -07:00
parent b1aed344c7
commit a69a04cfb6

View File

@ -1,41 +1,48 @@
// Saving settings // Saving settings
let autoSaveSettingsField = document.querySelector('#auto_save_settings')
let configureSettingsSaveBtn = document.querySelector('#configureSettingsSaveBtn')
let restoreDefaultSettingsBtn = document.querySelector('#restoreDefaultSettingsBtn')
let saveSettingsConfigOverlay = document.querySelector('#save-settings-config')
let saveSettingsConfigTable = document.querySelector('#save-settings-config-table')
let saveSettingsConfigCloseBtn = document.querySelector('#save-settings-config-close-btn')
const SETTINGS_KEY = "user_settings"; const SETTINGS_KEY = "user_settings";
var SETTINGS_SHOULD_SAVE_MAP = {}; // key=id. dict initialized in initSettings var SETTINGS_SHOULD_SAVE_MAP = {}; // key=id. dict initialized in initSettings
var SETTINGS_VALUES = {}; // key=id. dict initialized in initSettings var SETTINGS_VALUES = {}; // key=id. dict initialized in initSettings
var SETTINGS_DEFAULTS = {}; // key=id. dict initialized in initSettings var SETTINGS_DEFAULTS = {}; // key=id. dict initialized in initSettings
var SETTINGS_TO_SAVE = [ var SETTINGS_TO_SAVE = []; // list of elements initialized by initSettings
promptField, var SETTINGS_IDS_LIST = [
seedField, "prompt",
randomSeedField, "seed",
numOutputsTotalField, "random_seed",
numOutputsParallelField, "num_outputs_total",
stableDiffusionModelField, "num_outputs_parallel",
samplerField, "stable_diffusion_model",
widthField, "sampler",
heightField, "width",
numInferenceStepsField, "height",
guidanceScaleSlider, "num_inference_steps",
promptStrengthSlider, "guidance_scale_slider",
outputFormatField, "prompt_strength_slider",
negativePromptField, "output_format",
streamImageProgressField, "negative_prompt",
useFaceCorrectionField, "stream_image_progress",
useUpscalingField, "use_face_correction",
showOnlyFilteredImageField, "use_upscale",
upscaleModelField, "show_only_filtered_image",
previewImageField, "upscale_model",
modifierCardSizeSlider "preview-image",
"modifier-card-size-slider"
]; ];
async function initSettings() {
SETTINGS_IDS_LIST.forEach(id => SETTINGS_TO_SAVE.push(document.getElementById(id)));
SETTINGS_TO_SAVE.forEach(element => {
SETTINGS_SHOULD_SAVE_MAP[element.id] = true;
SETTINGS_DEFAULTS[element.id] = getSetting(element);
SETTINGS_VALUES[element.id] = getSetting(element);
element.addEventListener("input", settingChangeHandler);
element.addEventListener("change", settingChangeHandler);
});
loadSettings();
fillSaveSettingsConfigTable();
}
function getSetting(element) { function getSetting(element) {
if (element.type == "checkbox") { if (element.type == "checkbox") {
return element.checked; return element.checked;
@ -63,9 +70,11 @@ function saveSettings() {
})); }));
} }
let saveSettingsCheckbox = document.getElementById("auto_save_settings");
var CURRENTLY_LOADING_SETTINGS = false; var CURRENTLY_LOADING_SETTINGS = false;
function loadSettings() { function loadSettings() {
if (!autoSaveSettingsField.checked) { if (!saveSettingsCheckbox.checked) {
return; return;
} }
var saved_settings = JSON.parse(localStorage.getItem(SETTINGS_KEY)); var saved_settings = JSON.parse(localStorage.getItem(SETTINGS_KEY));
@ -110,18 +119,9 @@ function settingChangeHandler(event) {
} }
} }
} }
async function initSettings() {
SETTINGS_TO_SAVE.forEach(element => {
SETTINGS_SHOULD_SAVE_MAP[element.id] = true;
SETTINGS_DEFAULTS[element.id] = getSetting(element);
SETTINGS_VALUES[element.id] = getSetting(element);
element.addEventListener("input", settingChangeHandler);
element.addEventListener("change", settingChangeHandler);
});
loadSettings();
fillSaveSettingsConfigTable();
}
let saveSettingsConfigTable = document.getElementById("save-settings-config-table");
function fillSaveSettingsConfigTable() { function fillSaveSettingsConfigTable() {
SETTINGS_TO_SAVE.forEach(element => { SETTINGS_TO_SAVE.forEach(element => {
var caption = element.id; var caption = element.id;
@ -146,10 +146,11 @@ function fillSaveSettingsConfigTable() {
}); });
} }
saveSettingsConfigCloseBtn.addEventListener('click', () => { let saveSettingsConfigOverlay = document.getElementById("save-settings-config");
document.getElementById("save-settings-config-close-btn").addEventListener('click', () => {
saveSettingsConfigOverlay.style.display = 'none'; saveSettingsConfigOverlay.style.display = 'none';
}); });
configureSettingsSaveBtn.addEventListener('click', () => { document.getElementById("configureSettingsSaveBtn").addEventListener('click', () => {
saveSettingsConfigOverlay.style.display = 'block'; saveSettingsConfigOverlay.style.display = 'block';
}); });
saveSettingsConfigOverlay.addEventListener('click', (event) => { saveSettingsConfigOverlay.addEventListener('click', (event) => {