HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
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();
    });
}