lokesh341 commited on
Commit
998ebbd
·
verified ·
1 Parent(s): 4caeded

Update templates/menu_page.html

Browse files
Files changed (1) hide show
  1. templates/menu_page.html +111 -28
templates/menu_page.html CHANGED
@@ -57,7 +57,7 @@
57
  #main-course-btn:hover, #appetizer-btn:hover {
58
  background-color: #FF7F00;
59
  }
60
- #cart-summary {
61
  display: none;
62
  }
63
  </style>
@@ -77,6 +77,7 @@
77
  <h1>Main Course Menu</h1>
78
  <div id="main-course-items"></div>
79
  <button id="back-to-category-btn">Back to Category Selection</button>
 
80
  </div>
81
 
82
  <!-- Page 3: Appetizers Menu -->
@@ -84,6 +85,23 @@
84
  <h1>Appetizers Menu</h1>
85
  <div id="appetizer-items"></div>
86
  <button id="back-to-category-btn2">Back to Category Selection</button>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  </div>
88
 
89
  <script>
@@ -104,30 +122,18 @@ const menuData = {
104
  const categoryButtons = document.getElementById('page1');
105
  const mainCoursePage = document.getElementById('main-course-page');
106
  const appetizerPage = document.getElementById('appetizer-page');
 
 
107
  const backToCategoryBtns = document.querySelectorAll('[id^="back-to-category-btn"]');
 
 
 
108
 
109
- // Event listeners for buttons to navigate between pages
110
- document.getElementById("main-course-btn").addEventListener("click", () => {
111
- categoryButtons.style.display = "none";
112
- mainCoursePage.style.display = "block";
113
- displayMenuItems('Main Course');
114
- });
115
-
116
- document.getElementById("appetizer-btn").addEventListener("click", () => {
117
- categoryButtons.style.display = "none";
118
- appetizerPage.style.display = "block";
119
- displayMenuItems('Appetizers');
120
- });
121
-
122
- backToCategoryBtns.forEach(button => {
123
- button.addEventListener("click", () => {
124
- mainCoursePage.style.display = "none";
125
- appetizerPage.style.display = "none";
126
- categoryButtons.style.display = "block";
127
- });
128
- });
129
 
130
- // Function to populate menu items based on category
131
  function displayMenuItems(category) {
132
  const menuContainer = category === 'Main Course' ? document.getElementById('main-course-items') : document.getElementById('appetizer-items');
133
  menuContainer.innerHTML = '';
@@ -148,7 +154,6 @@ function displayMenuItems(category) {
148
  }
149
 
150
  // Function to add an item to the cart
151
- let cart = [];
152
  function addToCart(itemName, quantity) {
153
  const item = findItem(itemName);
154
  cart.push({ name: item.name, price: item.price, quantity: quantity });
@@ -156,10 +161,92 @@ function addToCart(itemName, quantity) {
156
 
157
  // Function to find item in the menu
158
  function findItem(itemName) {
159
- const menu = menuData['Main Course']; // Default category to check first
160
  return menu.find(item => item.name.toLowerCase() === itemName.toLowerCase());
161
  }
162
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
163
  // Voice greeting for menu categories
164
  const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();
165
  recognition.lang = "en-US";
@@ -170,7 +257,6 @@ function speak(text) {
170
  }
171
 
172
  window.onload = function() {
173
- // Sample menu data for Main Course and Appetizers
174
  menuData = {
175
  'Main Course': [
176
  { name: "Chicken Biryani", price: 250 },
@@ -183,10 +269,7 @@ window.onload = function() {
183
  ]
184
  };
185
 
186
- // Automatically greet the user and prompt for category selection
187
  speak("Welcome to Biryani Hub! We have the following categories: Main Course and Appetizers. Please say 'Main Course' or 'Appetizers' to select a category.");
188
-
189
- // Automatically trigger voice recognition for category selection
190
  recognition.start();
191
  recognition.onresult = (event) => {
192
  const categoryCommand = event.results[0][0].transcript.toLowerCase();
 
57
  #main-course-btn:hover, #appetizer-btn:hover {
58
  background-color: #FF7F00;
59
  }
60
+ #cart-summary, #place-order-summary {
61
  display: none;
62
  }
63
  </style>
 
77
  <h1>Main Course Menu</h1>
78
  <div id="main-course-items"></div>
79
  <button id="back-to-category-btn">Back to Category Selection</button>
80
+ <button id="view-cart-btn">View Cart</button>
81
  </div>
82
 
83
  <!-- Page 3: Appetizers Menu -->
 
85
  <h1>Appetizers Menu</h1>
86
  <div id="appetizer-items"></div>
87
  <button id="back-to-category-btn2">Back to Category Selection</button>
88
+ <button id="view-cart-btn2">View Cart</button>
89
+ </div>
90
+
91
+ <!-- Page 4: View Cart -->
92
+ <div id="view-cart-page" class="menu-container" style="display: none;">
93
+ <h1>Your Cart</h1>
94
+ <div id="cart-details"></div>
95
+ <button id="place-order-btn">Place Final Order</button>
96
+ <button id="back-to-menu-btn">Back to Menu</button>
97
+ </div>
98
+
99
+ <!-- Page 5: Place Order -->
100
+ <div id="place-order-page" class="menu-container" style="display: none;">
101
+ <h1>Place Your Order</h1>
102
+ <div id="place-order-summary"></div>
103
+ <button id="confirm-order-btn">Confirm Order</button>
104
+ <button id="back-to-cart-btn">Back to Cart</button>
105
  </div>
106
 
107
  <script>
 
122
  const categoryButtons = document.getElementById('page1');
123
  const mainCoursePage = document.getElementById('main-course-page');
124
  const appetizerPage = document.getElementById('appetizer-page');
125
+ const viewCartPage = document.getElementById('view-cart-page');
126
+ const placeOrderPage = document.getElementById('place-order-page');
127
  const backToCategoryBtns = document.querySelectorAll('[id^="back-to-category-btn"]');
128
+ const backToMenuBtns = document.querySelectorAll('[id^="back-to-menu-btn"]');
129
+ const cartDetails = document.getElementById("cart-details");
130
+ const placeOrderSummary = document.getElementById("place-order-summary");
131
 
132
+ // Global cart variable to store items
133
+ let cart = [];
134
+ let menuData = {};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
135
 
136
+ // Function to display menu items based on category
137
  function displayMenuItems(category) {
138
  const menuContainer = category === 'Main Course' ? document.getElementById('main-course-items') : document.getElementById('appetizer-items');
139
  menuContainer.innerHTML = '';
 
154
  }
155
 
156
  // Function to add an item to the cart
 
157
  function addToCart(itemName, quantity) {
158
  const item = findItem(itemName);
159
  cart.push({ name: item.name, price: item.price, quantity: quantity });
 
161
 
162
  // Function to find item in the menu
163
  function findItem(itemName) {
164
+ const menu = menuData['Main Course'];
165
  return menu.find(item => item.name.toLowerCase() === itemName.toLowerCase());
166
  }
167
 
168
+ // Function to display cart details
169
+ function showCartDetails() {
170
+ if (cart.length > 0) {
171
+ let cartHtml = "";
172
+ cart.forEach(item => {
173
+ cartHtml += `<p>${item.quantity} x ${item.name} - ₹${item.price * item.quantity}</p>`;
174
+ });
175
+ cartDetails.innerHTML = cartHtml;
176
+ viewCartPage.style.display = "block";
177
+ speak(`Your cart contains ${cart.length} items.`);
178
+ } else {
179
+ speak("Your cart is empty.");
180
+ }
181
+ }
182
+
183
+ // Function to place the order
184
+ function showPlaceOrder() {
185
+ if (cart.length > 0) {
186
+ let summaryHtml = "";
187
+ cart.forEach(item => {
188
+ summaryHtml += `<p>${item.quantity} x ${item.name} - ₹${item.price * item.quantity}</p>`;
189
+ });
190
+ placeOrderSummary.innerHTML = summaryHtml;
191
+ placeOrderPage.style.display = "block";
192
+ } else {
193
+ speak("Your cart is empty. Please add items to the cart first.");
194
+ }
195
+ }
196
+
197
+ // Event listeners for page navigation
198
+ document.getElementById("main-course-btn").addEventListener("click", () => {
199
+ categoryButtons.style.display = "none";
200
+ mainCoursePage.style.display = "block";
201
+ displayMenuItems('Main Course');
202
+ });
203
+
204
+ document.getElementById("appetizer-btn").addEventListener("click", () => {
205
+ categoryButtons.style.display = "none";
206
+ appetizerPage.style.display = "block";
207
+ displayMenuItems('Appetizers');
208
+ });
209
+
210
+ backToCategoryBtns.forEach(button => {
211
+ button.addEventListener("click", () => {
212
+ mainCoursePage.style.display = "none";
213
+ appetizerPage.style.display = "none";
214
+ categoryButtons.style.display = "block";
215
+ });
216
+ });
217
+
218
+ backToMenuBtns.forEach(button => {
219
+ button.addEventListener("click", () => {
220
+ viewCartPage.style.display = "none";
221
+ placeOrderPage.style.display = "none";
222
+ categoryButtons.style.display = "block";
223
+ });
224
+ });
225
+
226
+ // Buttons for View Cart and Place Order
227
+ document.getElementById("view-cart-btn").addEventListener("click", () => {
228
+ showCartDetails();
229
+ mainCoursePage.style.display = "none";
230
+ appetizerPage.style.display = "none";
231
+ });
232
+
233
+ document.getElementById("view-cart-btn2").addEventListener("click", () => {
234
+ showCartDetails();
235
+ mainCoursePage.style.display = "none";
236
+ appetizerPage.style.display = "none";
237
+ });
238
+
239
+ document.getElementById("place-order-btn").addEventListener("click", () => {
240
+ showPlaceOrder();
241
+ viewCartPage.style.display = "none";
242
+ });
243
+
244
+ document.getElementById("confirm-order-btn").addEventListener("click", () => {
245
+ speak("Your order has been placed successfully. Thank you for visiting Biryani Hub.");
246
+ placeOrderPage.style.display = "none";
247
+ categoryButtons.style.display = "block";
248
+ });
249
+
250
  // Voice greeting for menu categories
251
  const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();
252
  recognition.lang = "en-US";
 
257
  }
258
 
259
  window.onload = function() {
 
260
  menuData = {
261
  'Main Course': [
262
  { name: "Chicken Biryani", price: 250 },
 
269
  ]
270
  };
271
 
 
272
  speak("Welcome to Biryani Hub! We have the following categories: Main Course and Appetizers. Please say 'Main Course' or 'Appetizers' to select a category.");
 
 
273
  recognition.start();
274
  recognition.onresult = (event) => {
275
  const categoryCommand = event.results[0][0].transcript.toLowerCase();