1 line
3.1 KiB
JavaScript
1 line
3.1 KiB
JavaScript
((e,t)=>{if(!e)throw new Error("core.js was not properly initialised");e.finderIndexer=()=>{let r,n=null,s=null,a=null,i=!1;const d=`&${t.getElementById("finder-indexer-token").getAttribute("name")}=1`,o=e=>{const r=t.getElementById(e);return r?r.parentNode.removeChild(r):null},l=(d,l)=>{const c=t.getElementById("finder-progress-header"),E=t.getElementById("finder-progress-message");try{if(null===d)throw new Error(l);if(d.error)throw new Error(d);if(d.start&&(n=d.totalItems,t.getElementById("finder-debug-data"))){const r=t.getElementById("finder-debug-data");Object.entries(d.pluginState).forEach((t=>{let n=`<dt class="col-sm-3">${t[0]}</dt>`;n+=`<dd id="finder-${t[0].replace(/\s+/g,"-").toLowerCase()}" class="col-sm-9"></dd>`,r.insertAdjacentHTML("beforeend",e.sanitizeHtml(n,{dd:["class","id"],dt:["class"]}))}))}s+=d.batchOffset,((r,i)=>{a=s/n*100;const d=t.getElementById("progress-bar"),l=t.getElementById("finder-progress-header"),c=t.getElementById("finder-progress-message");l&&(l.innerText=r),c&&(c.innerHTML=e.sanitizeHtml(i)),d&&(a<100?(d.style.width=`${a}%`,d.setAttribute("aria-valuenow",a)):(d.classList.remove("bar-success"),d.classList.add("bar-warning"),d.setAttribute("aria-valuemin",100),d.setAttribute("aria-valuemax",200),d.style.width=`${a}%`,d.setAttribute("aria-valuenow",a)),i===e.Text._("COM_FINDER_INDEXER_MESSAGE_COMPLETE")&&(o("progress"),window.parent.location.reload()))})(d.header,d.message),t.getElementById("finder-debug-data")&&Object.entries(d.pluginState).forEach((r=>{t.getElementById(`finder-${r[0].replace(/\s+/g,"-").toLowerCase()}`).innerHTML=e.sanitizeHtml(`${d.pluginState[r[0]].offset} of ${d.pluginState[r[0]].total}`)})),s<n?r("indexer.batch"):i||(i=!0,r("indexer.optimize"))}catch(t){o("progress");try{d.error&&(c&&(c.innerText=d.header,c.classList.add("finder-error")),E&&(E.innerHTML=e.sanitizeHtml(d.message),E.classList.add("finder-error")))}catch(r){""===t&&(t=e.Text._("COM_FINDER_NO_ERROR_RETURNED")),c&&(c.innerText=e.Text._("COM_FINDER_AN_ERROR_HAS_OCCURRED"),c.classList.add("finder-error")),E&&(E.innerHTML=e.sanitizeHtml(t),E.classList.add("finder-error"))}}return!0};r=r=>{e.request({url:`index.php?option=com_finder&tmpl=component&format=json&task=${r}${d}`,promise:!0}).then((e=>{l(JSON.parse(e.responseText))})).catch((r=>{(r=>{const n=t.getElementById("finder-progress-header"),s=t.getElementById("finder-progress-message");let a;if(r instanceof Error){const n=t.createElement("div");n.textContent=r.message,a=n.innerHTML,r instanceof SyntaxError&&(a=e.Text._("JLIB_JS_AJAX_ERROR_PARSE").replace("%s",a))}else if("object"==typeof r&&r.responseText){a=r.responseText;try{a=JSON.parse(a)}catch(t){a=e.Text._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",r.status)}}o("progress");const i=a&&a.header?a.header:e.Text._("COM_FINDER_AN_ERROR_HAS_OCCURRED"),d=a&&a.message?a.message:`${e.Text._("COM_FINDER_MESSAGE_RETURNED")}<br>${a}`;n&&(n.innerText=i,n.classList.add("finder-error")),s&&(s.innerHTML=e.sanitizeHtml(d),s.classList.add("finder-error"))})(r)}))};s=0,a=0,r("indexer.start")}})(Joomla,document),document.addEventListener("DOMContentLoaded",(()=>{window.Indexer=Joomla.finderIndexer()})); |