mirror of
https://github.com/fruithost/Panel.git
synced 2026-11-02 18:17:05 +09:00
72 lines
2.2 KiB
JavaScript
72 lines
2.2 KiB
JavaScript
/**
|
|
* fruithost | OpenSource Hosting
|
|
*
|
|
* @author Adrian Preuß
|
|
* @version 1.0.0
|
|
* @license MIT
|
|
*/
|
|
|
|
(() => {
|
|
window.Confirm = function Confirm(element) {
|
|
element.addEventListener('mousedown', function (event) {
|
|
let target = event.target;
|
|
let el = document.querySelector('#confirmation');
|
|
const popup = new bootstrap.Modal(el);
|
|
let prevent= true;
|
|
let header = popup._element.querySelector('.modal-header');
|
|
let a = document.createElement('p');
|
|
|
|
a.classList.add('m-0');
|
|
a.classList.add('text-center');
|
|
a.classList.add('p-3');
|
|
a.innerHTML = target.dataset.confirm;
|
|
|
|
let b = document.createElement('p');
|
|
b.classList.add('modal-body');
|
|
b.classList.add('d-none');
|
|
b.innerHTML = target.dataset.confirm;
|
|
|
|
[].map.call(header.parentNode.querySelectorAll('p'), function (e) {
|
|
e.parentNode.removeChild(e);
|
|
});
|
|
|
|
popup._element.querySelector('.modal-footer').classList.add('text-center');
|
|
header.parentNode.insertBefore(a, header.nextSibling);
|
|
header.parentNode.insertBefore(b, header.nextSibling);
|
|
|
|
popup.show();
|
|
|
|
let _watcher = setInterval(function () {
|
|
var res = el.querySelector('.alert');
|
|
|
|
if(res == null || typeof (res) === 'undefined') {
|
|
return;
|
|
}
|
|
|
|
var state = res.innerText;
|
|
|
|
if(state === 'CONFIRMED') {
|
|
clearInterval(_watcher);
|
|
|
|
if(target.tagName === 'A') {
|
|
window.location.href = target.href;
|
|
} else {
|
|
target.click();
|
|
}
|
|
}
|
|
|
|
}, 500);
|
|
|
|
el.addEventListener('hide.bs.modal', function (event) {
|
|
clearInterval(_watcher);
|
|
});
|
|
|
|
if(prevent) {
|
|
event.preventDefault();
|
|
return false;
|
|
}
|
|
});
|
|
};
|
|
|
|
[].map.call(document.querySelectorAll('[data-confirm]'), Confirm);
|
|
})(); |