From 7727bfd94a87e1e296aa3fa2e5c985a22e8b0b14 Mon Sep 17 00:00:00 2001 From: AIIrondev Date: Fri, 21 Aug 2026 23:44:26 +0200 Subject: [PATCH] Revert of changes --- Web/templates/upload_admin.html | 182 +++++++++++++------------------- 1 file changed, 75 insertions(+), 107 deletions(-) diff --git a/Web/templates/upload_admin.html b/Web/templates/upload_admin.html index d41f4a6..0a2a8ee 100755 --- a/Web/templates/upload_admin.html +++ b/Web/templates/upload_admin.html @@ -1523,8 +1523,78 @@ document.getElementById('new-location-input').value = ''; } - let currentFetchedIsbn = null; - let currentBookData = null; + // Function to fetch book information from ISBN + function fetchBookInfo(formType) { + if (!libraryModuleEnabled) { + alert('Bibliotheks-Modul ist deaktiviert.'); + return; + } + const isbnField = document.getElementById('isbn'); + const infoContainer = document.getElementById('book-info-container'); + + if (!isbnField || !infoContainer) { + alert('Fehler: Erforderliche Formularelemente nicht gefunden.'); + return; + } + + const isbn = normalizeIsbnClient(isbnField.value); + + if (!isbn) { + infoContainer.innerHTML = '
Bitte geben Sie eine ISBN oder einen Barcode ein.
'; + return; + } + + // Show loading indicator + infoContainer.innerHTML = '
Informationen werden abgerufen...
'; + + // Make API request to fetch book data + fetch(`/fetch_book_info/${isbn}`) + .then(response => { + if (!response.ok) { + if (response.status === 404) { + throw new Error('Buch nicht gefunden. Überprüfen Sie die ISBN.'); + } else { + throw new Error('Fehler beim Abrufen der Buchinformationen'); + } + } + return response.json(); + }) + .then(data => { + if (data.error) { + infoContainer.innerHTML = `
${data.error}
`; + return; + } + + // Store book data globally for import functionality + currentBookData = data; + + // Display book information with import button + infoContainer.innerHTML = ` +
+

${data.title}

+ ${data.authors ? `

Autor(en): ${data.authors}

` : ''} + ${data.publisher ? `

Verlag: ${data.publisher}

` : ''} + ${data.publishedDate ? `

Erscheinungsdatum: ${data.publishedDate}

` : ''} + ${data.pageCount ? `

Seitenanzahl: ${data.pageCount}

` : ''} + ${data.price ? `

Preis: ${data.price}

` : ''} + ${data.thumbnail ? `Buchcover` : ''} + ${data.description ? ` +
+
Beschreibung:
+

${data.description}

+
+ ` : ''} + +
+ `; + }) + .catch(error => { + infoContainer.innerHTML = `
${error.message}
`; + currentBookData = null; + }); + } // Function to import book information into form function importBookInfo(formType) { @@ -1536,7 +1606,7 @@ // Get form fields const nameField = document.getElementById('name'); const descriptionField = document.getElementById('beschreibung'); - const priceField = document.getElementById('anschaffungskosten'); + const priceField = document.getElementById('anschaffungskosten'); // <-- NEU if (!nameField || !descriptionField) { alert('Fehler: Formularfelder nicht gefunden.'); @@ -1581,26 +1651,13 @@ priceField.value = formattedPrice; } - // Download and import book cover image if available (mit Sicherheits-Check) + // Download and import book cover image if available if (currentBookData.thumbnail) { - if (typeof downloadBookCover === 'function') { - try { - downloadBookCover(currentBookData.thumbnail); - } catch (e) { - console.warn("Cover konnte nicht heruntergeladen werden:", e); - } - } + downloadBookCover(currentBookData.thumbnail); } // Show success message const infoContainer = document.getElementById('book-info-container'); - - // Alte Erfolgsmeldung entfernen, falls jemand mehrfach klickt - const oldMessage = infoContainer.querySelector('.import-success-message'); - if (oldMessage) { - oldMessage.remove(); - } - const successMessage = document.createElement('div'); successMessage.className = 'import-success-message'; successMessage.textContent = 'Buchdaten erfolgreich in das Formular übernommen!'; @@ -1614,95 +1671,6 @@ }, 3000); } - // Function to fetch book information from ISBN - function fetchBookInfo(formType) { - if (typeof libraryModuleEnabled !== 'undefined' && !libraryModuleEnabled) { - alert('Bibliotheks-Modul ist deaktiviert.'); - return; - } - const isbnField = document.getElementById('isbn'); - const infoContainer = document.getElementById('book-info-container'); - - if (!isbnField || !infoContainer) { - alert('Fehler: Erforderliche Formularelemente nicht gefunden.'); - return; - } - - const isbn = typeof normalizeIsbnClient === 'function' - ? normalizeIsbnClient(isbnField.value) - : isbnField.value.trim(); - - if (!isbn) { - infoContainer.innerHTML = '
Bitte geben Sie eine ISBN oder einen Barcode ein.
'; - currentFetchedIsbn = null; - return; - } - - // --- DER FIX FÜR DAS DOPPELKLICK-PROBLEM --- - // Wenn das Buch bereits erfolgreich geladen wurde und auf dem Bildschirm steht, - // unterbrechen wir hier. Das schützt den Button vor dem Überschreiben. - if (currentFetchedIsbn === isbn && currentBookData !== null) { - return; - } - // ------------------------------------------- - - // Sperre für den aktuellen Suchbegriff setzen - currentFetchedIsbn = isbn; - - // Show loading indicator - infoContainer.innerHTML = '
Informationen werden abgerufen...
'; - - // Make API request to fetch book data - fetch(`/fetch_book_info/${isbn}`) - .then(response => { - if (!response.ok) { - if (response.status === 404) { - throw new Error('Buch nicht gefunden. Überprüfen Sie die ISBN.'); - } else { - throw new Error('Fehler beim Abrufen der Buchinformationen'); - } - } - return response.json(); - }) - .then(data => { - if (data.error) { - infoContainer.innerHTML = `
${data.error}
`; - currentFetchedIsbn = null; // Freigabe bei Fehler - return; - } - - // Store book data globally for import functionality - currentBookData = data; - - // Display book information with import button - infoContainer.innerHTML = ` -
-

${data.title}

- ${data.authors ? `

Autor(en): ${data.authors}

` : ''} - ${data.publisher ? `

Verlag: ${data.publisher}

` : ''} - ${data.publishedDate ? `

Erscheinungsdatum: ${data.publishedDate}

` : ''} - ${data.pageCount ? `

Seitenanzahl: ${data.pageCount}

` : ''} - ${data.price ? `

Preis: ${data.price}

` : ''} - ${data.thumbnail ? `Buchcover` : ''} - ${data.description ? ` -
-
Beschreibung:
-

${data.description}

-
- ` : ''} - -
- `; - }) - .catch(error => { - infoContainer.innerHTML = `
${error.message}
`; - currentBookData = null; - currentFetchedIsbn = null; - }); - } - function downloadBookCover(imageUrl) { if (!imageUrl) { console.log('No image URL provided');