mirror of
https://github.com/FAUSheppy/tmnf-replay-server.git
synced 2026-01-21 19:37:37 +01:00
feat: user settings via web interface
This commit is contained in:
45
static/user_settings.js
Normal file
45
static/user_settings.js
Normal file
@@ -0,0 +1,45 @@
|
||||
/* event listener for all sliders */
|
||||
const sliders = Array.from(document.getElementsByClassName("form-check-input"))
|
||||
|
||||
/* safety switch -> never run set before get */
|
||||
var sliders_set = false
|
||||
|
||||
/* defer */
|
||||
sliders_load_all()
|
||||
|
||||
/* get initial values & set listeners */
|
||||
function sliders_load_all(){
|
||||
Promise.all(sliders.map(s => {
|
||||
fetch("/update-user-settings?key=" + s.id, { credentials: "include" }).then(response => {
|
||||
response.text().then(data => {
|
||||
if(data == "True"){
|
||||
s.checked = true
|
||||
}
|
||||
})
|
||||
})
|
||||
s.addEventListener("change", submit)
|
||||
})).then(
|
||||
sliders_set = true
|
||||
)
|
||||
}
|
||||
|
||||
/* submit settings */
|
||||
function submit(e){
|
||||
|
||||
console.log("submit")
|
||||
if(!sliders_set){
|
||||
return
|
||||
}
|
||||
|
||||
const s = e.target
|
||||
console.log(s)
|
||||
const json_data = JSON.stringify({ payload : [ { key : s.id, value : s.checked } ] })
|
||||
console.log(json_data)
|
||||
fetch("/update-user-settings", {
|
||||
method: "POST",
|
||||
credentials: "include",
|
||||
headers: {'Content-Type': 'application/json'},
|
||||
body: json_data
|
||||
}
|
||||
).then(response => {})
|
||||
}
|
||||
Reference in New Issue
Block a user