Frontend-Logik an neue API-Antwortstruktur angepasst
This commit is contained in:
@@ -312,59 +312,52 @@
|
||||
if (query) params.append('q', query);
|
||||
|
||||
fetch(`/search?${params.toString()}`)
|
||||
.then(response => {
|
||||
if (!response.ok) {
|
||||
return response.json().then(data => {
|
||||
throw new Error(data.error || 'Ein Fehler ist aufgetreten');
|
||||
});
|
||||
}
|
||||
return response.json();
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
const resultsDiv = document.getElementById('results');
|
||||
resultsDiv.innerHTML = '';
|
||||
|
||||
if (data.length === 0) {
|
||||
resultsDiv.innerHTML = '<div class="alert alert-info">Keine Ergebnisse gefunden.</div>';
|
||||
lastResults = [];
|
||||
updateResultCounts();
|
||||
if (data.error) {
|
||||
showError(data.error);
|
||||
return;
|
||||
}
|
||||
|
||||
data.forEach(customer => {
|
||||
const card = document.createElement('div');
|
||||
card.className = 'card result-card';
|
||||
card.innerHTML = `
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">${customer.Vorname} ${customer.Nachname}</h5>
|
||||
<p class="card-text">
|
||||
<strong>Kundennummer:</strong> ${customer.Nummer}<br>
|
||||
<strong>Fachrichtung:</strong> ${customer.Fachrichtung || 'N/A'}<br>
|
||||
<strong>Adresse:</strong> ${createAddressLink(customer.Strasse, customer.PLZ, customer.Ort)}
|
||||
${customer.weather ? `
|
||||
<span class="weather-info">
|
||||
<img src="http://openweathermap.org/img/wn/${customer.weather.icon}@2x.png"
|
||||
alt="${customer.weather.description}"
|
||||
title="${customer.weather.description}">
|
||||
${customer.weather.temperature}°C
|
||||
</span>
|
||||
` : ''}
|
||||
<br>
|
||||
<strong>Telefon:</strong> ${createPhoneLink(customer.Tel)}<br>
|
||||
<strong>E-Mail:</strong> ${createEmailLink(customer.mail)}
|
||||
</p>
|
||||
<div class="card-actions">
|
||||
<button class="btn btn-outline-primary share-button" onclick="copyCustomerLink('${customer.Nummer}')">
|
||||
🔗 Teilen
|
||||
</button>
|
||||
|
||||
const resultsContainer = document.getElementById('results');
|
||||
resultsContainer.innerHTML = '';
|
||||
|
||||
if (data.results && data.results.length > 0) {
|
||||
data.results.forEach(customer => {
|
||||
const card = document.createElement('div');
|
||||
card.className = 'card mb-3';
|
||||
card.innerHTML = `
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">${customer.Vorname} ${customer.Nachname}</h5>
|
||||
<p class="card-text">
|
||||
<strong>Kundennummer:</strong> ${customer.Nummer}<br>
|
||||
<strong>Fachrichtung:</strong> ${customer.Fachrichtung || 'N/A'}<br>
|
||||
<strong>Adresse:</strong> ${createAddressLink(customer.Strasse, customer.PLZ, customer.Ort)}
|
||||
${customer.weather ? `
|
||||
<span class="weather-info">
|
||||
<img src="http://openweathermap.org/img/wn/${customer.weather.icon}@2x.png"
|
||||
alt="${customer.weather.description}"
|
||||
title="${customer.weather.description}">
|
||||
${customer.weather.temperature}°C
|
||||
</span>
|
||||
` : ''}
|
||||
<br>
|
||||
<strong>Telefon:</strong> ${createPhoneLink(customer.Tel)}<br>
|
||||
<strong>E-Mail:</strong> ${createEmailLink(customer.mail)}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
resultsDiv.appendChild(card);
|
||||
});
|
||||
|
||||
lastResults = data;
|
||||
updateResultCounts();
|
||||
`;
|
||||
resultsContainer.appendChild(card);
|
||||
});
|
||||
|
||||
// Zeige die Anzahl der Treffer an
|
||||
const totalResults = document.getElementById('total-results');
|
||||
if (totalResults) {
|
||||
totalResults.textContent = `${data.total} Treffer gefunden`;
|
||||
}
|
||||
} else {
|
||||
resultsContainer.innerHTML = '<div class="alert alert-info">Keine Ergebnisse gefunden.</div>';
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Fehler:', error);
|
||||
|
Reference in New Issue
Block a user