Rammohan0504 lokesh341 commited on
Commit
b18afed
·
verified ·
1 Parent(s): 0717ab7

Update templates/cart.html (#5)

Browse files

- Update templates/cart.html (b410bbdfd8674e82a4f5adddb494868bfbc48ba5)


Co-authored-by: lokesh surya sai sirigineedi <[email protected]>

Files changed (1) hide show
  1. templates/cart.html +63 -51
templates/cart.html CHANGED
@@ -10,23 +10,39 @@
10
 
11
  body {
12
  font-family: Arial, sans-serif;
13
- background-color: #f3f4f6;
14
  color: #333;
15
  }
16
  .cart-container {
17
  max-width: 768px;
18
  margin: 20px auto;
19
  padding: 15px;
20
- background-color: #fdf4e3;
21
  border-radius: 10px;
 
22
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
23
  }
24
  .cart-container2 {
25
- background-color: #fdf4e3;
26
  }
27
-
28
-
29
- .cart-item {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  display: flex;
31
  align-items: flex-start;
32
  justify-content: space-between;
@@ -36,8 +52,9 @@
36
  box-sizing: border-box;
37
  min-height: 100px;
38
  position: relative; /* Make the cart item a reference for the absolute positioning of the remove icon */
 
 
39
  }
40
-
41
  .remove-btn {
42
  border: none; /* Remove the border around the button */
43
  background-color: transparent; /* Transparent background */
@@ -49,12 +66,9 @@
49
  top: -35px; /* Move the button 10px upwards */
50
  left: 50px; /* Move the button 30px to the right */
51
  }
52
-
53
  .remove-btn i {
54
  color: red; /* Make the trash icon red */
55
  }
56
-
57
-
58
  /* Hover effect */
59
  .remove-btn:hover {
60
  color: black; /* Change the icon color to black on hover */
@@ -65,8 +79,9 @@
65
  outline: none; /* Remove the outline */
66
  background-color: transparent; /* Keep background transparent after clicking */
67
  }
 
68
  .text-primary {
69
- color: #000 !important; /* Ensure the price is black */
70
  text-align: right; /* Center-align the price */
71
  font-weight: bold; /* Make the price text bold */
72
  white-space: nowrap; /* Prevent price text from wrapping */
@@ -79,7 +94,6 @@
79
  align-items: center; /* Center image vertically */
80
  justify-content: center; /* Center image horizontally */
81
  }
82
-
83
  /* For the image */
84
  .cart-item img {
85
  width: 70px; /* Set the width to 70px */
@@ -89,7 +103,6 @@
89
  border: 1px solid #ffcc80; /* Light orange border around images */
90
  margin: 0; /* Ensure no extra space around the image */
91
  }
92
-
93
 
94
  .cart-item img:hover {
95
  transform: scale(1.05);
@@ -100,19 +113,19 @@
100
  }
101
 
102
  .checkout-button {
103
- background-color: #0FAA39; /* Green background */
104
- color: #fff; /* White text */
105
- padding: 12px;
106
- border-radius: 8px;
107
- border: none;
108
- width: 100%;
109
- font-size: 1.2rem;
110
- cursor: pointer;
111
- transition: background-color 0.3s, color 0.3s;
112
- }
113
- .checkout-button:hover {
114
- background-color: #0FAA39; /* Keep the background green on hover */
115
- color: #fff; /* Keep the text white on hover */
116
  }
117
  .add-back-button {
118
  padding: 6px 20px;
@@ -164,7 +177,16 @@
164
  padding: 20px;
165
  background-color: #fff;
166
  border-radius: 12px;
 
167
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1);
 
 
 
 
 
 
 
 
168
  }
169
  /* Coupon Section styling */
170
  .coupon-selection {
@@ -257,15 +279,15 @@
257
  .total-bill .amount {
258
  text-align: right;
259
  font-size: 1.1rem;
260
- color: #000; /* Changed from green to black */
261
  }
262
  /* Margin to add space for dropdown when visible */
263
  .cart-summary.has-dropdown {
264
  margin-bottom: 80px; /* Create space below the content when dropdown is visible */
265
  }
266
  .checkout-button {
267
- background-color: #0FAA39;
268
- color: #fff;
269
  padding: 12px;
270
  border-radius: 8px;
271
  border: none;
@@ -284,6 +306,7 @@
284
  padding: 15px;
285
  background-color: #fff;
286
  border-radius: 10px;
 
287
  }
288
  .suggestion-items-container {
289
  display: flex;
@@ -308,6 +331,7 @@
308
  position: relative; /* For positioning the + icon */
309
  text-align: left; /* Align text to the left */
310
  overflow: visible; /* Allow the button to overflow outside */
 
311
  }
312
  .suggestion-item:hover {
313
  transform: scale(1.05); /* Slight zoom effect on hover */
@@ -363,7 +387,15 @@
363
  align-items: flex-start; /* Align the price at the top of the cart item (like the item name) */
364
  margin-left: auto; /* This will push the price to the right side of the cart item */
365
  }
366
-
 
 
 
 
 
 
 
 
367
  </style>
368
  </head>
369
  <body>
@@ -496,13 +528,11 @@
496
  } else if (action === 'decrease' && quantity > 1) {
497
  quantity--;
498
  }
