/** * @copyright (C) 2012 Open Source Matters, Inc. * @license GNU General Public License version 2 or later; see LICENSE.txt */Joomla=window.Joomla||{},((n,i)=>{n.submitbuttonUpload=()=>{const t=i.getElementById("uploadForm"),s=i.getElementById("joomlaupdate-confirm-backup");t.install_package.value===""?alert(n.Text._("COM_INSTALLER_MSG_INSTALL_PLEASE_SELECT_A_PACKAGE"),!0):t.install_package.files[0].size>t.max_upload_size.value?alert(n.Text._("COM_INSTALLER_MSG_WARNINGS_UPLOADFILETOOBIG"),!0):s&&s.checked&&t.submit()},n.installpackageChange=()=>{const t=i.getElementById("uploadForm"),s=t.install_package.files[0].size,a=s*1/1024/1024,r=i.getElementById("file_size"),l=i.getElementById("max_upload_size_warn");t.install_package.value===""?(r.classList.add("hidden"),l.classList.add("hidden")):s&&(r.classList.remove("hidden"),r.innerHTML=n.sanitizeHtml(n.Text._("JGLOBAL_SELECTED_UPLOAD_FILE_SIZE").replace("%s",`${a.toFixed(2)} MB`)),s>t.max_upload_size.value?l.classList.remove("hidden"):l.classList.add("hidden"))},i.addEventListener("DOMContentLoaded",()=>{const t=i.getElementById("confirmButton"),s=i.getElementById("uploadForm"),a=i.getElementById("uploadButton"),r=i.getElementById("install_package"),l=i.querySelector(".emptystate-btnadd",i.getElementById("joomlaupdate-wrapper")),e=i.getElementById("joomlaupdate-confirm-backup"),o=l?l.closest("form"):null,c=o?o.querySelector("[name=task]",o):null;a&&(a.addEventListener("click",n.submitbuttonUpload),a.disabled=e&&!e.checked,e&&e.addEventListener("change",()=>{a.disabled=!e.checked})),t&&e&&!e.checked&&t.classList.add("disabled"),t&&e&&e.addEventListener("change",()=>{e.checked?t.classList.remove("disabled"):t.classList.add("disabled")}),r&&(r.addEventListener("change",n.installpackageChange),e&&r.addEventListener("change",()=>{const d=s.install_package.files[0].size,E=s.max_upload_size.value;d<=E&&e.disabled?e.disabled=!e.disabled:d<=E&&!e.disabled&&!e.checked?e.disabled=!1:d<=E&&e.checked?(e.checked=e.classList.contains("d-none"),a.disabled=!0):d>E&&!e.disabled&&(e.disabled=!e.disabled,e.checked=e.classList.contains("d-none"),a.disabled=!0)})),l&&l.getAttribute("href")==="#"&&c&&l.addEventListener("click",d=>{d.preventDefault(),!(e&&!e.checked)&&(c.value="update.download",o.submit())})})})(Joomla,document),((n,i)=>{const t={};t.config={serverUrl:"index.php?option=com_joomlaupdate&task=update.fetchextensioncompatibility",batchUrl:"index.php?option=com_joomlaupdate&task=update.batchextensioncompatibility",selector:".extension-check"},t.STATE={INCOMPATIBLE:0,COMPATIBLE:1,MISSING_COMPATIBILITY_TAG:2,SERVER_ERROR:3},t.cleanup=s=>{const a=i.querySelector("#joomlaupdate-precheck-extensions-tab .fa-spinner");let r="success",l="check";switch(s){case"danger":r="danger",l="times";break;case"warning":r="warning",l="exclamation-triangle";break}a&&(a.classList.remove("fa-spinner","fa-spin"),a.classList.add(`fa-${l}`,`text-${r}`,"bg-white"));const e=i.querySelector("#compatibilityTable0"),o=i.querySelector("#preupdateCheckWarning");e&&e.classList.add("hidden"),o&&o.classList.add("hidden")},t.run=()=>{t.nonCoreCriticalPlugins=n.getOptions("nonCoreCriticalPlugins",[]);const s=i.querySelectorAll(t.config.selector);if(s.length===0){i.getElementById("preupdatecheckbox")!==null&&(i.getElementById("preupdatecheckbox").style.display="none"),i.getElementById("noncoreplugins")!==null&&(i.getElementById("noncoreplugins").checked=!0),i.querySelectorAll("button.submitupdate").forEach(e=>{e.classList.remove("disabled"),e.removeAttribute("disabled")}),t.cleanup();return}const a=()=>{const e=i.getElementById("noncoreplugins");e.checked?window.confirm(n.Text._("COM_JOOMLAUPDATE_VIEW_DEFAULT_POTENTIALLY_DANGEROUS_PLUGIN_CONFIRM_MESSAGE"))?i.querySelectorAll("button.submitupdate").forEach(o=>{o.classList.remove("disabled"),o.removeAttribute("disabled")}):e.checked=!1:i.querySelectorAll("button.submitupdate").forEach(o=>{o.classList.add("disabled"),o.setAttribute("disabled","")})};i.getElementById("noncoreplugins")!==null&&i.getElementById("noncoreplugins").addEventListener("change",a);const r=i.getElementById("joomlaupdate-wrapper");t.joomlaTargetVersion=r.getAttribute("data-joomla-target-version"),t.joomlaCurrentVersion=r.getAttribute("data-joomla-current-version"),i.querySelectorAll(".compatibilitytoggle").forEach(e=>{e.addEventListener("click",()=>{const o=e.closest(".compatibilityTable");e.dataset.state==="closed"?(e.dataset.state="open",e.innerHTML=n.sanitizeHtml(n.Text._("COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_SHOW_LESS_COMPATIBILITY_INFORMATION")),o.querySelectorAll("table .hidden").forEach(c=>c.classList.remove("hidden"))):(e.dataset.state="closed",e.innerHTML=n.sanitizeHtml(n.Text._("COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_SHOW_MORE_COMPATIBILITY_INFORMATION")),o.querySelectorAll("table .instver, table .upcomp, table .currcomp").forEach(c=>c.classList.add("hidden")))})});const l=[];s.forEach(e=>l.push({eid:e.getAttribute("data-extension-id"),version:e.getAttribute("data-extension-current-version")})),t.checkNextChunk(l)},t.interpolateParameters=(s,a)=>{let r="";return typeof s!="object"||s===null||!s?"":(Object.keys(s).forEach(l=>{const e=s[l];if(r.length>0&&(r+="&"),typeof e=="object"){const o=a.length?`${a}[${l}]`:l;r+=t.interpolateParameters(e,o);return}if(a===""){r+=`${encodeURIComponent(l)}=${encodeURIComponent(e)}`;return}r+=`${encodeURIComponent(a)}[${encodeURIComponent(l)}]=${encodeURIComponent(e)}`}),r)},t.checkNextChunk=s=>{s.length!==0&&n.request({url:t.config.batchUrl,method:"POST",data:t.interpolateParameters({"joomla-target-version":t.joomlaTargetVersion,"joomla-current-version":t.joomlaCurrentVersion,extensions:s},""),onSuccess(a){const r=JSON.parse(a);r.messages&&n.renderMessages(r.messages);const l=r.data.extensions||[];r.data.compatibility.forEach(e=>{const o=i.getElementById(`preUpdateCheck_${e.id}`);o&&t.setResultView({element:o,compatibleVersion:0,serverError:0,compatibilityData:e})}),t.checkNextChunk(l)},onError(a){n.renderMessages(n.ajaxErrorsMessages(a)),s.forEach(r=>{const l=i.getElementById(`preUpdateCheck_${r.eid}`);l&&t.setResultView({element:l,compatibleVersion:0,serverError:1})})}})},t.checkCompatibility=s=>{const a={element:s,compatibleVersion:0,serverError:1};n.request({url:`${t.config.serverUrl}&joomla-target-version=${encodeURIComponent(t.joomlaTargetVersion)}&joomla-current-version=${t.joomlaCurrentVersion}&extension-version=${s.getAttribute("data-extension-current-version")}&extension-id=${encodeURIComponent(s.getAttribute("data-extension-id"))}`,onSuccess(r){const l=JSON.parse(r);a.serverError=0,a.compatibilityData=l.data,t.setResultView(a)},onError(){a.serverError=1,t.setResultView(a)}})},t.setResultView=s=>{let a="";if(s.serverError)a=n.Text._("COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_SERVER_ERROR"),s.compatibilityData={resultGroup:4};else switch(s.compatibilityData.upgradeCompatibilityStatus.state){case t.STATE.COMPATIBLE:s.compatibilityData.upgradeWarning?a=`${n.sanitizeHtml(s.compatibilityData.upgradeCompatibilityStatus.compatibleVersion)}`:a=s.compatibilityData.upgradeCompatibilityStatus.compatibleVersion===!1?n.Text._("COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_NO_COMPATIBILITY_INFORMATION"):n.sanitizeHtml(s.compatibilityData.upgradeCompatibilityStatus.compatibleVersion);break;case t.STATE.INCOMPATIBLE:a=n.Text._("COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_NO_COMPATIBILITY_INFORMATION");break;case t.STATE.MISSING_COMPATIBILITY_TAG:a=n.Text._("COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_NO_COMPATIBILITY_INFORMATION");break;default:a=n.Text._("COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_WARNING_UNKNOWN")}if(s.element.innerHTML=a,a="",s.serverError)a=n.Text._("COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_SERVER_ERROR");else switch(s.compatibilityData.currentCompatibilityStatus.state){case t.STATE.COMPATIBLE:a=s.compatibilityData.currentCompatibilityStatus.compatibleVersion===!1?n.Text._("COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_NO_COMPATIBILITY_INFORMATION"):s.compatibilityData.currentCompatibilityStatus.compatibleVersion;break;case t.STATE.INCOMPATIBLE:a=n.Text._("COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_NO_COMPATIBILITY_INFORMATION");break;case t.STATE.MISSING_COMPATIBILITY_TAG:a=n.Text._("COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_NO_COMPATIBILITY_INFORMATION");break;default:a=n.Text._("COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_WARNING_UNKNOWN")}const r=s.element.getAttribute("data-extension-id");i.getElementById(`available-version-${r}`).innerText=a;const l=i.querySelector(`#compatibilityTable${s.compatibilityData.resultGroup} tbody`);if(l&&l.appendChild(s.element.closest("tr")),i.getElementById(`compatibilityTable${s.compatibilityData.resultGroup}`).classList.remove("hidden"),s.compatibilityData.resultGroup===3&&(t.nonCoreCriticalPlugins=t.nonCoreCriticalPlugins.filter(e=>!(e.package_id.toString()===r||e.extension_id.toString()===r))),!i.querySelector("#compatibilityTable0 tbody td")){i.getElementById("compatibilityTable0").classList.add("hidden");let e="success";t.nonCoreCriticalPlugins.forEach(o=>{let c=i.querySelector(`td[data-extension-id="${o.extension_id}"]`);if(c||(c=i.querySelector(`td[data-extension-id="${o.package_id}"]`)),c){const d=c.closest("tr");d.classList.add("error");const E=d.querySelector(".exname");E.innerHTML=`${n.sanitizeHtml(E.innerHTML)}
${i.querySelector(`td[data-extension-id="${o.extension_id}"]`)?"":` - ${o.name}`} ${n.Text._("COM_JOOMLAUPDATE_VIEW_DEFAULT_POTENTIALLY_DANGEROUS_PLUGIN")}
`;const _=E.querySelector(".hasPopover");_&&(_.style.cursor="pointer",new bootstrap.Popover(_,{placement:"top",html:!0,trigger:"focus"})),e="danger"}}),i.querySelector("#compatibilityTable2 tbody td")?e="danger":e!=="danger"&&i.querySelector("#compatibilityTable1 tbody td")&&(e="warning"),t.nonCoreCriticalPlugins.length===0&&e==="success"&&i.getElementById("preupdatecheckbox")&&(i.getElementById("preupdatecheckbox").style.display="none"),t.nonCoreCriticalPlugins.length===0&&e==="success"&&i.getElementById("noncoreplugins")&&(i.getElementById("noncoreplugins").checked=!0),t.nonCoreCriticalPlugins.length===0&&e==="success"?i.querySelectorAll("button.submitupdate").forEach(o=>{o.classList.remove("disabled"),o.removeAttribute("disabled")}):t.nonCoreCriticalPlugins.length>0&&i.getElementById("preupdateCheckCompleteProblems").classList.remove("hidden"),t.cleanup(e)}},i.getElementById("preupdatecheck")!==null&&i.addEventListener("DOMContentLoaded",t.run,!1)})(Joomla,document);