Files
P42_UI/app/views/projects/bypass/dialogs/BypassProgramAddDialog.js
T
2025-08-27 07:03:09 +00:00

54 lines
1.6 KiB
JavaScript

class BypassProgramAddDialog extends EICDialogContent {
actions = [
{
label: 'Cancel',
onclick: this.cancel.bind(this),
severity: 'secondary',
role: 'cancel'
},
{
label: 'Create programme',
onclick: this.add.bind(this),
severity: 'primary',
role: 'add',
disabled: false
}
]
constructor(options) { super(options); }
DOMContentLoaded(options) {
this.model = options.model;
this.profile = options.profile;
let components = ui.eicfy(this.el);
this.form = new Form(this.find('.program'));
this.find('input[name="track"]').value = this.profile.track;
this.find('input[name="domain"]').value = this.profile.domain;
}
add() {
if(this.form.validate()) {
this.actions.find(o => o.role == 'add').button.loading = true;
this.actions.find(o => o.role == 'cancel').button.disabled = true;
this.model.addProgram(this.form.value)
.then( this.onSuccess.bind(this), this.onFailed.bind(this) )
}
}
onSuccess() {
this.actions.find(o => o.role == 'add').button.loading = false;
this.actions.find(o => o.role == 'cancel').button.disabled = false;
this.commit(true);
}
onFailed() {
this.actions.find(o => o.role == 'add').button.loading = false;
this.actions.find(o => o.role == 'cancel').button.disabled = false;
this.abort();
}
}
app.registerClass('BypassProgramAddDialog',BypassProgramAddDialog);