';
+
+ // 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 = `
+
`;
+ 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 = `
-