nagasurendra commited on
Commit
e0e0b32
·
verified ·
1 Parent(s): 89782d0

Update templates/menu.html

Browse files
Files changed (1) hide show
  1. templates/menu.html +3 -138
templates/menu.html CHANGED
@@ -1976,144 +1976,9 @@
1976
  }
1977
  form.submit();
1978
  }
1979
- function stopSpeechRecognition() {
1980
- if (recognition) {
1981
- recognition.stop();
1982
- document.getElementById('micIcon').classList.remove('active');
1983
- const micModal = bootstrap.Modal.getInstance(document.getElementById('micModal'));
1984
- if (micModal) {
1985
- micModal.hide();
1986
- resetMicModal();
1987
- }
1988
- }
1989
- }
1990
- function resetMicModal() {
1991
- document.getElementById('mic-status').textContent = 'Say the name of a menu item...';
1992
- document.getElementById('mic-status').style.display = 'block';
1993
- document.getElementById('mic-item-details').style.display = 'none';
1994
- document.getElementById('mic-item-image').src = '';
1995
- document.getElementById('mic-item-name').textContent = '';
1996
- }
1997
- document.addEventListener('DOMContentLoaded', function () {
1998
- const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
1999
- if (SpeechRecognition) {
2000
- recognition = new SpeechRecognition();
2001
- recognition.continuous = false;
2002
- recognition.interimResults = false;
2003
- recognition.lang = 'en-US';
2004
- recognition.onstart = function () {
2005
- document.getElementById('micIcon').classList.add('active');
2006
- document.getElementById('mic-status').textContent = 'Listening...';
2007
- document.getElementById('mic-item-details').style.display = 'none';
2008
- const micModal = new bootstrap.Modal(document.getElementById('micModal'));
2009
- micModal.show();
2010
- };
2011
- recognition.onresult = function (event) {
2012
- const transcript = event.results[0][0].transcript.trim().toLowerCase();
2013
- document.getElementById('searchBar').value = transcript;
2014
- const menuCards = document.querySelectorAll('.menu-card');
2015
- let matchedItem = null;
2016
- let matchedCard = null;
2017
- menuCards.forEach(card => {
2018
- const itemName = card.getAttribute('data-item-name').toLowerCase();
2019
- const itemSection = card.getAttribute('data-item-section');
2020
- if (itemName.includes(transcript) || transcript.includes(itemName)) {
2021
- matchedItem = menuItems.find(item =>
2022
- item.name.toLowerCase() === card.getAttribute('data-item-name').toLowerCase() &&
2023
- item.section === itemSection
2024
- );
2025
- matchedCard = card;
2026
- }
2027
- });
2028
- const micModal = bootstrap.Modal.getInstance(document.getElementById('micModal'));
2029
- if (matchedItem && matchedCard) {
2030
- document.getElementById('mic-status').style.display = 'none';
2031
- const micItemDetails = document.getElementById('mic-item-details');
2032
- const micItemImage = document.getElementById('mic-item-image');
2033
- const micItemName = document.getElementById('mic-item-name');
2034
- micItemImage.src = matchedItem.image || '/static/placeholder.jpg';
2035
- micItemName.textContent = matchedItem.name;
2036
- micItemDetails.style.display = 'block';
2037
- matchedCard.classList.add('highlighted');
2038
- matchedCard.scrollIntoView({ behavior: 'smooth', block: 'center' });
2039
- const toggleLink = matchedCard.querySelector('.toggle-details');
2040
- if (toggleLink) {
2041
- toggleLink.click();
2042
- }
2043
- const buttonContainer = matchedCard.querySelector('.button-container');
2044
- if (buttonContainer) {
2045
- const section = buttonContainer.getAttribute('data-item-section');
2046
- setTimeout(() => {
2047
- micModal.hide();
2048
- if (section === 'Soft Drinks') {
2049
- showSoftDrinkModal(buttonContainer.querySelector('.add-to-cart-btn'));
2050
- } else {
2051
- const name = buttonContainer.getAttribute('data-item-name');
2052
- const price = buttonContainer.getAttribute('data-item-price');
2053
- const image = buttonContainer.getAttribute('data-item-image2');
2054
- const description = buttonContainer.getAttribute('data-item-description');
2055
- const category = buttonContainer.getAttribute('data-item-category');
2056
- showItemDetails(name, price, image, description, section, category);
2057
- const itemModal = new bootstrap.Modal(document.getElementById('itemModal'));
2058
- itemModal.show();
2059
- }
2060
- resetMicModal();
2061
- }, 1500);
2062
- }
2063
- } else {
2064
- document.getElementById('mic-status').textContent = 'No matching item found. Try again...';
2065
- setTimeout(() => {
2066
- micModal.hide();
2067
- resetMicModal();
2068
- alert('No matching menu item found for: ' + transcript);
2069
- }, 1500);
2070
- }
2071
- };
2072
- recognition.onerror = function (event) {
2073
- console.error('Speech recognition error:', event.error);
2074
- document.getElementById('mic-status').textContent = 'Error occurred. Please try again.';
2075
- document.getElementById('micIcon').classList.remove('active');
2076
- const micModal = bootstrap.Modal.getInstance(document.getElementById('micModal'));
2077
- setTimeout(() => {
2078
- micModal.hide();
2079
- resetMicModal();
2080
- alert('Speech recognition failed: ' + event.error);
2081
- }, 1500);
2082
- };
2083
- recognition.onend = function () {
2084
- document.getElementById('micIcon').classList.remove('active');
2085
- const micModal = bootstrap.Modal.getInstance(document.getElementById('micModal'));
2086
- if (micModal && !matchedItem) {
2087
- micModal.hide();
2088
- resetMicModal();
2089
- }
2090
- };
2091
- }
2092
- document.getElementById('micIcon').addEventListener('click', function () {
2093
- if (!recognition) {
2094
- alert('Speech recognition is not supported in this browser.');
2095
- return;
2096
- }
2097
- if (this.classList.contains('active')) {
2098
- stopSpeechRecognition();
2099
- } else {
2100
- resetMicModal();
2101
- this.classList.add('active');
2102
- recognition.start();
2103
- }
2104
- });
2105
- document.getElementById('increaseQuantity').addEventListener('click', function () {
2106
- const quantityInput = document.getElementById('quantityInput');
2107
- let quantity = parseInt(quantityInput.value) || 1;
2108
- quantityInput.value = quantity + 1;
2109
- });
2110
- document.getElementById('decreaseQuantity').addEventListener('click', function () {
2111
- const quantityInput = document.getElementById('quantityInput');
2112
- let quantity = parseInt(quantityInput.value) || 1;
2113
- if (quantity > 1) {
2114
- quantityInput.value = quantity - 1;
2115
- }
2116
- });
2117
  document.addEventListener('DOMContentLoaded', function () {
2118
  const avatarContainer = document.querySelector('.avatar-dropdown-container');
2119
  const dropdownMenu = document.querySelector('.dropdown-menu');
 
1976
  }
1977
  form.submit();
1978
  }
1979
+
1980
+
1981
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1982
  document.addEventListener('DOMContentLoaded', function () {
1983
  const avatarContainer = document.querySelector('.avatar-dropdown-container');
1984
  const dropdownMenu = document.querySelector('.dropdown-menu');