Spaces:
Sleeping
Sleeping
Update templates/menu.html
Browse files- templates/menu.html +22 -56
templates/menu.html
CHANGED
|
@@ -229,40 +229,13 @@
|
|
| 229 |
border-color: #006400;
|
| 230 |
}
|
| 231 |
.addon-section .form-check-input:checked::before {
|
| 232 |
-
content: '';
|
| 233 |
font-size: 14px;
|
| 234 |
position: absolute;
|
| 235 |
top: 3px;
|
| 236 |
left: 4px;
|
| 237 |
color: white;
|
| 238 |
}
|
| 239 |
-
.addon-section .form-check-input[type="radio"] {
|
| 240 |
-
-webkit-appearance: none;
|
| 241 |
-
-moz-appearance: none;
|
| 242 |
-
appearance: none;
|
| 243 |
-
width: 20px;
|
| 244 |
-
height: 20px;
|
| 245 |
-
border: 2px solid #343a40;
|
| 246 |
-
border-radius: 50%;
|
| 247 |
-
background-color: #f0f0f0;
|
| 248 |
-
position: relative;
|
| 249 |
-
margin-right: 10px;
|
| 250 |
-
}
|
| 251 |
-
.addon-section .form-check-input[type="radio"]:checked {
|
| 252 |
-
background-color: #006400;
|
| 253 |
-
border-color: #006400;
|
| 254 |
-
}
|
| 255 |
-
.addon-section .form-check-input[type="radio"]:checked::before {
|
| 256 |
-
content: '';
|
| 257 |
-
position: absolute;
|
| 258 |
-
top: 50%;
|
| 259 |
-
left: 50%;
|
| 260 |
-
transform: translate(-50%, -50%);
|
| 261 |
-
width: 10px;
|
| 262 |
-
height: 10px;
|
| 263 |
-
background-color: white;
|
| 264 |
-
border-radius: 50%;
|
| 265 |
-
}
|
| 266 |
.addon-section .form-check-label {
|
| 267 |
font-size: 16px;
|
| 268 |
margin-left: 5px;
|
|
@@ -606,7 +579,7 @@
|
|
| 606 |
const optionId = `addon-spice-level-${option}`;
|
| 607 |
const optionHTML = `
|
| 608 |
<div class="form-check">
|
| 609 |
-
<input type="
|
| 610 |
<label class="form-check-label" for="${optionId}">
|
| 611 |
${option}
|
| 612 |
</label>
|
|
@@ -640,23 +613,13 @@
|
|
| 640 |
const listItem = document.createElement('div');
|
| 641 |
listItem.classList.add('form-check');
|
| 642 |
|
| 643 |
-
|
| 644 |
-
|
| 645 |
-
|
| 646 |
-
|
| 647 |
-
|
| 648 |
-
|
| 649 |
-
|
| 650 |
-
`;
|
| 651 |
-
} else {
|
| 652 |
-
listItem.innerHTML = `
|
| 653 |
-
<input type="checkbox" class="form-check-input addon-option" id="${optionId}" value="${option}"
|
| 654 |
-
data-name="${option}" data-group="${addon.name}" data-price="${addon.extra_charge ? addon.extra_charge_amount : 0}">
|
| 655 |
-
<label class="form-check-label" for="${optionId}">
|
| 656 |
-
${option} ${addon.extra_charge ? `($${addon.extra_charge_amount})` : ''}
|
| 657 |
-
</label>
|
| 658 |
-
`;
|
| 659 |
-
}
|
| 660 |
optionsContainer.appendChild(listItem);
|
| 661 |
});
|
| 662 |
sectionDiv.appendChild(optionsContainer);
|
|
@@ -704,7 +667,7 @@
|
|
| 704 |
}
|
| 705 |
|
| 706 |
document.addEventListener('click', function(event) {
|
| 707 |
-
if (event.target.classList.contains('addon-option')) {
|
| 708 |
handleAddonClick(event.target);
|
| 709 |
}
|
| 710 |
});
|
|
@@ -712,8 +675,16 @@
|
|
| 712 |
function handleAddonClick(checkbox) {
|
| 713 |
const groupName = checkbox.getAttribute('data-group');
|
| 714 |
const isMultiSelectGroup = ["Extra Toppings", "Choose Raita/Sides", "Select Dip/Sauce", "Extra Add-ons", "Make it a Combo", "Beverages", "Sauces"].includes(groupName);
|
| 715 |
-
|
| 716 |
-
if (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 717 |
const checkboxes = document.querySelectorAll(`.addon-option[data-group="${groupName}"]`);
|
| 718 |
checkboxes.forEach(otherCheckbox => {
|
| 719 |
if (otherCheckbox !== checkbox) {
|
|
@@ -775,12 +746,7 @@
|
|
| 775 |
|
| 776 |
const addonsListOptions = document.querySelectorAll('#addons-list .addon-option');
|
| 777 |
addonsListOptions.forEach(option => {
|
| 778 |
-
if (option.
|
| 779 |
-
selectedAddOns.push({
|
| 780 |
-
name: option.getAttribute('data-name') || 'Default Name',
|
| 781 |
-
price: parseFloat(option.getAttribute('data-price') || 0)
|
| 782 |
-
});
|
| 783 |
-
} else if (option.type === "checkbox" && option.checked) {
|
| 784 |
selectedAddOns.push({
|
| 785 |
name: option.getAttribute('data-name') || 'Default Name',
|
| 786 |
price: parseFloat(option.getAttribute('data-price') || 0)
|
|
@@ -801,7 +767,7 @@
|
|
| 801 |
name: option.getAttribute('data-name') || 'Default Type',
|
| 802 |
price: 0
|
| 803 |
}));
|
| 804 |
-
const spiceLevelOption = document.querySelector('#spice-level-options input[type="
|
| 805 |
const spiceLevelOptions = spiceLevelOption ? [{
|
| 806 |
name: spiceLevelOption.getAttribute('data-name') || 'Default Spice Level',
|
| 807 |
price: 0
|
|
|
|
| 229 |
border-color: #006400;
|
| 230 |
}
|
| 231 |
.addon-section .form-check-input:checked::before {
|
| 232 |
+
content: '\2713';
|
| 233 |
font-size: 14px;
|
| 234 |
position: absolute;
|
| 235 |
top: 3px;
|
| 236 |
left: 4px;
|
| 237 |
color: white;
|
| 238 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 239 |
.addon-section .form-check-label {
|
| 240 |
font-size: 16px;
|
| 241 |
margin-left: 5px;
|
|
|
|
| 579 |
const optionId = `addon-spice-level-${option}`;
|
| 580 |
const optionHTML = `
|
| 581 |
<div class="form-check">
|
| 582 |
+
<input type="checkbox" class="form-check-input spice-level-option" id="${optionId}" value="${option}" data-name="${option}" data-group="Spice Level">
|
| 583 |
<label class="form-check-label" for="${optionId}">
|
| 584 |
${option}
|
| 585 |
</label>
|
|
|
|
| 613 |
const listItem = document.createElement('div');
|
| 614 |
listItem.classList.add('form-check');
|
| 615 |
|
| 616 |
+
listItem.innerHTML = `
|
| 617 |
+
<input type="checkbox" class="form-check-input ${addon.name.toLowerCase() === 'spice level' ? 'spice-level-option' : 'addon-option'}" id="${optionId}" value="${option}"
|
| 618 |
+
data-name="${option}" data-group="${addon.name}" data-price="${addon.extra_charge ? addon.extra_charge_amount : 0}">
|
| 619 |
+
<label class="form-check-label" for="${optionId}">
|
| 620 |
+
${option} ${addon.extra_charge ? `($${addon.extra_charge_amount})` : ''}
|
| 621 |
+
</label>
|
| 622 |
+
`;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 623 |
optionsContainer.appendChild(listItem);
|
| 624 |
});
|
| 625 |
sectionDiv.appendChild(optionsContainer);
|
|
|
|
| 667 |
}
|
| 668 |
|
| 669 |
document.addEventListener('click', function(event) {
|
| 670 |
+
if (event.target.classList.contains('spice-level-option') || event.target.classList.contains('addon-option')) {
|
| 671 |
handleAddonClick(event.target);
|
| 672 |
}
|
| 673 |
});
|
|
|
|
| 675 |
function handleAddonClick(checkbox) {
|
| 676 |
const groupName = checkbox.getAttribute('data-group');
|
| 677 |
const isMultiSelectGroup = ["Extra Toppings", "Choose Raita/Sides", "Select Dip/Sauce", "Extra Add-ons", "Make it a Combo", "Beverages", "Sauces"].includes(groupName);
|
| 678 |
+
|
| 679 |
+
if (groupName.toLowerCase() === "spice level") {
|
| 680 |
+
const allSpiceLevelCheckboxes = document.querySelectorAll('.spice-level-option');
|
| 681 |
+
allSpiceLevelCheckboxes.forEach(otherCheckbox => {
|
| 682 |
+
if (otherCheckbox !== checkbox) {
|
| 683 |
+
otherCheckbox.checked = false;
|
| 684 |
+
}
|
| 685 |
+
});
|
| 686 |
+
}
|
| 687 |
+
else if (!isMultiSelectGroup) {
|
| 688 |
const checkboxes = document.querySelectorAll(`.addon-option[data-group="${groupName}"]`);
|
| 689 |
checkboxes.forEach(otherCheckbox => {
|
| 690 |
if (otherCheckbox !== checkbox) {
|
|
|
|
| 746 |
|
| 747 |
const addonsListOptions = document.querySelectorAll('#addons-list .addon-option');
|
| 748 |
addonsListOptions.forEach(option => {
|
| 749 |
+
if (option.checked) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 750 |
selectedAddOns.push({
|
| 751 |
name: option.getAttribute('data-name') || 'Default Name',
|
| 752 |
price: parseFloat(option.getAttribute('data-price') || 0)
|
|
|
|
| 767 |
name: option.getAttribute('data-name') || 'Default Type',
|
| 768 |
price: 0
|
| 769 |
}));
|
| 770 |
+
const spiceLevelOption = document.querySelector('#spice-level-options input[type="checkbox"].spice-level-option:checked');
|
| 771 |
const spiceLevelOptions = spiceLevelOption ? [{
|
| 772 |
name: spiceLevelOption.getAttribute('data-name') || 'Default Spice Level',
|
| 773 |
price: 0
|