46 lines
883 B
JavaScript
46 lines
883 B
JavaScript
|
"use strict";
|
||
|
|
||
|
const $ = document.querySelector.bind(document)
|
||
|
const _ = document.getElementById
|
||
|
|
||
|
export class ConfirmDialog {
|
||
|
|
||
|
constructor(message) {
|
||
|
this._div = document.getElementById('confirm-dialog-template').content.querySelector('div').cloneNode(true);
|
||
|
this._div.querySelector('.modal-body').innerHTML = message;
|
||
|
}
|
||
|
|
||
|
show() {
|
||
|
var self = this;
|
||
|
this._promise = new Promise((resolve, reject) => {
|
||
|
self._resolve = resolve;
|
||
|
self._reject = reject;
|
||
|
});
|
||
|
|
||
|
this._div.querySelectorAll('.close').forEach(function (o){
|
||
|
o.onclick=self.cancel.bind(self);
|
||
|
});
|
||
|
|
||
|
this._div.querySelector('.process').onclick = () => {
|
||
|
self._close();
|
||
|
self._resolve();
|
||
|
};
|
||
|
|
||
|
$('.messages-box').appendChild(this._div);
|
||
|
return this._promise
|
||
|
}
|
||
|
|
||
|
cancel() {
|
||
|
this._close()
|
||
|
this._reject('canceled by user');
|
||
|
}
|
||
|
|
||
|
_close() {
|
||
|
$('.messages-box').removeChild(this._div);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
|