smon/static/js/trigger_edit.mjs
2024-04-29 08:36:13 +02:00

54 lines
1.0 KiB
JavaScript

export class UI {
constructor() {
document.getElementById('button-run').
addEventListener('click', evt=>evt.preventDefault())
document.addEventListener('keydown', evt=>this.keyHandler(evt))
}
setTrigger(t) {
this.trigger = t
}
run() {
this.trigger.run()
}
keyHandler(evt) {
if (evt.altKey && evt.shiftKey && evt.key == 'R') {
evt.preventDefault()
evt.stopPropagation()
this.run()
}
}
}
export class Trigger {
constructor(id, name) {
this.id = id
this.name = name
}
run() {
const result = document.getElementById('run-result')
const classes = result.classList
const expr = document.getElementById('expr').value
fetch(`/trigger/run/${this.id}`, {
method: 'POST',
cache: 'no-cache',
body: expr,
})
.then(data => data.json())
.then(json => {
if (!json.OK) {
classes.remove('ok')
classes.add('error')
result.innerText = json.Error
return
}
classes.remove('error')
classes.add('ok')
result.innerText = json.Output
})
.catch(err => alert(err))
}
}