lokesh341 commited on
Commit
143f64e
·
verified ·
1 Parent(s): 0fe3729

Update templates/menu_page.html

Browse files
Files changed (1) hide show
  1. templates/menu_page.html +127 -156
templates/menu_page.html CHANGED
@@ -5,62 +5,75 @@
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
  <title>Biryani Hub Menu</title>
7
  <style>
8
- body {
9
- font-family: Arial, sans-serif;
10
- background-color: #f8f8f8;
11
- margin: 0;
12
- padding: 0;
13
- }
14
- .menu-container {
15
- max-width: 1200px;
16
- margin: 0 auto;
17
- padding: 20px;
18
- background-color: #4169E1;
19
- box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
20
- border-radius: 8px;
21
- margin-top: 50px;
22
- }
23
- h1 {
24
- text-align: center;
25
- font-size: 2.5rem;
26
- color: #87CEFA;
27
- margin-bottom: 30px;
28
- }
29
- .menu-item {
30
- border-bottom: 1px solid #eee;
31
- padding: 15px 0;
32
- display: flex;
33
- justify-content: space-between;
34
- align-items: center;
35
- }
36
- .order-btn {
37
- padding: 10px 20px;
38
- background-color: #4CAF50;
39
- color: white;
40
- border: none;
41
- border-radius: 5px;
42
- cursor: pointer;
43
- }
44
- .order-btn:hover {
45
- background-color: #45a049;
46
- }
47
- #main-course-btn, #appetizer-btn {
48
- padding: 10px 20px;
49
- background-color: orange;
50
- color: white;
51
- border: none;
52
- border-radius: 5px;
53
- cursor: pointer;
54
- font-size: 2.2rem;
55
- margin: 10px 0;
56
- }
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>
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  </head>
65
  <body>
66
 
@@ -70,7 +83,7 @@
70
  <h3 id="category-title">Please select a category:</h3>
71
  <button id="main-course-btn">Main Course</button>
72
  <button id="appetizer-btn">Appetizers</button>
73
- <button id="view-cart-btn">View Cart</button> <!-- View Cart button -->
74
  </div>
75
 
76
  <!-- Page 2: Main Course Menu -->
@@ -78,7 +91,7 @@
78
  <h1>Main Course Menu</h1>
79
  <div id="main-course-items"></div>
80
  <button id="back-to-category-btn">Back to Category Selection</button>
81
- <button id="view-cart-btn2">View Cart</button> <!-- View Cart button -->
82
  </div>
83
 
84
  <!-- Page 3: Appetizers Menu -->
@@ -86,7 +99,7 @@
86
  <h1>Appetizers Menu</h1>
87
  <div id="appetizer-items"></div>
88
  <button id="back-to-category-btn2">Back to Category Selection</button>
89
- <button id="view-cart-btn3">View Cart</button> <!-- View Cart button -->
90
  </div>
91
 
92
  <!-- Page 4: View Cart -->
@@ -94,15 +107,7 @@
94
  <h1>Your Cart</h1>
95
  <div id="cart-details"></div>
96
  <button id="place-order-btn">Place Final Order</button>
97
- <button id="back-to-menu-btn">Back to Menu</button>
98
- </div>
99
-
100
- <!-- Page 5: Place Order -->
101
- <div id="place-order-page" class="menu-container" style="display: none;">
102
- <h1>Place Your Order</h1>
103
- <div id="place-order-summary"></div>
104
- <button id="confirm-order-btn">Confirm Order</button>
105
- <button id="back-to-cart-btn">Back to Cart</button>
106
  </div>
107
 
108
  <script>
@@ -124,17 +129,55 @@ const categoryButtons = document.getElementById('page1');
124
  const mainCoursePage = document.getElementById('main-course-page');
125
  const appetizerPage = document.getElementById('appetizer-page');
126
  const viewCartPage = document.getElementById('view-cart-page');
127
- const placeOrderPage = document.getElementById('place-order-page');
128
  const backToCategoryBtns = document.querySelectorAll('[id^="back-to-category-btn"]');
129
- const backToMenuBtns = document.querySelectorAll('[id^="back-to-menu-btn"]');
130
- const cartDetails = document.getElementById("cart-details");
131
- const placeOrderSummary = document.getElementById("place-order-summary");
132
 
133
- // Global cart variable to store items
134
- let cart = [];
135
- let menuData = {};
 
 
 
136
 
137
- // Function to display menu items based on category
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
138
  function displayMenuItems(category) {
139
  const menuContainer = category === 'Main Course' ? document.getElementById('main-course-items') : document.getElementById('appetizer-items');
140
  menuContainer.innerHTML = '';
@@ -160,88 +203,12 @@ function addToCart(itemName, quantity) {
160
  cart.push({ name: item.name, price: item.price, quantity: quantity });
161
  }
162
 
163
- // Function to display cart details
164
- function showCartDetails() {
165
- if (cart.length > 0) {
166
- let cartHtml = "";
167
- cart.forEach(item => {
168
- cartHtml += `<p>${item.quantity} x ${item.name} - ₹${item.price * item.quantity}</p>`;
169
- });
170
- cartDetails.innerHTML = cartHtml;
171
- viewCartPage.style.display = "block";
172
- speak(`Your cart contains ${cart.length} items.`);
173
- } else {
174
- speak("Your cart is empty.");
175
- }
176
  }
177
 
178
- // Function to place the order
179
- function showPlaceOrder() {
180
- if (cart.length > 0) {
181
- let summaryHtml = "";
182
- cart.forEach(item => {
183
- summaryHtml += `<p>${item.quantity} x ${item.name} - ₹${item.price * item.quantity}</p>`;
184
- });
185
- placeOrderSummary.innerHTML = summaryHtml;
186
- placeOrderPage.style.display = "block";
187
- } else {
188
- speak("Your cart is empty. Please add items to the cart first.");
189
- }
190
- }
191
-
192
- // Event listeners for page navigation
193
- document.getElementById("main-course-btn").addEventListener("click", () => {
194
- categoryButtons.style.display = "none";
195
- mainCoursePage.style.display = "block";
196
- displayMenuItems('Main Course');
197
- });
198
-
199
- document.getElementById("appetizer-btn").addEventListener("click", () => {
200
- categoryButtons.style.display = "none";
201
- appetizerPage.style.display = "block";
202
- displayMenuItems('Appetizers');
203
- });
204
-
205
- backToCategoryBtns.forEach(button => {
206
- button.addEventListener("click", () => {
207
- mainCoursePage.style.display = "none";
208
- appetizerPage.style.display = "none";
209
- categoryButtons.style.display = "block";
210
- });
211
- });
212
-
213
- backToMenuBtns.forEach(button => {
214
- button.addEventListener("click", () => {
215
- viewCartPage.style.display = "none";
216
- placeOrderPage.style.display = "none";
217
- categoryButtons.style.display = "block";
218
- });
219
- });
220
-
221
- // Buttons for View Cart and Place Order
222
- document.getElementById("view-cart-btn").addEventListener("click", () => {
223
- showCartDetails();
224
- mainCoursePage.style.display = "none";
225
- appetizerPage.style.display = "none";
226
- });
227
-
228
- document.getElementById("view-cart-btn2").addEventListener("click", () => {
229
- showCartDetails();
230
- mainCoursePage.style.display = "none";
231
- appetizerPage.style.display = "none";
232
- });
233
-
234
- document.getElementById("place-order-btn").addEventListener("click", () => {
235
- showPlaceOrder();
236
- viewCartPage.style.display = "none";
237
- });
238
-
239
- document.getElementById("confirm-order-btn").addEventListener("click", () => {
240
- speak("Your order has been placed successfully. Thank you for visiting Biryani Hub.");
241
- placeOrderPage.style.display = "none";
242
- categoryButtons.style.display = "block";
243
- });
244
-
245
  // Voice greeting for menu categories
246
  const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();
247
  recognition.lang = "en-US";
@@ -252,6 +219,7 @@ function speak(text) {
252
  }
253
 
254
  window.onload = function() {
 
255
  menuData = {
256
  'Main Course': [
257
  { name: "Chicken Biryani", price: 250 },
@@ -264,7 +232,10 @@ window.onload = function() {
264
  ]
265
  };
266
 
 
267
  speak("Welcome to Biryani Hub! We have the following categories: Main Course and Appetizers. Please say 'Main Course' or 'Appetizers' to select a category.");
 
 
268
  recognition.start();
269
  recognition.onresult = (event) => {
270
  const categoryCommand = event.results[0][0].transcript.toLowerCase();
 
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
  <title>Biryani Hub Menu</title>
7
  <style>
8
+ body {
9
+ font-family: Arial, sans-serif;
10
+ background-color: #f8f8f8;
11
+ margin: 0;
12
+ padding: 0;
13
+ }
14
+ .menu-container {
15
+ max-width: 1200px;
16
+ margin: 0 auto;
17
+ padding: 20px;
18
+ background-color: #4169E1;
19
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
20
+ border-radius: 8px;
21
+ margin-top: 50px;
22
+ }
23
+ h1 {
24
+ text-align: center;
25
+ font-size: 2.5rem;
26
+ color: #87CEFA;
27
+ margin-bottom: 30px;
28
+ }
29
+ .menu-item {
30
+ border-bottom: 1px solid #eee;
31
+ padding: 15px 0;
32
+ display: flex;
33
+ justify-content: space-between;
34
+ align-items: center;
35
+ }
36
+ .order-btn {
37
+ padding: 10px 20px;
38
+ background-color: #4CAF50;
39
+ color: white;
40
+ border: none;
41
+ border-radius: 5px;
42
+ cursor: pointer;
43
+ }
44
+ .order-btn:hover {
45
+ background-color: #45a049;
46
+ }
47
+ #main-course-btn, #appetizer-btn {
48
+ padding: 10px 20px;
49
+ background-color: orange;
50
+ color: white;
51
+ border: none;
52
+ border-radius: 5px;
53
+ cursor: pointer;
54
+ font-size: 2.2rem;
55
+ margin: 10px 0;
56
+ }
57
+ #main-course-btn:hover, #appetizer-btn:hover {
58
+ background-color: #FF7F00;
59
+ }
60
+ #cart-summary {
61
+ display: none;
62
+ }
63
+ #view-cart-btn {
64
+ padding: 10px 20px;
65
+ background-color: #4CAF50;
66
+ color: white;
67
+ border: none;
68
+ border-radius: 5px;
69
+ cursor: pointer;
70
+ font-size: 1.2rem;
71
+ margin-top: 20px;
72
+ }
73
+ #view-cart-btn:hover {
74
+ background-color: #45a049;
75
+ }
76
+ </style>
77
  </head>
78
  <body>
79
 
 
83
  <h3 id="category-title">Please select a category:</h3>
84
  <button id="main-course-btn">Main Course</button>
85
  <button id="appetizer-btn">Appetizers</button>
86
+ <button id="view-cart-btn" onclick="viewCart()">View Cart</button>
87
  </div>
88
 
89
  <!-- Page 2: Main Course Menu -->
 
91
  <h1>Main Course Menu</h1>
92
  <div id="main-course-items"></div>
93
  <button id="back-to-category-btn">Back to Category Selection</button>
94
+ <button id="view-cart-btn" onclick="viewCart()">View Cart</button>
95
  </div>
96
 
97
  <!-- Page 3: Appetizers Menu -->
 
99
  <h1>Appetizers Menu</h1>
100
  <div id="appetizer-items"></div>
101
  <button id="back-to-category-btn2">Back to Category Selection</button>
102
+ <button id="view-cart-btn" onclick="viewCart()">View Cart</button>
103
  </div>
104
 
105
  <!-- Page 4: View Cart -->
 
107
  <h1>Your Cart</h1>
108
  <div id="cart-details"></div>
109
  <button id="place-order-btn">Place Final Order</button>
110
+ <button id="back-to-category-btn3" onclick="backToCategory()">Back to Category Selection</button>
 
 
 
 
 
 
 
 
111
  </div>
