Files
P42_UI/app/views/comms/templates/dialogs/TemplatesMailTestDialog.js
T
2025-08-27 07:03:09 +00:00

63 lines
1.5 KiB
JavaScript

class TemplatesMailTestDialog extends EICDialogContent {
actions = [
{
label: 'Cancel',
onclick: this.cancel.bind(this),
severity: 'secondary',
role: 'cancel'
},
{
label: 'Send test',
onclick: this.add.bind(this),
severity: 'primary',
role: 'add',
disabled: true
}
]
constructor() {
super()
Object.assign(this, app.helpers.validators)
}
DOMContentLoaded() {
this.form = new Form(this.find('.test-mail-dialog'))
this.mailInput = this.find('.mail-address')
this.mailInput.addEventListener('keyup', this.checkEmail.bind(this))
// Use user email by default
this.mailInput.value = app.User.identity.email || ''
// force validation on init
setTimeout(() => this.checkEmail(), 0)
}
checkEmail(event = null){
if(event){
event.preventDefault()
event.stopPropagation()
}
const addAction = this.actions.find(o => o.role === 'add')
if (!addAction || !addAction.button) {
return
}
const isValid = this.validators.isValidEmail(this.mailInput.value)
addAction.button.disabled = !isValid
}
add() {
if(!this.validators.isValidEmail(this.mailInput.value)) return
let data = { email: this.mailInput.value }
this.commit(data)
}
onFailed() {
this.abort()
}
}
app.registerClass('TemplatesMailTestDialog', TemplatesMailTestDialog)