2023-05-21 01:42:16 +02:00
|
|
|
currentToasts = [];
|
2023-05-17 17:46:51 +02:00
|
|
|
|
2023-05-21 00:42:05 +02:00
|
|
|
/**
|
|
|
|
* Generic function to create a new toast
|
|
|
|
* @param {String} message The message to be displayed
|
|
|
|
* @param {String} colorSelector The bootstrap color selector class, can be one of the following: text-bg-primary, text-bg-success, text-bg-danger, text-bg-warning, text-bg-info
|
|
|
|
* @param {Number} autoHideTime The time in milliseconds to auto hide the toast, default is 3000
|
|
|
|
* @param {Boolean} autoReload Should the page reload after the toast is hidden, default is true (for compatibility with old code)
|
|
|
|
* @returns {String} The id of the created toast, format: toast-<number>
|
|
|
|
*/
|
2023-05-17 17:46:51 +02:00
|
|
|
function createNewToast(message, colorSelector, autoHideTime = 3000, autoReload = true){
|
|
|
|
const targetContainer = document.getElementById('toastMainController');
|
|
|
|
const masterToast = document.getElementById('masterToast');
|
|
|
|
const newToast = masterToast.cloneNode(true);
|
|
|
|
newToast.classList.add(colorSelector)
|
|
|
|
newToast.id = `toast-${currentToasts.length}`;
|
|
|
|
console.log(newToast.childNodes[1]);
|
|
|
|
newToast.childNodes[1].childNodes[1].innerHTML = message;
|
|
|
|
targetContainer.appendChild(newToast);
|
|
|
|
currentToasts.push(newToast);
|
|
|
|
$(newToast).toast('show');
|
|
|
|
setTimeout(() => {
|
|
|
|
destroyToast(newToast.id);
|
|
|
|
if(autoReload){
|
|
|
|
location.reload();
|
|
|
|
}
|
|
|
|
}, autoHideTime);
|
2023-05-21 00:42:05 +02:00
|
|
|
return newToast.id;
|
2023-05-17 17:46:51 +02:00
|
|
|
}
|
|
|
|
|
2023-05-21 00:42:05 +02:00
|
|
|
/**
|
|
|
|
* Generic function to destroy a toast
|
|
|
|
* @param {String} id The id of the toast to destroy
|
|
|
|
*/
|
2023-05-17 17:46:51 +02:00
|
|
|
function destroyToast(id){
|
|
|
|
const targetContainer = document.getElementById('toastMainController');
|
|
|
|
const targetToast = document.getElementById(id);
|
|
|
|
targetContainer.removeChild(targetToast);
|
|
|
|
currentToasts.splice(currentToasts.indexOf(targetToast), 1);
|
2023-05-21 00:42:05 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// Moved here
|
|
|
|
function normalizeToast(){
|
|
|
|
console.warn("Something is using the deprecated function normalizeToast(). Please use createNewToast() instead.")
|
|
|
|
$('#generalToast').removeClass('text-bg-primary');
|
|
|
|
$('#generalToast').removeClass('text-bg-success');
|
|
|
|
$('#generalToast').removeClass('text-bg-danger');
|
|
|
|
$('#generalToast').removeClass('text-bg-warning');
|
|
|
|
$('#generalToast').removeClass('text-bg-info');
|
|
|
|
}
|