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

58 lines
1.9 KiB
JavaScript

class BypassTokenRevokeDialog extends EICDialogContent {
actions = [
{
label: 'Cancel',
onclick: this.cancel.bind(this),
severity: 'secondary',
role: 'cancel'
},
{
label: 'Revoke token',
onclick: this.revoke.bind(this),
severity: 'danger',
role: 'revoke',
disabled: true
}
]
constructor(options) { super(options); }
DOMContentLoaded(options) {
this.model = options.model;
let components = ui.eicfy(this.el);
this.form = new Form(this.find('.agreement'));
this.pic = options.pic;
this.find('input[name="track"]').value = options.track;
this.find('input[name="domain"]').value = options.domain;
this.optin = this.find('input[name="agreed"]');
this.optin.addEventListener('change',this.onAgreement.bind(this));
}
onAgreement() { this.actions.find(o => o.role == 'revoke').button.disabled = !this.optin.checked; }
revoke() {
if(this.form.validate()) {
this.actions.find(o => o.role == 'revoke').button.loading = true;
this.actions.find(o => o.role == 'cancel').button.disabled = true;
this.model.revoke(this.pic, this.form.value)
.then( this.commit.bind(this), this.abort.bind(this) )
}
}
onRevokeSuccess() {
this.actions.find(o => o.role == 'revoke').button.loading = false;
this.actions.find(o => o.role == 'cancel').button.disabled = false;
this.commit(true);
}
onRevokeFailed() {
this.actions.find(o => o.role == 'revoke').button.loading = false;
this.actions.find(o => o.role == 'cancel').button.disabled = false;
this.abort();
}
}
app.registerClass('BypassTokenRevokeDialog',BypassTokenRevokeDialog);