mirror of
https://github.com/openclassify/openclassify.git
synced 2026-01-11 18:01:10 -06:00
70 lines
2.3 KiB
JavaScript
70 lines
2.3 KiB
JavaScript
(function (window, document) {
|
|
|
|
const toggles = Array.from(
|
|
document.querySelectorAll('[data-toggle="prompt"]')
|
|
);
|
|
|
|
toggles.forEach(function (toggle) {
|
|
|
|
let handler = function (event) {
|
|
|
|
event.preventDefault();
|
|
|
|
let match = event.target.dataset.match;
|
|
|
|
let config = {
|
|
text: event.target.dataset.message.replace(':match:', match),
|
|
title: event.target.dataset.title || null,
|
|
icon: event.target.dataset.icon || null,
|
|
closeOnEsc: event.target.dataset.esc == undefined ? false : (event.target.dataset.esc == 'true'),
|
|
closeOnClickOutside: event.target.dataset.outside == undefined ? false : (event.target.dataset.outside == 'true'),
|
|
content: "input",
|
|
buttons: {
|
|
cancel: {
|
|
visible: true,
|
|
text: event.target.dataset.cancel_text || 'Cancel'
|
|
},
|
|
confirm: {
|
|
closeModal: event.target.dataset.close == undefined ? false : (event.target.dataset.close == 'true'),
|
|
text: event.target.dataset.confirm_text || 'Yes'
|
|
},
|
|
}
|
|
};
|
|
|
|
let callback = function (value) {
|
|
|
|
if (value === null) {
|
|
|
|
swal.close();
|
|
|
|
return false;
|
|
}
|
|
|
|
if (value === match) {
|
|
|
|
document.querySelector('.swal-content__input').classList.add('swal-content__input-success');
|
|
|
|
toggle.removeEventListener('click', handler);
|
|
|
|
/**
|
|
* Simulate a native click and let
|
|
* the default/intended action happen.
|
|
*/
|
|
const click = document.createEvent('MouseEvents');
|
|
click.initEvent('click', true, false);
|
|
event.target.dispatchEvent(click);
|
|
} else {
|
|
|
|
swal(config).then(callback);
|
|
|
|
document.querySelector('.swal-content__input').classList.add('swal-content__input-error');
|
|
}
|
|
};
|
|
|
|
swal(config).then(callback);
|
|
};
|
|
|
|
toggle.addEventListener('click', handler);
|
|
});
|
|
})(window, document);
|