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)) } }