Start work on admin page; parameter setting works, TODO manual mode

This commit is contained in:
Kelvin Ly 2023-05-16 13:50:33 -04:00
parent e908495c0c
commit 7ca6f6f192
1 changed files with 98 additions and 0 deletions

98
dev/admin.htm Normal file
View File

@ -0,0 +1,98 @@
<!doctype html>
<html>
<head>
<script>
function status(msg) {
document.getElementById('status').textContent = msg
}
async function queryParams() {
const req = await fetch('/api/params')
const json = await req.json()
//console.log(json)
//console.log(Object.keys(json))
status('parameter query successful!')
const paramList = document.getElementById('param-list')
while (paramList.firstChild) {
paramList.removeChild(paramList.lastChild)
}
Object.keys(json).forEach((name) => {
const elem = document.createElement('div')
elem.textContent = name + " = " + json[name]
paramList.appendChild(elem)
})
}
async function setParam(auth, name, value) {
const msg = JSON.stringify({
auth: auth,
data: {
set_params: {
name: name,
value: value
}
}
})
console.log('set param fetch pre')
const resp = await fetch('/api/admin', {
method: 'POST',
body: msg
})
console.log('set param fetch post')
if (!resp.ok) {
var err_msg = null
if (resp.body != null) {
err_msg = await resp.text()
}
if (err_msg != null) {
status("set failed: " + resp.status + " " + err_msg)
} else {
status("set failed: " + resp.status)
}
} else {
status("parameter set successful!")
await queryParams()
}
}
window.onload = () => {
document.getElementById('query-params').addEventListener('click', (e) => {
queryParams()
})
document.getElementById('set-param').addEventListener('click', (e) => {
const auth = document.getElementById('password').value
const name = document.getElementById('name').value
const value = parseFloat(document.getElementById('value').value)
if (isNaN(value)) {
status('invalid value set')
return
}
setParam(auth, name, value)
})
}
</script>
</head>
<body>
<fieldset>
<legend>Status</legend>
<div id=status></div>
</fieldset>
<form>
<fieldset>
<legend>Parameter list</legend>
<div id=param-list></div>
<input id=query-params type=button value="Query params"></input><br />
</fieldset>
<label for=password>Auth password: </label>
<input id=password type=password></input><br />
<fieldset>
<legend>Set parameter</legend>
<label for=name>Name: </label>
<input id=name type=text></input><br />
<label for=value>Value: </label>
<input id=value type=text></input><br />
<input id=set-param type=button value="Set parameter"></input><br />
</fieldset>
</form>
</body>
</html>