499
-
500
  // Validate quantity
501
  if (isNaN(quantity) || quantity < 1) {
502
  alert("Invalid quantity!");
503
  return;
504
  }
505
-
506
  // Send updated quantity to the server
507
  fetch('/cart/update_quantity', {
508
  method: 'POST',
@@ -518,12 +548,10 @@
518
  if (itemElement) {
519
  let basePriceElement = itemElement.querySelector(".base-price");
520
  let addonsPriceElement = itemElement.querySelector(".addons-price");
521
-
522
  // Update the base price
523
  if (basePriceElement) {
524
  basePriceElement.innerText = data.new_item_price.toFixed(2); // Assuming backend sends this
525
  }
526
-
527
  // Update add-ons price if needed (optional)
528
  if (addonsPriceElement && data.addons_price !== undefined) {
529
  addonsPriceElement.innerText = data.addons_price.toFixed(2);
@@ -532,7 +560,6 @@
532
  console.error(`Parent cart item element not found for item: ${itemName}`);
533
  }
534
  location.reload();
535
-
536
  // Recalculate subtotal dynamically
537
 
538
  } else {
@@ -551,19 +578,15 @@
551
  couponDropdown.style.display = "none";
552
  }
553
  }
554
-
555
-
556
  function calculateDiscount() {
557
  let couponDropdown = document.getElementById('couponDropdown'); // Get coupon dropdown
558
  let selectedCoupon = couponDropdown.value.trim(); // Get the selected coupon value
559
  let subtotal = parseFloat("{{ subtotal }}"); // Get the subtotal (from the backend)
560
-
561
  // If a valid coupon is selected
562
  if (selectedCoupon && selectedCoupon.toLowerCase() !== "none") {
563
  // Apply 10% discount
564
  let discount = subtotal * 0.10;
565
  let total = subtotal - discount;
566
-
567
  // Update UI with discount and total bill
568
  document.getElementById("discountText").innerText = `$${discount.toFixed(2)}`;
569
  document.getElementById("totalBillText").innerText = `$${total.toFixed(2)}`;
@@ -573,9 +596,6 @@
573
  document.getElementById("totalBillText").innerText = `$${subtotal.toFixed(2)}`;
574
  }
575
  }
576
-
577
-
578
-
579
 
580
  function proceedToOrder() {
581
  let couponDropdown = document.getElementById('couponDropdown');
@@ -592,12 +612,10 @@
592
  selectedCoupon = ""; // Assign empty string if value is null
593
  }
594
  }
595
-
596
  // If no coupon is selected or the value is empty, treat it as no coupon
597
  if (selectedCoupon === "" || selectedCoupon === "None" || selectedCoupon === "Null") {
598
  selectedCoupon = null; // Treat it as no coupon selected
599
  }
600
-
601
  // Send the selected coupon to the backend for processing
602
  fetch('/checkout', {
603
  method: 'POST',
@@ -615,9 +633,6 @@
615
  })
616
  .catch(err => console.error('Error during checkout:', err));
617
  }
618
-
619
-
620
-
621
  function calculateSubtotal() {
622
  let subtotal = 0;
623
  document.querySelectorAll('.cart-item').forEach(item => {
@@ -626,7 +641,6 @@
626
  const addonsPrice = parseFloat(item.querySelector('.addons-price').innerText.replace('$', '')) || 0; // Add-ons Price
627
  subtotal += (basePrice * quantity) + addonsPrice; // Include add-ons price in subtotal
628
  });
629
-
630
  // Update the subtotal in the HTML
631
  document.querySelector('.cart-summary p').innerText = `Subtotal: $${subtotal.toFixed(2)}`;
632
  return subtotal;
@@ -735,11 +749,9 @@
735
  })
736
  .catch(err => console.error('Error adding item:', err));
737
  }
738
-
739
-
740
 
741
 
742
  </script>
743
 
744
  </body>
745
- </html>
 
10
 
11
  body {
12
  font-family: Arial, sans-serif;
13
+ background-color: #fdf4e3; /* Updated background color */
14
  color: #333;
15
  }
