| 1 |
import{AdminUtilsFunctions,Api,Utils}from"../utils-admin.js";import*as lpUtils from"lpAssetsJsPath/utils.js";const addCoursesToOrder=()=>{let e,t,r,s,o,l,n,a,i;const c="#modal-search-items";let d={search:"",id_not_in:"",paged:1};const u=[];let p=[];const m=(r="",s=[],o=1)=>{let l="";s.length>0&&(l=s.join(",")),d={search:r,id_not_in:l,paged:o},AdminUtilsFunctions.fetchCourses(r,d,{before(){e.classList.add("loading")},success(r){const{data:s,status:l,message:n}=r,{courses:a,total_pages:i}=s;if("success"!==l)console.error(n);else{if(!a.length)return void(t.innerHTML='<li class="lp-result-item">No courses found</li>');t.innerHTML=h(a);const r=f(o,i);e.querySelector(".search-nav").innerHTML=r}},error(e){console.error(e)},completed(){e.classList.remove("loading")}})},h=e=>{let t="";return e.forEach(e=>{const r=parseInt(e.ID),s=u.includes(r)?"checked":"";t+=`\n\t\t\t<li class="lp-result-item" data-id="${r}" data-type="lp_course" data-text="${e.post_title}">\n\t\t\t\t<label>\n\t\t\t\t\t<input type="checkbox" value="${r}" name="selectedItems[]" ${s}>\n\t\t\t\t\t<span class="lp-item-text">${e.post_title} (#${r})</span>\n\t\t\t\t</label>\n\t\t\t</li>`}),t},f=(e,t)=>{e=parseInt(e);let r="";if((t=parseInt(t))<=1)return r;const s=e+1,o=e-1;let l=[];if(t<=9)for(let e=1;e<=t;e++)l.push(e);else if(e<=3)l=[1,2,3,4,5,"x",t];else if(e<=5){for(let t=1;t<=e;t++)l.push(t);for(let t=1;t<=2;t++){const r=e+t;l.push(r)}l.push("x"),l.push(t)}else{l=[1,"x"];for(let t=2;t>=0;t--){const r=e-t;l.push(r)}if(t-e<=5)for(let r=e+1;r<=t;r++)l.push(r);else{for(let t=1;t<=2;t++){const r=e+t;l.push(r)}l.push("x"),l.push(t)}}const n=l.length;1!==e&&(r+=`<a class="prev page-numbers button" href="#" data-page="${o}"><</a>`);for(let t=0;t<n;t++)e===parseInt(l[t])?r+=`<a aria-current="page" class="page-numbers current button disabled" data-page="${l[t]}">\n\t\t\t\t${l[t]}\n\t\t\t</a>`:"x"===l[t]?r+='<span class="page-numbers dots button disabled">...</span>':r+=`<a class="page-numbers button" href="#" data-page="${l[t]}">${l[t]} </a>`;return e!==t&&(r+=`<a class="next page-numbers button" href="#" data-page="${s}">></a>`),r},y=()=>{p=[],document.querySelectorAll("#learn-press-order .list-order-items tbody .order-item-row").forEach(e=>{const t=parseInt(e.getAttribute("data-id"));p.push(t)}),o.style.display="block",n.style.display="none",t.innerHTML="",m(d.search,p,d.paged)};document.addEventListener("click",t=>{const s=t.target;if("learn-press-add-order-item"===s.id&&(t.preventDefault(),y()),s.classList.contains("close")&&s.closest(c)&&(t.preventDefault(),e.querySelector('input[name="search"]').value="",d.search="",d.paged=1,o.style.display="none"),s.classList.contains("page-numbers")&&s.closest(c)){t.preventDefault();const e=s.getAttribute("data-page");m(d.search,d.id_not_in,e)}if("selectedItems[]"===s.name&&s.closest(c)){const e=parseInt(s.value);if(s.checked)u.push(e);else{const t=u.indexOf(e);t>-1&&u.splice(t,1)}n.style.display=u.length>0?"block":"none"}((e,t)=>{if(!t.classList.contains("add"))return;if(!t.closest(c))return;a=r.querySelector(".list-order-items"),e.preventDefault(),t.disabled=!0;const s={"lp-ajax":"add_items_to_order",order_id:document.querySelector("#post_ID").value,items:u,nonce:lpDataAdmin.nonce},l={success(e){const{data:t,messages:s,status:o}=e;if("error"===o)return void console.error(s);const{item_html:l,order_data:n}=t,i=a.querySelector(".no-order-items");lpUtils.lpShowHideEl(i,0),i.insertAdjacentHTML("beforebegin",l),r.querySelector(".order-subtotal").innerHTML=n.subtotal_html,r.querySelector(".order-total").innerHTML=n.total_html,u.splice(0,u.length)},error(e){console.error(e)},completed(){t.disabled=!1,o.style.display="none"}};Utils.lpFetchAPI(Utils.lpAddQueryArgs(Utils.lpGetCurrentURLNoParam(),s),{},l)})(t,s),((e,t)=>{if("SPAN"!==t.tagName)return;if(!t.closest(".remove-order-item"))return;if(e.preventDefault(),!confirm("Are you sure you want to remove this item?"))return;t.disabled=!0,t.classList.add("dashicons-update");const s=t.closest(".order-item-row"),o=t.closest(".list-order-items"),l=parseInt(s.getAttribute("data-item_id")),n=parseInt(s.getAttribute("data-id")),a={"lp-ajax":"remove_items_from_order",order_id:document.querySelector("#post_ID").value,items:l,nonce:lpDataAdmin.nonce},i={success(e){const{data:t,messages:s,status:l}=e;if("error"===l)return void console.error(s);const{item_html:a,order_data:i}=t,c=o.querySelector(".no-order-items");o.querySelectorAll(".order-item-row").forEach(e=>{e.remove()}),a.length?c.insertAdjacentHTML("beforebegin",a):lpUtils.lpShowHideEl(c,1),u.splice(u.indexOf(n),1),r.querySelector(".order-subtotal").innerHTML=i.subtotal_html,r.querySelector(".order-total").innerHTML=i.total_html},error(e){console.error(e)},completed(){}};Utils.lpFetchAPI(Utils.lpAddQueryArgs(Utils.lpGetCurrentURLNoParam(),a),{},i)})(t,s)}),document.addEventListener("keyup",function(e){((e,t)=>{if("search"!==t.name)return;if(!t.closest(c))return;e.preventDefault();const r=t.value;(!r||r&&r.length>2)&&(void 0!==i&&clearTimeout(i),i=setTimeout(function(){m(r,p,1)},800))})(e,e.target)}),lpUtils.lpOnElementReady(".lp-order-detail-items",a=>{r=document.querySelector("#learn-press-order"),s=document.querySelector("#learn-press-modal-search-items"),o=document.querySelector("#container-modal-search-items"),r&&(o.innerHTML=s.innerHTML,e=o.querySelector(c),t=e.querySelector(".search-results"),l=e.querySelector("footer"),n=l.querySelector(".add"),o.style.display="none")})};export default addCoursesToOrder; |