summaryrefslogtreecommitdiff
path: root/app.js
diff options
context:
space:
mode:
authorMarin Ivanov <[email protected]>2024-08-21 01:58:20 +0300
committerMarin Ivanov <[email protected]>2024-08-21 01:58:20 +0300
commitc550c3bc1c6cce7bb8a4916348e91dfb71074919 (patch)
treedc51abc4c6ae67be04f75acd81e8f27fb10242c9 /app.js
parent4010314ed257aeb09cfea9e24ed9e34731375245 (diff)
fix cmd() and sending form data
Diffstat (limited to 'app.js')
-rw-r--r--app.js21
1 files changed, 12 insertions, 9 deletions
diff --git a/app.js b/app.js
index 8ffe96c..b265f76 100644
--- a/app.js
+++ b/app.js
@@ -19,19 +19,19 @@
window.onunhandledrejection = (e) => {
setError(e.reason);
};
- let parseini = (data) => fromEntries(data.split("\n").map(x=>x.trim()).filter(x=>x).map(x=>x.split("=")));
- let buildini = (data, prefix="") => entries(data).map(([k,v])=>`${prefix}${k}=${v}\n`).join();
+ let parsetxt = (data) => fromEntries(data.split("\n").map(x=>x.trim()).filter(x=>x).map(x=>x.split("=")));
+ let buildtxt = (data) => entries(data).map(([k,v])=>`${k}=${v}\n`).join("");
let resptext = r => {
if (!r.ok){
throw new Error(r.statusText);
}
return r.text();
};
- getconfig = () => fetch("/cgi-bin/getconfig").then(resptext).then(x => parseini(x));
+ getconfig = () => fetch("/cgi-bin/getconfig").then(resptext).then(x => parsetxt(x));
cmd = (body) => fetch("/cgi-bin/cmd",{method:"POST",body}).then(resptext);
- setconfig = (data, prefix) => {
+ setconfig = (data) => {
loading(1);
- cmd(buildini(data, prefix)+"save\n")
+ cmd(buildtxt(data)+"save\n")
.finally(() => loading(0))
};
loadconfig = () => {
@@ -43,7 +43,7 @@
})
.finally(() => loading(0));
}
- reboot = (data, prefix) => {
+ reboot = (data) => {
let ok = 0;
loading(1);
cmd("reboot\n")
@@ -107,14 +107,17 @@
function CSettings(section) {
let s = config.sections[section];
- let form_ = form(
+ let f = form(
table(...s.fields.map(x => CSettingInput(x))),
input("submit").$value("Save")
);
- form_.onsubmit = (e) => {e.preventDefault(); setconfig({});}
+ f.onsubmit = (e) => {
+ e.preventDefault();
+ setconfig(fromEntries(new FormData(f)));
+ }
return div(
h1(s.title),
- form_,
+ f,
)
}