16
  .cart-container {
17
  max-width: 768px;
18
  margin: 20px auto;
19
  padding: 15px;
20
+ background-color: #FFFFFF;
21
  border-radius: 10px;
22
+
23
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
24
  }
25
  .cart-container2 {
26
+ background-color:#FFFFFF;
27
  }
28
+ /* Green Back Button styling */
29
+ .back-button {
30
+ position: absolute;
31
+ top: 15px;
32
+ left: 15px;
33
+ display: inline-block;
34
+ background-color: green; /* Green color */
35
+ color: white;
36
+ padding: 10px 20px;
37
+ text-decoration: none;
38
+ font-weight: bold;
39
+ border-radius: 4px;
40
+ z-index: 10; /* Ensure it stays above other content */
41
+ }
42
+ .back-button:hover {
43
+ background-color: darkgreen; /* Darker green color on hover */
44
+ }
45
+ .cart-item {
46
  display: flex;
47
  align-items: flex-start;
48
  justify-content: space-between;
 
52
  box-sizing: border-box;
53
  min-height: 100px;
54
  position: relative; /* Make the cart item a reference for the absolute positioning of the remove icon */
55
+ border: 1px solid #fdf4e3; /* light Orange border around each item */
56
+ border-radius: 8px; /* Rounded corners for items */
57
  }
 
58
  .remove-btn {
59
  border: none; /* Remove the border around the button */
60
  background-color: transparent; /* Transparent background */
 
66
  top: -35px; /* Move the button 10px upwards */
67
  left: 50px; /* Move the button 30px to the right */
68
  }
 
69
  .remove-btn i {
70
  color: red; /* Make the trash icon red */
71
  }
 
 
72
  /* Hover effect */
73
  .remove-btn:hover {
74
  color: black; /* Change the icon color to black on hover */
 
79
  outline: none; /* Remove the outline */
80
  background-color: transparent; /* Keep background transparent after clicking */
81
  }
82
+ /* Green Color for Prices */
83
  .text-primary {
84
+ color: #2e7d32; /* Green color for the prices */
85
  text-align: right; /* Center-align the price */
86
  font-weight: bold; /* Make the price text bold */
87
  white-space: nowrap; /* Prevent price text from wrapping */
 
94
  align-items: center; /* Center image vertically */
95
  justify-content: center; /* Center image horizontally */
96
  }
 
97
  /* For the image */
98
  .cart-item img {
99
  width: 70px; /* Set the width to 70px */
 
103
  border: 1px solid #ffcc80; /* Light orange border around images */
104
  margin: 0; /* Ensure no extra space around the image */
105
  }
 
106
 
107
  .cart-item img:hover {
108
  transform: scale(1.05);
 
113
  }
114
 
115
  .checkout-button {
116
+ background-color: #ff5722; /* Full Orange color */
117
+ color: #ffffff; /* White text */
118
+ padding: 12px;
119
+ border-radius: 8px;
120
+ border: none;
121
+ width: 100%;
122
+ font-size: 1.2rem;
123
+ cursor: pointer;
124
+ transition: background-color 0.3s, color 0.3s;
125
+ }
126
+ .checkout-button:hover {
127
+ background-color: #ff5722; /* Full Orange color on hover */
128
+ color: #ffffff; /* White text on hover */
129
  }
130
  .add-back-button {
131
  padding: 6px 20px;
 
177
  padding: 20px;
178
  background-color: #fff;
179
  border-radius: 12px;
180
+ border: 2px solid #fdf4e3; /* light Orange border around the cart summary */
181
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1);
182
+ }
183
+ .cart-item-instructions {
184
+ word-wrap: break-word; /* Ensure that long instructions text wraps to the next line */
185
+ white-space: normal; /* Allow text to wrap and prevent overflow */
186
+ overflow: hidden; /* Hide any overflow text */
187
+ max-width: 100%; /* Ensure instructions text stays within the container's width */
188
+ word-break: break-word; /* Break the word when necessary */
189
+
190
  }
191
  /* Coupon Section styling */
192
  .coupon-selection {
 
279
  .total-bill .amount {
280
  text-align: right;
281
  font-size: 1.1rem;
282
+ color: #2e7d32; /* Green for Total Bill Price */
283
  }
284
  /* Margin to add space for dropdown when visible */
285
  .cart-summary.has-dropdown {
286
  margin-bottom: 80px; /* Create space below the content when dropdown is visible */
287
  }
288
  .checkout-button {
289
+ background-color: #ff5722;
290
+ color: #ffffff;
291
  padding: 12px;
292
  border-radius: 8px;
293
  border: none;
 
306
  padding: 15px;
307
  background-color: #fff;
308
  border-radius: 10px;
309
+ border: 2px solid #fdf4e3; /* light Orange border around the complete meal box */
310
  }
311
  .suggestion-items-container {
312
  display: flex;
 
331
  position: relative; /* For positioning the + icon */
332
  text-align: left; /* Align text to the left */
333
  overflow: visible; /* Allow the button to overflow outside */
334
+ border: 2px solid #fdf4e3; /* light Orange border around the suggestion items */
335
  }
336
  .suggestion-item:hover {
337
  transform: scale(1.05); /* Slight zoom effect on hover */
 
387
  align-items: flex-start; /* Align the price at the top of the cart item (like the item name) */
388
  margin-left: auto; /* This will push the price to the right side of the cart item */
389
  }
390
+ h4.mb-4.fw-bold {
391
+ text-align: center; /* Centers the title */
392
+ color: #FF5722; /* Orange color for the title */
393
+ .cart-container h4 {
394
+ text-align: center; /* This will center the title horizontally */
395
+ color: #FF5722; /* Orange color */
396
+ font-weight: bold; /* Make it bold */
397
+ }
398
+
399
  </style>
400
  </head>
401
  <body>
 
528
  } else if (action === 'decrease' && quantity > 1) {
529
  quantity--;
530
  }
 
531
  // Validate quantity
532
  if (isNaN(quantity) || quantity < 1) {
533
  alert("Invalid quantity!");
534
  return;
535
  }
 
536
  // Send updated quantity to the server
537
  fetch('/cart/update_quantity', {
538
  method: 'POST',
 
548
  if (itemElement) {
549
  let basePriceElement = itemElement.querySelector(".base-price");
550
  let addonsPriceElement = itemElement.querySelector(".addons-price");
 
551
  // Update the base price
552
  if (basePriceElement) {
553
  basePriceElement.innerText = data.new_item_price.toFixed(2); // Assuming backend sends this
554
  }
 
555
  // Update add-ons price if needed (optional)
556
  if (addonsPriceElement && data.addons_price !== undefined) {
557
  addonsPriceElement.innerText = data.addons_price.toFixed(2);
 
560
  console.error(`Parent cart item element not found for item: ${itemName}`);
561
  }
562
  location.reload();
 
563
  // Recalculate subtotal dynamically
564
 
565
  } else {
 
578
  couponDropdown.style.display = "none";
579
  }
580
  }
 
 
581
  function calculateDiscount() {
582
  let couponDropdown = document.getElementById('couponDropdown'); // Get coupon dropdown
583
  let selectedCoupon = couponDropdown.value.trim(); // Get the selected coupon value
584
  let subtotal = parseFloat("{{ subtotal }}"); // Get the subtotal (from the backend)
 
585
  // If a valid coupon is selected
586
  if (selectedCoupon && selectedCoupon.toLowerCase() !== "none") {
587
  // Apply 10% discount
588
  let discount = subtotal * 0.10;
589
  let total = subtotal - discount;
 
590
  // Update UI with discount and total bill
591
  document.getElementById("discountText").innerText = `$${discount.toFixed(2)}`;
592
  document.getElementById("totalBillText").innerText = `$${total.toFixed(2)}`;
 
596
  document.getElementById("totalBillText").innerText = `$${subtotal.toFixed(2)}`;
597
  }
598
  }
 
 
 
599
 
600
  function proceedToOrder() {
601
  let couponDropdown = document.getElementById('couponDropdown');
 
612
  selectedCoupon = ""; // Assign empty string if value is null
613
  }
614
  }
 
615
  // If no coupon is selected or the value is empty, treat it as no coupon
616
  if (selectedCoupon === "" || selectedCoupon === "None" || selectedCoupon === "Null") {
617
  selectedCoupon = null; // Treat it as no coupon selected
618
  }
 
619
  // Send the selected coupon to the backend for processing
620
  fetch('/checkout', {
621
  method: 'POST',
 
633
  })
634
  .catch(err => console.error('Error during checkout:', err));
635
  }
 
 
 
636
  function calculateSubtotal() {
637
  let subtotal = 0;
638
  document.querySelectorAll('.cart-item').forEach(item => {
 
641
  const addonsPrice = parseFloat(item.querySelector('.addons-price').innerText.replace('$', '')) || 0; // Add-ons Price
642
  subtotal += (basePrice * quantity) + addonsPrice; // Include add-ons price in subtotal
643
  });
 
644
  // Update the subtotal in the HTML
645
  document.querySelector('.cart-summary p').innerText = `Subtotal: $${subtotal.toFixed(2)}`;
646
  return subtotal;
 
749
  })
750
  .catch(err => console.error('Error adding item:', err));
751
  }
 
 
752
 
753
 
754
  </script>
755
 
756
  </body>
757
+ </html>