53 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			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();
 | |
| });
 |