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();
});
}
});