File: /var/www/javago-portal-updates/public/assets/js/cafe/repeaterPriceSize.js
String.prototype.replaceAll = function (search, replacement) {
try {
return this.replace(new RegExp(search, "g"), replacement);
} catch (e) {}
};
let priceContainer = $("#item_size_price_container").children("fieldset");
let priceTemplate = $("#item_size_price_template").html();
let selectedSize = [];
let selectedAddon = [];
let app = {
dataToHtml: function (html, object) {
try {
$.each(object, function (index, value) {
html = html.replaceAll("__" + index + "__", value);
});
return html.replace(/\__(.+?)\__/g, "");
} catch (e) {}
},
renderHtmldata: function (template, data) {
var html = "";
if (template) {
html = html + app.dataToHtml(template, data);
}
return html;
},
};
let index = 0;
if (!addPage) {
index = priceContainer.children().length;
}
if (index === 0) {
addItemSizeAndPrice(); // Add the first item by default
}
function addItemSizeAndPrice() {
priceContainer.append(
app.renderHtmldata(priceTemplate, {
index: index,
})
);
// if (index) {
if (index >= 1) {
$(".delete_" + index).show();
} else {
$(".add_size_price").show();
}
index++;
if (
priceContainer.children().length >=
Number(priceContainer.data("repeater"))
) {
$(".add_size_price").hide();
}
// if (priceContainer.children().length > 1) {
// $(".delete_btn").show();
// }
updateSizeOptions();
}
function deleteItemSizeAndPrice(index) {
delete selectedSize[index];
$("#item_size_price_template_" + index).remove();
if (
priceContainer.children().length >=
Number(priceContainer.data("repeater"))
) {
$(".add_size_price").hide();
} else {
$(".add_size_price").show();
}
// if (priceContainer.children().length <= 1) {
// priceContainer.children().first().children(".delete_btn").hide();
// }
updateSizeOptions();
}
function selectSize(index) {
if (index >= 0) {
if ($(".item_size_id_" + index).val() != "") {
// if ($(".item_size_id_" + index).val() == sizeNA) {
// $(".add_size_price").hide();
// priceContainer
// .children()
// .first()
// .children(".delete_btn")
// .hide();
// } else {
// selectedSize[sizeNA] = sizeNA;
selectedSize[index] = $(".item_size_id_" + index).val();
if (
priceContainer.children().length >=
Number(priceContainer.data("repeater"))
) {
$(".add_size_price").hide();
} else {
$(".add_size_price").show();
}
// $(".delete_btn").show();
// }
} else {
if (priceContainer.children().length > 1) {
delete selectedSize[index];
$(".add_size_price").hide();
if (
priceContainer.children().length <
Number(priceContainer.data("repeater"))
) {
$(".add_size_price").show();
}
} else {
$(".add_size_price").show();
selectedSize = [];
}
// $(".delete_btn").show();
}
updateSizeOptions();
} else {
// delete selectedSize[sizeNA];
updateSizeOptions();
}
// if (priceContainer.children().length <= 1) {
// priceContainer.children().first().children(".delete_btn").hide();
// }
}
function updateSizeOptions() {
$(".size_selection option").show();
$.each(selectedSize, function (key, val) {
$(".size_selection option[value='" + val + "']").hide();
});
}