PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.4.9
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.4.9
4.4.9.1 4.4.9 4.4.8 4.4.7 4.4.6 4.4.5 4.4.4 4.4.3 4.4.2 4.4.1 4.4.0 4.3.9.1 4.3.9 4.3.8 4.3.7 4.1.6.9 4.1.6.9.1 4.1.6.9.2 4.1.6.9.3 4.1.6.9.4 4.1.7 4.1.7.1 4.1.7.2 4.1.7.3 4.1.7.3.1 All 141 releases
learnpress / assets / js / admin / order / add-courses-to-order.min.js

add-courses-to-order.min.js in LearnPress – WordPress LMS Plugin for Create and Sell Online Courses 4.4.9, at assets/js/admin/order/add-courses-to-order.min.js

1 lines 5.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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;