[fix] persist forms
This commit is contained in:
parent
4ccc684f89
commit
c4bf51233a
1 changed files with 62 additions and 31 deletions
|
@ -22,6 +22,7 @@ window.addEventListener('load', () => {
|
|||
}
|
||||
$("iServer").value = svr;
|
||||
view.setState(lsp.EditorState.create({ doc: doc, extensions: lsp.baseExts }));
|
||||
formFromStore('fSettings');
|
||||
connect();
|
||||
});
|
||||
|
||||
|
@ -128,13 +129,17 @@ $("load").onchange = e => {
|
|||
|
||||
function updateSettings(event) {
|
||||
event.preventDefault();
|
||||
const form = $('fSettings');
|
||||
console.log("ser..", formSerialize(form))
|
||||
console.log("COPTS", lsp.curOpts);
|
||||
const opts={lineWrap: $("lineWrap").checked,
|
||||
const opts = {
|
||||
lineWrap: $("lineWrap").checked,
|
||||
minimap: $("minimap").checked
|
||||
}
|
||||
console.log(opts)
|
||||
lsp.updateCompartment(opts);
|
||||
$('popSettings').hidePopover();
|
||||
formToStore("fSettings");
|
||||
};
|
||||
|
||||
$("fSettings").addEventListener("submit", updateSettings);
|
||||
|
@ -195,3 +200,29 @@ function log(rpc) {
|
|||
$("traffic").insertBefore(li, $("traffic").firstChild)
|
||||
};
|
||||
|
||||
function formFromStore(name) {
|
||||
let v = localStorage.getItem(name)
|
||||
if (!!v) formDeserialize($(name), v);
|
||||
};
|
||||
|
||||
function formToStore(name) {
|
||||
localStorage.setItem(name, formSerialize($(name)));
|
||||
};
|
||||
|
||||
function formSerialize(form) {
|
||||
const data = new FormData(form);
|
||||
//https://stackoverflow.com/a/44033425/1869660
|
||||
return new URLSearchParams(data).toString();
|
||||
}
|
||||
|
||||
function formDeserialize(form, data) {
|
||||
const entries = (new URLSearchParams(data)).entries();
|
||||
for (const [key, val] of entries) {
|
||||
//http://javascript-coder.com/javascript-form/javascript-form-value.phtml
|
||||
const input = form.elements[key];
|
||||
switch (input.type) {
|
||||
case 'checkbox': input.checked = !!val; break;
|
||||
default: input.value = val; break;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue