Update templates/reward_status.html
Browse files- templates/reward_status.html +30 -39
templates/reward_status.html
CHANGED
@@ -89,7 +89,6 @@
|
|
89 |
object-fit: cover;
|
90 |
border-radius: 8px;
|
91 |
}
|
92 |
-
|
93 |
/* Modal Styling */
|
94 |
.modal {
|
95 |
display: none;
|
@@ -144,7 +143,7 @@
|
|
144 |
<div class="ingredient-card">
|
145 |
{% if item.ingredients %}
|
146 |
{% for ingredient in item.ingredients %}
|
147 |
-
<div class="ingredient" onclick="showIngredientDetails('{{ ingredient.name }}', '{{ ingredient.image }}', '{{ ingredient.health_benefits }}', '{{ ingredient.fun_facts }}')">
|
148 |
<img src="{{ ingredient.image }}" alt="{{ ingredient.name }}" onerror="this.src='/static/placeholder.jpg';">
|
149 |
<p>{{ ingredient.name }}</p>
|
150 |
</div>
|
@@ -153,63 +152,55 @@
|
|
153 |
<p>No ingredients found for {{ item.name }}</p>
|
154 |
{% endif %}
|
155 |
</div>
|
156 |
-
{% endfor %}
|
157 |
-
</div>
|
158 |
-
</div>
|
159 |
-
</div>
|
160 |
|
161 |
-
<!-- Ingredient Modal -->
|
162 |
-
<div id="ingredientModal" class="modal">
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
|
|
|
|
|
|
|
|
174 |
</div>
|
175 |
</div>
|
176 |
</div>
|
177 |
|
178 |
<script>
|
179 |
// JavaScript for showing ingredient details in modal
|
180 |
-
function showIngredientDetails(name, image, healthBenefits, funFacts) {
|
181 |
const healthBenefitsList = healthBenefits.split(',');
|
182 |
const funFactsList = funFacts.split(',');
|
183 |
-
document.getElementById("ingredientName").textContent = name;
|
184 |
-
document.getElementById("ingredientImage").src = image;
|
185 |
-
document.getElementById("healthBenefits").innerHTML = '';
|
186 |
-
document.getElementById("funFacts").innerHTML = '';
|
|
|
187 |
healthBenefitsList.forEach(function(item) {
|
188 |
const li = document.createElement("li");
|
189 |
li.textContent = item.trim();
|
190 |
-
document.getElementById("healthBenefits").appendChild(li);
|
191 |
});
|
|
|
192 |
funFactsList.forEach(function(item) {
|
193 |
const li = document.createElement("li");
|
194 |
li.textContent = item.trim();
|
195 |
-
document.getElementById("funFacts").appendChild(li);
|
196 |
});
|
197 |
-
document.getElementById("ingredientModal").style.display = "block";
|
198 |
-
}
|
199 |
|
200 |
-
|
201 |
-
document.getElementById("ingredientModal").style.display = "none";
|
202 |
}
|
203 |
|
204 |
-
|
205 |
-
|
206 |
-
const items = document.querySelectorAll('.item-info');
|
207 |
-
items.forEach(item => {
|
208 |
-
const ingredients = item.nextElementSibling.querySelectorAll('.ingredient');
|
209 |
-
ingredients.forEach(ingredient => {
|
210 |
-
console.log("Ingredient:", ingredient.querySelector('p').innerText);
|
211 |
-
});
|
212 |
-
});
|
213 |
}
|
214 |
</script>
|
215 |
|
|
|
89 |
object-fit: cover;
|
90 |
border-radius: 8px;
|
91 |
}
|
|
|
92 |
/* Modal Styling */
|
93 |
.modal {
|
94 |
display: none;
|
|
|
143 |
<div class="ingredient-card">
|
144 |
{% if item.ingredients %}
|
145 |
{% for ingredient in item.ingredients %}
|
146 |
+
<div class="ingredient" onclick="showIngredientDetails('{{ loop.index }}', '{{ ingredient.name }}', '{{ ingredient.image }}', '{{ ingredient.health_benefits }}', '{{ ingredient.fun_facts }}')">
|
147 |
<img src="{{ ingredient.image }}" alt="{{ ingredient.name }}" onerror="this.src='/static/placeholder.jpg';">
|
148 |
<p>{{ ingredient.name }}</p>
|
149 |
</div>
|
|
|
152 |
<p>No ingredients found for {{ item.name }}</p>
|
153 |
{% endif %}
|
154 |
</div>
|
|
|
|
|
|
|
|
|
155 |
|
156 |
+
<!-- Ingredient Modal for each item -->
|
157 |
+
<div id="ingredientModal{{ loop.index }}" class="modal">
|
158 |
+
<div class="modal-content">
|
159 |
+
<span class="close" onclick="closeModal({{ loop.index }})">×</span>
|
160 |
+
<div class="modal-header">
|
161 |
+
<h2 id="ingredientName{{ loop.index }}"></h2>
|
162 |
+
</div>
|
163 |
+
<div class="modal-body">
|
164 |
+
<img id="ingredientImage{{ loop.index }}" src="" alt="" style="width: 150px; height: 150px; object-fit: cover; border-radius: 8px;">
|
165 |
+
<h3>Health Benefits:</h3>
|
166 |
+
<ul id="healthBenefits{{ loop.index }}"></ul>
|
167 |
+
<h3>Fun Facts:</h3>
|
168 |
+
<ul id="funFacts{{ loop.index }}"></ul>
|
169 |
+
</div>
|
170 |
+
</div>
|
171 |
+
</div>
|
172 |
+
{% endfor %}
|
173 |
</div>
|
174 |
</div>
|
175 |
</div>
|
176 |
|
177 |
<script>
|
178 |
// JavaScript for showing ingredient details in modal
|
179 |
+
function showIngredientDetails(index, name, image, healthBenefits, funFacts) {
|
180 |
const healthBenefitsList = healthBenefits.split(',');
|
181 |
const funFactsList = funFacts.split(',');
|
182 |
+
document.getElementById("ingredientName" + index).textContent = name;
|
183 |
+
document.getElementById("ingredientImage" + index).src = image;
|
184 |
+
document.getElementById("healthBenefits" + index).innerHTML = '';
|
185 |
+
document.getElementById("funFacts" + index).innerHTML = '';
|
186 |
+
|
187 |
healthBenefitsList.forEach(function(item) {
|
188 |
const li = document.createElement("li");
|
189 |
li.textContent = item.trim();
|
190 |
+
document.getElementById("healthBenefits" + index).appendChild(li);
|
191 |
});
|
192 |
+
|
193 |
funFactsList.forEach(function(item) {
|
194 |
const li = document.createElement("li");
|
195 |
li.textContent = item.trim();
|
196 |
+
document.getElementById("funFacts" + index).appendChild(li);
|
197 |
});
|
|
|
|
|
198 |
|
199 |
+
document.getElementById("ingredientModal" + index).style.display = "block";
|
|
|
200 |
}
|
201 |
|
202 |
+
function closeModal(index) {
|
203 |
+
document.getElementById("ingredientModal" + index).style.display = "none";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
204 |
}
|
205 |
</script>
|
206 |
|