62 lines
2.7 KiB
JavaScript
62 lines
2.7 KiB
JavaScript
const form = document.getElementById('searchForm');
|
|
const resultsDiv = document.getElementById('results');
|
|
|
|
form.addEventListener('submit', async (e) => {
|
|
e.preventDefault();
|
|
const descrizione = document.getElementById('descrizione').value;
|
|
const marca = document.getElementById('marca').value;
|
|
const ean = document.getElementById('ean').value;
|
|
|
|
resultsDiv.innerHTML = "<p>Loading...</p>";
|
|
|
|
try {
|
|
const response = await fetch('http://127.0.0.1:8000/search', {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify({ descrizione, brand: marca, ean })
|
|
});
|
|
const data = await response.json();
|
|
|
|
if (data.product_data.error) {
|
|
resultsDiv.innerHTML = `<p style="color:red;">${data.product_data.error}</p>`;
|
|
return;
|
|
}
|
|
|
|
const p = data.product_data;
|
|
|
|
resultsDiv.innerHTML = `
|
|
<div class="product-card">
|
|
<img src="${p.image_70x70 || ''}" alt="Product Image">
|
|
<div class="product-info">
|
|
<table>
|
|
<tr><th>Codice</th><td>${p.codice}</td></tr>
|
|
<tr><th>Descrizione</th><td>${p.descrizione}</td></tr>
|
|
<tr><th>Marca</th><td>${p.marca}</td></tr>
|
|
<tr><th>Linea</th><td>${p.linea}</td></tr>
|
|
<tr><th>S Linea</th><td>${p.s_linea}</td></tr>
|
|
<tr><th>SS Linea</th><td>${p.ss_linea}</td></tr>
|
|
<tr><th>Gruppo</th><td>${p.gruppo}</td></tr>
|
|
<tr><th>S Gruppo</th><td>${p.s_gruppo}</td></tr>
|
|
<tr><th>Famiglia</th><td>${p.famiglia}</td></tr>
|
|
<tr><th>S Famiglia</th><td>${p.s_famiglia}</td></tr>
|
|
<tr><th>SS Famiglia</th><td>${p.ss_famiglia}</td></tr>
|
|
<tr><th>Barcode</th><td>${p.barcode}</td></tr>
|
|
<tr><th>Link</th><td><a href="${p.product_link}" target="_blank">Open Product Page</a></td></tr>
|
|
</table>
|
|
<div class="ingredients">
|
|
<strong>Ingredienti:</strong><br>
|
|
${p.ingredienti || 'N/A'}
|
|
</div>
|
|
<div class="description">
|
|
<strong>Descrizione Articolo:</strong><br>
|
|
${p.descrizione_articolo ? p.descrizione_articolo.replace(/\n/g, "<br>") : 'N/A'}
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
`;
|
|
} catch(err) {
|
|
resultsDiv.innerHTML = `<p style="color:red;">Error: ${err.message}</p>`;
|
|
}
|
|
});
|