More work on hooks

This commit is contained in:
Magnus Åhall 2025-08-07 15:51:15 +02:00
parent 392aa0d11f
commit 2a04cba42a
5 changed files with 164 additions and 4 deletions

View file

@ -973,19 +973,58 @@ class ConnectedNode {
}
class ScriptHooks extends Component {
constructor() {
constructor(hooks) {
super()
this.hooks = hooks
}
renderComponent() {
const div = document.createElement('div')
div.innerHTML = `
<div class="label">Script hooks</div>
<div>hum</div>
<div class="add"><img src="/images/${_VERSION}/node_modules/@mdi/svg/svg/plus-box.svg" /></div>
<div class="scripts-grid">
<div class="header" style="grid-column: 1 / 3;">Script</div>
<div class="header" style="grid-column: 3 / 5;">SSH</div>
</div>
`
div.querySelector('.add').addEventListener('click', ()=>{
alert('FIXME')
})
const scriptsGrid = div.querySelector('.scripts-grid')
for(const hook of this.hooks) {
const h = new ScriptHook(hook)
scriptsGrid.append(h.render())
}
return div.children
}
}
class ScriptHook extends Component {
constructor(hook) {// {{{
super()
this.hook = hook
}// }}}
renderComponent() {// {{{
const tmpl = document.createElement('template')
tmpl.innerHTML = `
<div class="script-icon"><img src="/images/${_VERSION}/node_modules/@mdi/svg/svg/bash.svg" /></div>
<div class="script-name">${this.hook.Script.Name}</div>
<div class="script-ssh">${this.hook.SSH}</div>
<div class="script-unhook"><img src="/images/${_VERSION}/node_modules/@mdi/svg/svg/trash-can.svg" /></div>
`
tmpl.content.querySelector('.script-ssh').addEventListener('click', () => {
prompt('SSH', this.hook.SSH)
//new ConnectionDataDialog(this.hook, () => _app.edit(_app.currentNode.ID)).render()
})
return tmpl.content
}// }}}
}
class ScriptsList extends Component {
constructor() {// {{{
super()