(function () {
'use strict';
/**
* @copyright (C) 2019 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
(function (document, Joomla) {
var init = function init() {
// Cleanup
window.removeEventListener('load', init); // Get the elements
var elements = [].slice.call(document.querySelectorAll('.system-counter'));
if (elements.length) {
elements.forEach(function (element) {
var badgeurl = element.getAttribute('data-url');
if (badgeurl && Joomla && Joomla.request && typeof Joomla.request === 'function') {
Joomla.request({
url: badgeurl,
method: 'POST',
onSuccess: function onSuccess(resp) {
var response;
try {
response = JSON.parse(resp);
} catch (error) {
throw new Error('Failed to parse JSON');
}
if (response.error || !response.success) {
element.classList.remove('icon-spin');
element.classList.remove('icon-spinner');
element.classList.add('text-danger');
element.classList.add('icon-remove');
} else if (response.data) {
var elem = document.createElement('span');
elem.classList.add('float-end');
elem.classList.add('badge');
elem.classList.add('bg-warning', 'text-dark');
elem.innerHTML = Joomla.sanitizeHtml(response.data);
element.parentNode.replaceChild(elem, element);
} else {
element.classList.remove('icon-spin');
element.classList.remove('icon-spinner');
element.classList.add('icon-check');
element.classList.add('text-success');
}
},
onError: function onError() {
element.classList.remove('icon-spin');
element.classList.remove('icon-spinner');
element.classList.add('text-danger');
element.classList.add('icon-remove');
}
});
}
});
}
}; // Give some times to the layout and other scripts to settle their stuff
window.addEventListener('load', function () {
setTimeout(init, 300);
});
})(document, Joomla);
}());