63 lines
1.5 KiB
JavaScript
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) |