function deleteFromCart(productId) {
let xmlhttpCart = new XMLHttpRequest();
xmlhttpCart.overrideMimeType('application/json');
xmlhttpCart.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
reloadCart();
}
}
xmlhttpCart.open("GET", "/shoppingCart2/delItem.ajax?productId=" + productId, true);
xmlhttpCart.send();
}
var allowCheckout = false;
var productIdsWithQty = [];
function reloadCart() {
let xmlhttpCart = new XMLHttpRequest();
xmlhttpCart.overrideMimeType('application/json');
xmlhttpCart.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
let cartHtml = "";
let lmsCartBox = document.querySelector("[role=\"lms-cart\"]");
lmsCartBox.innerHTML = "";
const cartJson = JSON.parse(this.responseText);
console.log(cartJson)
document.querySelectorAll("input[name='coupons']").forEach(function (couponeInput) {
console.log('couponeInput', couponeInput);
console.log('cartJson.couponsStr', cartJson.couponsStr);
couponeInput.value = cartJson.couponsStr;
});
productIdsWithQty = [];
for (var k in cartJson.items) {
// cartJson.items[k].qty;
let productId = cartJson.items[k].productId;
let qty = cartJson.items[k].qty;
productIdsWithQty.push({productId: productId, qty: qty});
let sName = cartJson.items[k].productName;
// let sPrice = cartJson.items[k].itemPriceStr;
let sPrice = cartJson.items[k].itemTotalStr;
let subItemNumber = 0;
var cartItemTempl = "" +
"
" +
"
" +
"
" +
"
" +
" " +
"
" +
"
" +
"
" +
"
" +
"
" +
"
" +
" {{subItemsText}}" +
"
" +
"
" +
"
" +
"
" +
"
{{price}} $
" +
"
" +
"
" +
"
" +
"
" +
"
" +
"
" +
"
" +
"
" +
"
" +
"
";
var subItemsText = '';
if (cartJson.items[k].subCartItems != null && cartJson.items[k].subCartItems.length > 0) {
for (let i in cartJson.items[k].subCartItems) {
let subCartItem = cartJson.items[k].subCartItems[i];
if (subCartItem.textLabels.length > 0 && subCartItem.textLabels[0] != '') {
subItemsText += '' + subCartItem.textLabels[0] + '
';
}
}
}
cartItemTempl = cartItemTempl.replace(/{{subItemsText}}/i, subItemsText);
cartItemTempl = cartItemTempl.replace(/{{name}}/i, sName);
cartItemTempl = cartItemTempl.replace(/{{price}}/i, sPrice);
cartHtml += cartItemTempl;
}
lmsCartBox.innerHTML = cartHtml;
let totalPrice = document.querySelector("b[role=\"total-price\"]");
if (totalPrice)
totalPrice.textContent = cartJson.totalStr + " $";
let hasProgramError = false;
let validatedProduct = [];
for (let i in productIdsWithQty) {
let pid = productIdsWithQty[i].productId;
let qty = productIdsWithQty[i].qty;
console.log('productIdsWithQty[' + i + ']: ', productIdsWithQty[i]);
let productRequiredRelated = [];
let allCoursesInProgram = [];
let currentProgram = -1;
if (!validatedProduct.find(function (el) {
return el == pid
})) {
let xmlhttpCart = new XMLHttpRequest();
xmlhttpCart.overrideMimeType('application/json');
xmlhttpCart.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
let allSessionsInProgramOfPid = new DOMParser().parseFromString(this.responseText, 'text/html');
let exists = false;
allSessionsInProgramOfPid.querySelectorAll('body div[role="session-item-inprogram"]').forEach(function (el, index) {
exists = true;
let data = {
cid: el.dataset.cid,
sid: el.dataset.sid,
pid: el.dataset.pid,
progid: el.dataset.programid
}
let pQty = 0;
for (let i in productIdsWithQty) {
let pidQty = productIdsWithQty[i].productId;
if (pidQty == data.pid) {
validatedProduct.push(data.pid)
pQty = productIdsWithQty[i].qty;
console.log('found qty ' + pQty + ' for pid ' + pidQty + ' and cid ' + data.cid);
break;
}
}
data['qty'] = pQty;
// console.log('data object with qty: ', data);
allCoursesInProgram[data.cid] = 0;
productRequiredRelated.push(data);
})
console.log('allCoursesInProgram: ', allCoursesInProgram);
if (exists) {
for (let i in productRequiredRelated) {
let data = productRequiredRelated[i];
allCoursesInProgram[data.cid] += data.qty;
}
let prev = -2;
for (let key in allCoursesInProgram) {
if (prev == -2)
prev = allCoursesInProgram[key];
let cur = allCoursesInProgram[key];
if (prev != cur) {
console.log('error');
hasProgramError = true;
}
prev = cur;
}
}
}
}
xmlhttpCart.open("GET", "/entity/roster/entityRosterView.html?entityRosterId=11&productId=" + productIdsWithQty[i].productId, false);
xmlhttpCart.send();
console.log("xmlhttpCart.send();")
} else {
console.log("pid: " + pid + " is already validated for program")
}
}
if (hasProgramError)
allowCheckout = false;
else
allowCheckout = true;
console.log("setting up function on buy btn");
document.querySelector(".btnFiltershop").addEventListener("click", (e) => {
e.preventDefault();
if (allowCheckout) {
let url = '/shoppingCart2/order2/create.html?expired=true&coupons=&clientId=' + cartJson.clientId;
location.href = url;
} else {
let errorPlaceholder = document.querySelector("[id=\"error_placeholder\"]");
errorPlaceholder.innerHTML = "Please add all modules (1,2, 3 and 4) to the cart to finalize your transaction.";
errorPlaceholder.style.display = 'block';
}
})
}
}
// xmlhttpCart.open("GET", "/shoppingCart2/shoppingCart.html", true);
xmlhttpCart.open("GET", "/shoppingCart2/getCartContent.ajax", true);
xmlhttpCart.send();
}
window.addEventListener('DOMContentLoaded', (event) => {
var error = location.search.split('error=')[1] ? location.search.split('error=')[1] : '0';
if (error == '1') { // error_placeholder
let errorPlaceholder = document.querySelector("[id=\"error_placeholder\"]");
errorPlaceholder.innerHTML = "Try to buy more than the remaining places";
errorPlaceholder.style.display = 'block';
// alert('error1');
}
reloadCart();
/*document.querySelectorAll("[id='applyCoupone']").forEach(function(applyCouponeButton){
applyCouponeButton.addEventListener('click', function (e) {
let coupon = document.getElementById('inputCoupone').value;
if (coupon != null){
}
});
});*/
var form = document.getElementById("couponForm");
if (form != null) {
async function handleSubmit(event) {
event.preventDefault();
// var status = document.getElementById("myFormStatus");
var data = new FormData(event.target);
fetch(event.target.action, {
method: "post",
body: data
}).then(response => {
reloadCart();
/*if (response.ok) {
status.innerHTML = "Thanks for your submission!";
form.reset()
} else {
response.json().then(data => {
if (Object.hasOwn(data, 'errors')) {
status.innerHTML = data["errors"].map(error => error["message"]).join(", ")
} else {
status.innerHTML = "Oops! There was a problem submitting your form"
}
})
}*/
}).catch(error => {
// status.innerHTML = "Oops! There was a problem submitting your form"
});
}
form.addEventListener("submit", handleSubmit)
}
})
document.addEventListener('DOMContentLoaded', function () {
//NEW COURSES
let xmlhttp1 = new XMLHttpRequest();
xmlhttp1.overrideMimeType('text/xml');
xmlhttp1.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
let coursesContentHtmlList = new DOMParser().parseFromString(this.responseText, 'text/html');
coursesContentHtmlList.querySelectorAll('body div[role="list-view"]').forEach(function (el, index) {
$('.courses-active').slick('slickAdd', el);
})
}
}
xmlhttp1.open("GET", "/entity/roster/entityRosterView.html?entityRosterId=9&no_header=true", true);
xmlhttp1.send();
})