__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/**
* @copyright (C) 2018 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 = () => {
let getRequest;
let totalItems = null;
let offset = null;
let progress = null;
let optimized = false;
const path = 'index.php?option=com_finder&tmpl=component&format=json';
const token = `&${document.getElementById('finder-indexer-token').getAttribute('name')}=1`;
const removeElement = id => {
const element = document.getElementById(id);
if (element) {
return element.parentNode.removeChild(element);
}
return null;
};
const updateProgress = (header, message) => {
progress = offset / totalItems * 100;
const progressBar = document.getElementById('progress-bar');
const progressHeader = document.getElementById('finder-progress-header');
const progressMessage = document.getElementById('finder-progress-message');
if (progressHeader) {
progressHeader.innerText = header;
}
if (progressMessage) {
progressMessage.innerHTML = Joomla.sanitizeHtml(message);
}
if (progressBar) {
if (progress < 100) {
progressBar.style.width = `${progress}%`;
progressBar.setAttribute('aria-valuenow', progress);
} else {
progressBar.classList.remove('bar-success');
progressBar.classList.add('bar-warning');
progressBar.setAttribute('aria-valuemin', 100);
progressBar.setAttribute('aria-valuemax', 200);
progressBar.style.width = `${progress}%`;
progressBar.setAttribute('aria-valuenow', progress);
}
// Auto close the window
if (message === Joomla.Text._('COM_FINDER_INDEXER_MESSAGE_COMPLETE')) {
removeElement('progress');
window.parent.Joomla.Modal.getCurrent().close();
}
}
};
const handleResponse = (json, resp) => {
const progressHeader = document.getElementById('finder-progress-header');
const progressMessage = document.getElementById('finder-progress-message');
try {
if (json === null) {
throw new Error(resp);
}
if (json.error) {
throw new Error(json);
}
if (json.start) {
// eslint-disable-next-line prefer-destructuring
totalItems = json.totalItems;
if (document.getElementById('finder-debug-data')) {
const debuglist = document.getElementById('finder-debug-data');
Object.entries(json.pluginState).forEach(context => {
let item = `<dt class="col-sm-3">${context[0]}</dt>`;
item += `<dd id="finder-${context[0].replace(/\s+/g, '-').toLowerCase()}" class="col-sm-9"></dd>`;
debuglist.insertAdjacentHTML('beforeend', Joomla.sanitizeHtml(item, {
dd: ['class', 'id'],
dt: ['class']
}));
});
}
}
offset += json.batchOffset;
updateProgress(json.header, json.message);
if (document.getElementById('finder-debug-data')) {
Object.entries(json.pluginState).forEach(context => {
document.getElementById(`finder-${context[0].replace(/\s+/g, '-').toLowerCase()}`).innerHTML = Joomla.sanitizeHtml(`${json.pluginState[context[0]].offset} of ${json.pluginState[context[0]].total}`);
});
}
if (offset < totalItems) {
getRequest('indexer.batch');
} else if (!optimized) {
optimized = true;
getRequest('indexer.optimize');
}
} catch (error) {
removeElement('progress');
try {
if (json.error) {
if (progressHeader) {
progressHeader.innerText = json.header;
progressHeader.classList.add('finder-error');
}
if (progressMessage) {
progressMessage.innerHTML = Joomla.sanitizeHtml(json.message);
progressMessage.classList.add('finder-error');
}
}
} catch (ignore) {
if (error === '') {
// eslint-disable-next-line no-ex-assign
error = Joomla.Text._('COM_FINDER_NO_ERROR_RETURNED');
}
if (progressHeader) {
progressHeader.innerText = Joomla.Text._('COM_FINDER_AN_ERROR_HAS_OCCURRED');
progressHeader.classList.add('finder-error');
}
if (progressMessage) {
progressMessage.innerHTML = Joomla.sanitizeHtml(error);
progressMessage.classList.add('finder-error');
}
}
}
return true;
};
const handleFailure = error => {
const progressHeader = document.getElementById('finder-progress-header');
const progressMessage = document.getElementById('finder-progress-message');
let data;
if (error instanceof Error) {
// Encode any html in the message
const div = document.createElement('div');
div.textContent = error.message;
data = div.innerHTML;
if (error instanceof SyntaxError) {
data = Joomla.Text._('JLIB_JS_AJAX_ERROR_PARSE').replace('%s', data);
}
} else if (typeof error === 'object' && error.responseText) {
data = error.responseText;
try {
data = JSON.parse(data);
} catch (e) {
data = Joomla.Text._('JLIB_JS_AJAX_ERROR_OTHER').replace('%s', error.status);
}
}
removeElement('progress');
const header = data && data.header ? data.header : Joomla.Text._('COM_FINDER_AN_ERROR_HAS_OCCURRED');
const message = data && data.message ? data.message : `${Joomla.Text._('COM_FINDER_MESSAGE_RETURNED')}<br>${data}`;
if (progressHeader) {
progressHeader.innerText = header;
progressHeader.classList.add('finder-error');
}
if (progressMessage) {
progressMessage.innerHTML = Joomla.sanitizeHtml(message);
progressMessage.classList.add('finder-error');
}
};
getRequest = task => {
Joomla.request({
url: `${path}&task=${task}${token}`,
promise: true
}).then(xhr => {
handleResponse(JSON.parse(xhr.responseText));
}).catch(error => {
handleFailure(error);
});
};
const initialize = () => {
offset = 0;
progress = 0;
getRequest('indexer.start');
};
initialize();
};
})(Joomla, document);
// @todo use directly the Joomla.finderIndexer() instead of the Indexer()!!!
document.addEventListener('DOMContentLoaded', () => {
window.Indexer = Joomla.finderIndexer();
});
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| filters-es5.js | File | 761 B | 0664 |
|
| filters-es5.min.js | File | 502 B | 0664 |
|
| filters-es5.min.js.gz | File | 360 B | 0664 |
|
| filters.js | File | 655 B | 0664 |
|
| filters.min.js | File | 442 B | 0664 |
|
| filters.min.js.gz | File | 330 B | 0664 |
|
| finder-edit-es5.js | File | 2.16 KB | 0664 |
|
| finder-edit-es5.min.js | File | 1.41 KB | 0664 |
|
| finder-edit-es5.min.js.gz | File | 604 B | 0664 |
|
| finder-edit.js | File | 1.92 KB | 0664 |
|
| finder-edit.min.js | File | 1.29 KB | 0664 |
|
| finder-edit.min.js.gz | File | 585 B | 0664 |
|
| finder-es5.js | File | 3.23 KB | 0664 |
|
| finder-es5.min.js | File | 1.46 KB | 0664 |
|
| finder-es5.min.js.gz | File | 738 B | 0664 |
|
| finder.js | File | 2.92 KB | 0664 |
|
| finder.min.js | File | 1.32 KB | 0664 |
|
| finder.min.js.gz | File | 704 B | 0664 |
|
| indexer-es5.js | File | 7.22 KB | 0664 |
|
| indexer-es5.min.js | File | 3.35 KB | 0664 |
|
| indexer-es5.min.js.gz | File | 1.41 KB | 0664 |
|
| indexer.js | File | 6.69 KB | 0664 |
|
| indexer.min.js | File | 3.27 KB | 0664 |
|
| indexer.min.js.gz | File | 1.41 KB | 0664 |
|
| maps-es5.js | File | 659 B | 0664 |
|
| maps-es5.min.js | File | 448 B | 0664 |
|
| maps-es5.min.js.gz | File | 341 B | 0664 |
|
| maps.js | File | 567 B | 0664 |
|
| maps.min.js | File | 382 B | 0664 |
|
| maps.min.js.gz | File | 309 B | 0664 |
|