112
 
113
  <script>
 
129
  const mainCoursePage = document.getElementById('main-course-page');
130
  const appetizerPage = document.getElementById('appetizer-page');
131
  const viewCartPage = document.getElementById('view-cart-page');
 
132
  const backToCategoryBtns = document.querySelectorAll('[id^="back-to-category-btn"]');
133
+ let cart = []; // Global cart variable to store items
134
+ let menuData = {}; // Will store menu items based on categories
 
135
 
136
+ // Event listeners for buttons to navigate between pages
137
+ document.getElementById("main-course-btn").addEventListener("click", () => {
138
+ categoryButtons.style.display = "none";
139
+ mainCoursePage.style.display = "block";
140
+ displayMenuItems('Main Course');
141
+ });
142
 
143
+ document.getElementById("appetizer-btn").addEventListener("click", () => {
144
+ categoryButtons.style.display = "none";
145
+ appetizerPage.style.display = "block";
146
+ displayMenuItems('Appetizers');
147
+ });
148
+
149
+ backToCategoryBtns.forEach(button => {
150
+ button.addEventListener("click", () => {
151
+ mainCoursePage.style.display = "none";
152
+ appetizerPage.style.display = "none";
153
+ categoryButtons.style.display = "block";
154
+ });
155
+ });
156
+
157
+ // Show Cart page
158
+ function viewCart() {
159
+ viewCartPage.style.display = "block";
160
+ categoryButtons.style.display = "none";
161
+ mainCoursePage.style.display = "none";
162
+ appetizerPage.style.display = "none";
163
+ displayCartDetails();
164
+ }
165
+
166
+ // Show Cart Details on the View Cart Page
167
+ function displayCartDetails() {
168
+ const cartDetails = document.getElementById("cart-details");
169
+ if (cart.length > 0) {
170
+ let cartHtml = "";
171
+ cart.forEach(item => {
172
+ cartHtml += `<p>${item.quantity} x ${item.name} - ₹${item.price * item.quantity}</p>`;
173
+ });
174
+ cartDetails.innerHTML = cartHtml;
175
+ } else {
176
+ cartDetails.innerHTML = "<p>Your cart is empty.</p>";
177
+ }
178
+ }
179
+
180
+ // Function to populate the menu based on selected category
181
  function displayMenuItems(category) {
182
  const menuContainer = category === 'Main Course' ? document.getElementById('main-course-items') : document.getElementById('appetizer-items');
183
  menuContainer.innerHTML = '';
 
203
  cart.push({ name: item.name, price: item.price, quantity: quantity });
204
  }
205
 
206
+ // Function to find item in the menu
207
+ function findItem(itemName) {
208
+ const menu = menuData['Main Course']; // Default category to check first
209
+ return menu.find(item => item.name.toLowerCase() === itemName.toLowerCase());
 
 
 
 
 
 
 
 
 
210
  }
211
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
212
  // Voice greeting for menu categories
213
  const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();
214
  recognition.lang = "en-US";
 
219
  }
220
 
221
  window.onload = function() {
222
+ // Sample menu data for Main Course and Appetizers
223
  menuData = {
224
  'Main Course': [
225
  { name: "Chicken Biryani", price: 250 },
 
232
  ]
233
  };
234
 
235
+ // Automatically greet the user and prompt for category selection
236
  speak("Welcome to Biryani Hub! We have the following categories: Main Course and Appetizers. Please say 'Main Course' or 'Appetizers' to select a category.");
237
+
238
+ // Automatically trigger voice recognition for category selection
239
  recognition.start();
240
  recognition.onresult = (event) => {
241
  const categoryCommand = event.results[0][0].transcript.toLowerCase();