| 1 |
(()=>{"use strict";const e=jQuery;let t=null;const s={elLPOverlay:null,elMainContent:null,elTitle:null,elBtnYes:null,elBtnNo:null,elFooter:null,elCalledModal:null,callBackYes:null,instance:null,init(){return!!this.instance||(this.elLPOverlay=e(".lp-overlay"),!!this.elLPOverlay.length&&(t=this.elLPOverlay,this.elMainContent=t.find(".main-content"),this.elTitle=t.find(".modal-title"),this.elBtnYes=t.find(".btn-yes"),this.elBtnNo=t.find(".btn-no"),this.elFooter=t.find(".lp-modal-footer"),e(document).on("click",".close, .btn-no",function(){t.hide()}),e(document).on("click",".btn-yes",function(e){e.preventDefault(),e.stopPropagation(),"function"==typeof s.callBackYes&&s.callBackYes(e)}),this.instance=this,!0))},setElCalledModal(e){this.elCalledModal=e},setContentModal(e,t){this.elMainContent.html(e),"function"==typeof t&&t()},setTitleModal(e){this.elTitle.html(e)}},n=s,l=function(e,t,s){wp.apiFetch({path:e,method:"POST",data:t}).then(e=>{"function"==typeof s.success&&s.success(e)}).catch(e=>{"function"==typeof s.error&&s.error(e)}).then(()=>{"function"==typeof s.completed&&s.completed()})},o=jQuery,a=o("#lp-tool-upgrade-db"),r=()=>{let e=0;const t=a.find(".wrapper-terms-upgrade"),s=a.find(".wrapper-lp-status-upgrade"),r=a.find(".wrapper-lp-upgrade-message");let i=null;const c=o("input[name=message-when-upgrading]").val();if(t.length){n.setContentModal(t.html());const e=n.elLPOverlay.find(".terms-upgrade"),o=e.find("input[name=lp-agree-term]"),a=e.find(".error");i=function(){return a.hide(),a.removeClass("learn-press-message"),o.is(":checked")?(l("/lp/v1/database/agree_terms",{agree_terms:1},{}),n.elFooter.find(".learn-press-notice").remove(),n.setContentModal(s.html()),!0):(a.show(),a.addClass("learn-press-message"),n.elMainContent.animate({scrollTop:a.offset().top}),!1)}}else n.setContentModal(s.html()),i=function(){return!0};n.setTitleModal(a.find("h2").html()),n.elBtnYes.text("Upgrade"),n.elBtnYes.show(),n.elBtnNo.text("Cancel"),n.callBackYes=function(t){if(!i())return;"Upgrade"===t.target.innerText&&n.elFooter.prepend('<span class="learn-press-notice">'+c+"</span>"),e=1,n.elBtnYes.hide(),n.elBtnNo.hide();const s="/lp/v1/database/upgrade",d=n.elLPOverlay.find(".lp-group-step"),p=a.find(".lp-item-step"),u=[];o.each(p,function(e,t){const s=o(t);if(!s.hasClass("completed")){const e=s.find("input").val();u.push(e)}});const m={steps:u,step:u[0]};let h=null;const g=(e,t)=>{h=d.find("input[value="+e+"]").closest(".lp-item-step"),h.addClass("running"),100===t&&h.removeClass("running").addClass("completed"),h.find(".progress-bar").css("width",t+"%"),h.find(".percent").text(t+"%")};g(u[0],.1);const y={success:t=>{g(m.step,t.percent),m.step!==t.name&&g(t.name,.1),(e=>{if(h=d.find("input[value="+e+"]").closest(".lp-item-step"),!h.length)return;const t=h.offset().top-n.elMainContent.offset().top+n.elMainContent.scrollTop();n.elMainContent.stop().animate({scrollTop:t},600)})(m.step),"success"===t.status?(m.step=t.name,m.data=t.data,setTimeout(()=>{l(s,m,y)},800)):"finished"===t.status?(e=0,h.removeClass("running").addClass("completed"),setTimeout(()=>{n.setContentModal(r.html())},1e3),n.elFooter.find(".learn-press-notice").remove(),n.elBtnNo.text("Close"),n.elBtnNo.show(),n.elBtnNo.on("click",()=>{window.location.reload()})):(e=0,n.elFooter.find(".learn-press-notice").remove(),h.removeClass("running").addClass("error"),n.setContentModal(r.html(),function(){n.elBtnYes.text("Retry").show(),n.callBackYes=()=>{window.location.href=lpGlobalSettings.siteurl+"/wp-admin/admin.php?page=learn-press-tools&tab=database&action=upgrade-db"},n.elBtnNo.show(),t.message||(t.message="Upgrade not success! Please clear cache, restart sever then retry or contact to LP to help"),n.elMainContent.find(".learn-press-message").addClass("error").html(t.message)}))},error:t=>{e=0,n.setContentModal(r.html(),function(){n.elBtnYes.text("Retry").show(),n.callBackYes=()=>{window.location.location="wp-admin/admin.php?page=learn-press-tools&tab=database&action=upgrade-db"},n.elBtnNo.show(),t.message||(t.message="Upgrade not success! Something wrong. Please clear cache, restart sever then retry or contact to LP to help"),n.elMainContent.find(".learn-press-message").addClass("error").html(t.message)})},completed:()=>{}};l(s,m,y)},window.onbeforeunload=function(){if(e)return"LP is upgrading Database. Are you want to reload page?"},window.onclose=function(){if(e)return"LP is upgrading Database. Are you want to close page?"}};!function(e){const t=e(document),s=function(t){t.preventDefault();const s=e(this);s.hasClass("disabled")||(s.addClass("disabled").html(s.data("cleaning-text")),e.ajax({url:s.attr("href"),data:{},success(e){s.removeClass("disabled").html(s.data("text"))},error(){s.removeClass("disabled").html(s.data("text"))}}))},i=function(){e.ajax({url:"admin.php?page=lp-toggle-hard-cache-option",data:{v:this.checked?"yes":"no"},success(e){},error(){}})};e(function(){(()=>{if(!a.length)return;if(!n.init())return;const e=o(".wrapper-lp-status-upgrade"),t=window.location.search,s=new URLSearchParams(t).get("action");"upgrade-db"===s&&(n.elLPOverlay.show(),n.setTitleModal(a.find("h2").html()),n.setContentModal(o(".wrapper-lp-loading").html())),l("/lp/v1/database/get_steps",{},{success:t=>{const{steps_completed:l,steps_default:a}=t;if(void 0===l||void 0===a)return console.log("invalid steps_completed and steps_default"),!1;let i="";for(const t in a){const c=a[t],d=c.steps;i='<div class="lp-group-step">',i+="<h3>"+c.label+"</h3>";for(const e in d){const t=d[e];let s="";void 0!==l[e]&&(s="completed"),i+='<div class="lp-item-step '+s+'">',i+='<div class="lp-item-step-left"><input type="hidden" name="lp_steps_upgrade_db[]" value="'+t.name+'" /></div>',i+='<div class="lp-item-step-right">',i+='<label for=""><strong></strong>'+t.label+"</label>",i+='<div class="description">'+t.description+"</div>",i+='<div class="percent"></div>',i+='<span class="progress-bar"></span>',i+="</div>",i+="</div>"}i+="</div>",e.append(i);const p=o(".lp-btn-upgrade-db");"upgrade-db"===s&&r(),p.on("click",function(){n.elLPOverlay.show(),r()})}},error:e=>{},completed:()=>{}})})(),(()=>{const e=document.querySelector("#lp-tool-create-indexes-tables");e&&e.querySelector(".lp-btn-create-indexes").addEventListener("click",t=>{t.preventDefault();const s=e.querySelector(".wrapper-lp-loading");if(!n.init())return;n.elLPOverlay.show(),n.setContentModal(s.innerHTML),n.setTitleModal(e.querySelector("h2").textContent),n.elBtnYes[0].style.display="inline-block",n.elBtnYes[0].textContent="Run",n.elBtnNo[0].textContent="Close";const o={success:e=>{const{status:t,message:s,data:{tables:o,table:a}}=e,r=document.querySelector(".example-lp-group-step");n.setContentModal(r.innerHTML);const i=n.elLPOverlay[0].querySelector(".lp-group-step "),c=(e,t)=>{const s=i.querySelector("input[value="+e+"]").closest(".lp-item-step");s.classList.add("running"),100===t&&(s.classList.remove("running"),s.classList.add("completed")),s.querySelector(".progress-bar").style.width=t};for(const e in o){const t=n.elLPOverlay[0].querySelector(".lp-item-step").cloneNode(!0),s=t.querySelector("input");t.querySelector("label").textContent=`Table: ${e}`,s.value=e,i.append(t)}n.callBackYes=()=>{const e="/lp/v1/admin/tools/create-indexs",t={tables:o,table:a};n.elBtnNo[0].style.display="none",n.elBtnYes[0].style.display="none",c(a,.1);const s={success:o=>{const{status:a,message:r,data:{table:d,percent:p}}=o;c(t.table,p),void 0!==d&&(t.table!==d&&(c(d,.1),(e=>{const t=i.querySelector("input[value="+e+"]").closest(".lp-item-step").offsetTop-n.elMainContent[0].offsetTop+n.elMainContent[0].scrollTop;n.elMainContent.stop().animate({scrollTop:t},600)})(d)),t.table=d),"success"===a?setTimeout(()=>{l(e,t,s)},2e3):"finished"===a?(console.log("finished"),n.elBtnNo[0].style.display="inline-block",n.elBtnNo[0].textContent="Finish"):console.log(r)},error:e=>{console.log(e)},completed:()=>{}};l(e,t,s)}},error:e=>{},completed:()=>{}};l("/lp/v1/admin/tools/list-tables-indexs",{},o)})})(),(()=>{const e=document.querySelector("#lp-tool-re-upgrade-db");if(!e)return;let t="lp/v1/database/check-db-valid-re-upgrade";l(t,{},{success(s){const{data:{can_re_upgrade:n}}=s;if(!n)return;e.style.display="block";const o=e.querySelector(".lp-btn-re-upgrade-db"),a=e.querySelector(".learn-press-message");o.addEventListener("click",()=>{confirm("Are you want to Re Upgrade!")&&(t="lp/v1/database/del-tb-lp-upgrade-db",l(t,{},{success(e){const{status:t,message:s,data:{url:n}}=e;"success"===t&&void 0!==n&&(window.location.href=n)},error(e){a.classList.add("error"),a.textContent=e.message,a.style.display="block"}}))})},error(e){}})})(),(()=>{const e=document.querySelector("#lp-tool-clean-database");e&&e.querySelector(".lp-btn-clean-db").addEventListener("click",function(t){t.preventDefault();const s=document.querySelector("#tools-select__id"),o=s.querySelectorAll("ul li input"),a=Array.prototype.slice.call(o).some(e=>e.checked),r=e.querySelector(".tools-prepare__message");if(0==a)return r.style.display="block",void(r.textContent="You must choose at least one table to take this action");r.style.display="none";const i=e.querySelector(".wrapper-lp-loading");if(!n.init())return;n.elLPOverlay.show(),n.setContentModal(i.innerHTML),n.setTitleModal(e.querySelector("h2").textContent),n.elBtnYes[0].style.display="inline-block",n.elBtnYes[0].textContent="Run",n.elBtnNo[0].textContent="Close";const c=new Array;s.querySelectorAll("ul li input:checked").forEach(e=>{c.push(e.value)});const d=c[0],p=i.querySelector(".progressbar__item").getAttribute("data-total"),u=document.querySelector(".lp-modal-body .main-content").querySelector(".lp-tool__message");if(p<=0)return n.elBtnYes[0].style.display="none",u.textContent="There is no data that need to be repaired in the chosen tables",void(u.style.display="block");n.callBackYes=()=>{if(0==confirm("The modified data is impossible to be restored. Please backup your website before doing this."))return;const e=document.querySelector(".lp-modal-body .main-content"),t=e.querySelector(".lp-tool__message");t.textContent="This action is in processing. Don't close this page",t.style.display="block";const s="/lp/v1/admin/tools/clean-tables",o={tables:d,itemtotal:p};n.elBtnNo[0].style.display="none",n.elBtnYes[0].style.display="none";const a={success:t=>{const{status:r,message:i,data:{processed:c,percent:d}}=t,u=e.querySelector(".progressbar__item"),m=u.querySelector(".progressbar__rows"),h=u.querySelector(".progressbar__percent"),g=u.querySelector(".progressbar__value");if(console.log(r),"success"===r)setTimeout(()=>{l(s,o,a)},2e3),m.textContent=c+" / "+p,h.textContent="( "+d+"% )",g.style.width=d+"%";else if("finished"===r){m.textContent=p+" / "+p,h.textContent="( 100% )";const e=document.querySelector(".lp-modal-body .main-content").querySelector(".lp-tool__message");e.textContent="Process has been completed. Press click the finish button to close this popup",e.style.color="white",e.style.background="green",g.style.width="100%",n.elBtnNo[0].style.display="inline-block",n.elBtnNo[0].textContent="Finish",n.elBtnNo[0].addEventListener("click",function(){location.reload()})}else console.log(i)},error:e=>{console.log(e)},completed:()=>{}};l(s,o,a)}})})(),t.on("click","#learn-press-clear-cache",s).on("click",'input[name="enable_hard_cache"]',i)})}(jQuery)})(); |