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/admin.javaapp.co.uk/public/assets/js/cafe/addEditItem.js
$(document).ready(function () {
    // if (addPage) {
    //     addItemSizeAndPrice();
    // }

    // $('#is_multi_size').click(function () {
    //     if ($('#is_multi_size').prop('checked')) {
    //         $('#multi_size').show();
    //     } else {
    //         $('#multi_size').hide();
    //     }
    // });

    // $('[name="defaultPrice"]').click(function(){
    //     console.log($(this).prev());
    // });

    function formatState(state) {
        if (!state.id) {
            return state.text;
        }
        var $state = $(
            '<span><img src="' +
            $(state.element).attr("data-src") +
            '" class="img-flag my-auto mr-2" /> ' +
            state.text +
            "</span>"
        );
        return $state;
    }
    $("#item_image_id").select2({
        minimumResultsForSearch: false,
        templateResult: formatState,
        templateSelection: formatState,
    });

    $("#item_category_id").select2({
        minimumResultsForSearch: Infinity,
    });

    $("#item_type_id").select2({
        minimumResultsForSearch: Infinity,
        // minimumResultsForSearch: false,
    });
    $("#item_option").select2({
        minimumResultsForSearch: Infinity,
        placeholder: selectItemOption,
    });

    // $(".addon_item").select2({
    //     minimumResultsForSearch: Infinity,
    // });

    $(".select2").removeClass("mb-4");

    $("#cafe_menu_form").submit(function () {
        // if ($('#is_multi_size').prop('checked')) {
        $('#cafe_menu_form [name*="item_size_id"]').each(function () {
            $(this).rules("add", {
                required: {
                    depends: function (element) {
                        return document.getElementById('item[' + element.getAttribute('data-size') + '][item_price]').value != '';
                    },
                },
                messages: {
                    required: validation.item_size_id_required,
                },
            });
        });

        $('#cafe_menu_form [name*="item_price]"]').each(function () {
            $(this).rules("add", {
                required: {
                    depends: function (element) {
                        return document.getElementById('item[' + element.getAttribute('data-size') + '][item_size_id]').value != '';
                    },
                },
                maxlength: 6,
                messages: {
                    required: validation.item_price_required,
                    maxlength: validation.item_price_maxlength,
                },
            });
        });
        // }
    });

    $("#cafe_menu_form").validate({
        ignore: [],
        rules: {
            item_image_id: {
                required: true,
            },
            item_name: {
                required: true,
                // minlength: 5,
                maxlength: 50,
            },
            item_category_id: {
                required: true,
            },
            item_type_id: {
                required: true,
            },
            // item_price: {
            //     required: true,
            //     maxlength: 6,
            // },
            item_description: {
                required: true,
                // minlength: 8,
                minlength: 5,
                maxlength: 500,
            },
            // "item_option[]": {
            //     required: true,
            // },
        },
        messages: {
            item_image_id: {
                required: validation.item_image_id_required,
            },
            item_name: {
                required: validation.item_name_required,
                minlength: validation.item_name_minlength,
                maxlength: validation.item_name_maxlength,
            },
            item_category_id: {
                required: validation.item_category_id_required,
            },
            item_type_id: {
                required: validation.item_type_id_required,
            },
            // item_price: {
            //     required: validation.item_price_required,
            //     maxlength: validation.item_price_maxlength,
            // },
            item_description: {
                required: validation.item_description_required,
                minlength: validation.item_description_minlength,
                maxlength: validation.item_description_maxlength,
            },
            // "item_option[]": {
            //     required: validation.item_option_required,
            // },
        },
        errorElement: "span",
        errorPlacement: function (error, element) {
            error.addClass("invalid-feedback");
            if (element.attr("name") == "profile_picture") {
                error.appendTo("#profile_picture_error");
            } else {
                element.closest(".form-group").append(error);
            }
        },
        highlight: function (element, errorClass, validClass) {
            $(element).addClass("is-invalid");
        },
        unhighlight: function (element, errorClass, validClass) {
            $(element).removeClass("is-invalid");
        },
    });

    $("#item_image_id").change(function () {
        $("#item_image_id").valid();
    });

    $("#item_category_id").change(function () {
        $("#item_category_id").valid();
    });

    $("#item_type_id").change(function () {
        $("#item_type_id").valid();
    });
    $("#item_option").change(function () {
        $("#item_option").valid();
    });

    function getAddonsItems(element, itemId) {
        $.ajax({
            type: "POST",
            url: getAddonItems,
            data: {
                id: itemId,
            },
            dataType: "json",
            success: function (response) {
                if (response.status == 200) {
                    element.parent().children(".details").html(response.html);
                } else {
                    element.parent().children(".details").html("");
                    $.growl.error({
                        title: "error",
                        message: response.message,
                    });
                }
            },
            error: function (error) {
                element.parent().children(".details").html("");
                $.growl.error({
                    title: "error",
                    message: somethingWentWrong,
                });
            },
        });
    }

    $(".addon_item").change(function () {
        if ($(this).val() != "") {
            selectedAddon[$(this).data("addon")] = $(this).val();
            updateAddonOptions();
            getAddonsItems($(this), $(this).val());
        } else {
            $(this).parent().children(".details").html("");
            delete selectedAddon[$(this).data("addon")];
            updateAddonOptions();
        }
    });

    $(".addon_item").each(function () {
        if ($(this).val() != "") {
            selectedAddon[$(this).data("addon")] = $(this).val();
            $(".addon_item option").show();
            $.each(selectedAddon, function (key, val) {
                $(".addon_item option[value='" + val + "']").hide();
            });
            getAddonsItems($(this), $(this).val());
        }
    });

    $(".size_selection").each(function () {
        if ($(this).data("size") != "__index__") {
            if ($(this).data("size") >= 0) {
                if ($(this).val() != "") {
                    // if ($(this).val() == sizeNA) {
                    //     $(".add_size_price").hide();
                    //     $(".delete_btn").hide();
                    // } else {
                    //     selectedSize[sizeNA] = sizeNA;
                    selectedSize[$(this).data("size")] = $(this).val();
                    if (
                        priceContainer.children().length >=
                        Number(priceContainer.data("repeater"))
                    ) {
                        $(".add_size_price").hide();
                    } else {
                        $(".add_size_price").show();
                    }
                    $(".delete_" + $(this).data("size")).show();
                    priceContainer
                        .children()
                        .first()
                        .children(".delete_btn")
                        .hide();
                    // }
                } else {
                    selectedSize = [];
                }
                updateSizeOptions();
            } else {
                // delete selectedSize[sizeNA];
                updateSizeOptions();
            }
        }
    });

    function updateAddonOptions() {
        $(".addon_item option").show();
        $.each(selectedAddon, function (key, val) {
            $(".addon_item option[value='" + val + "']").hide();
        });
    }
});