Files
2024-12-17 17:34:10 +01:00

53 lines
1.8 KiB
JavaScript

/**
* @copyright (C) 2022 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// eslint-disable no-alert
((Joomla, document) => {
if (!Joomla) {
throw new Error('core.js was not properly initialised');
}
Joomla.finderIndexer = () => {
const path = 'index.php?option=com_finder&task=indexer.debug&tmpl=component&format=json';
const token = `&${document.getElementById('finder-indexer-token').getAttribute('name')}=1`;
Joomla.debugIndexing = () => {
const formEls = new URLSearchParams(Array.from(new FormData(document.getElementById('debug-form')))).toString();
Joomla.request({
url: `${path}${token}&${formEls}`,
method: 'GET',
data: '',
perform: true,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
onSuccess: response => {
const output = document.getElementById('indexer-output');
const allowedHtml = {
fieldset: [],
legend: [],
dl: ['class'],
dt: ['class'],
dd: ['class']
};
try {
const parsed = JSON.parse(response);
output.innerHTML = Joomla.sanitizeHtml(parsed.rendered, allowedHtml);
} catch (e) {
output.innerHTML = Joomla.sanitizeHtml(response, allowedHtml);
}
},
onError: xhr => {
const output = document.getElementById('indexer-output');
output.innerHTML = xhr.response;
}
});
};
};
})(Joomla, document);
// @todo use directly the Joomla.finderIndexer() instead of the Indexer()!!!
document.addEventListener('DOMContentLoaded', () => {
window.Indexer = Joomla.finderIndexer();
});