tabby/tabby-terminal/src/components/loginScriptsSettings.component.ts
2021-12-27 20:08:22 +01:00

47 lines
1.2 KiB
TypeScript

/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
import { Component, Input } from '@angular/core'
import { PlatformService } from 'tabby-core'
import { LoginScript, LoginScriptsOptions } from '../middleware/loginScriptProcessing'
/** @hidden */
@Component({
selector: 'login-scripts-settings',
template: require('./loginScriptsSettings.component.pug'),
})
export class LoginScriptsSettingsComponent {
@Input() options: LoginScriptsOptions
scripts: LoginScript[]
constructor (
private platform: PlatformService,
) { }
ngOnInit () {
this.scripts = this.options.scripts ?? []
}
async deleteScript (script: LoginScript) {
if ((await this.platform.showMessageBox(
{
type: 'warning',
message: 'Delete this script?',
detail: script.expect,
buttons: ['Delete', 'Keep'],
defaultId: 0,
cancelId: 1,
}
)).response === 0) {
this.scripts = this.scripts.filter(x => x !== script)
}
}
addScript () {
this.scripts.push({ expect: '', send: '' })
}
save () {
this.options.scripts = this.scripts
}
}