Gebruikershulpmiddelen

Site-hulpmiddelen


sasteren:boeken-nieuw

Verschillen

Dit geeft de verschillen weer tussen de geselecteerde revisie en de huidige revisie van de pagina.

Link naar deze vergelijking

Beide kanten vorige revisieVorige revisie
Volgende revisie
Vorige revisie
sasteren:boeken-nieuw [2023/08/13 18:08] admin_sasterensasteren:boeken-nieuw [2026/04/20 06:12] (huidige) – oude revisie hersteld (2023/08/14 07:11) admin_sasteren
Regel 1: Regel 1:
- 
 <form> <form>
- 
 action template :templates/boek1template :sasteren:boeken:@p_get_first_heading(@@boek.author@@)@:@@boek.title@@ action template :templates/boek1template :sasteren:boeken:@p_get_first_heading(@@boek.author@@)@:@@boek.title@@
 struct_schema "boek" ! struct_schema "boek" !
Regel 7: Regel 5:
  
 </form> </form>
 +
 +<html>
 +<script>
 +const isbnField = document.getElementsByName("bureaucracy[0]")[0];
 +const itemTypeField = document.getElementsByName('bureaucracy[2]')[0];
 +const titleField = document.getElementsByName('bureaucracy[3]')[0];
 +const subtitleField = document.getElementsByName('bureaucracy[4]')[0];
 +const originalTitleField = document.getElementsByName('bureaucracy[6]')[0];
 +const authorField = document.getElementsByName('bureaucracy[7]')[0];
 +const languageField = document.getElementsByName('bureaucracy[5]')[0];
 +const yearPublishedField = document.getElementsByName('bureaucracy[13]')[0];
 +const monthPublishedField = document.getElementsByName('bureaucracy[14]')[0];
 +const dayPublishedField = document.getElementsByName('bureaucracy[15]')[0];
 +const pageCountField = document.getElementsByName('bureaucracy[16]')[0];
 +const publisherField = document.getElementsByName('bureaucracy[10]')[0];
 +const descriptionField = document.getElementsByName('bureaucracy[9]')[0];
 +const statusField = document.getElementsByName('bureaucracy[22]')[0]; // Status field
 +const plaatsingField = document.getElementsByName('bureaucracy[24]')[0]; // Plaatsing field
 +   
 +isbnField.addEventListener('blur', function() {
 +    const isbn = isbnField.value;
 +    console.log(isbn);
 +    if (isbn) {
 +        fetchGoogleBookData(isbn)
 +            .then(googleBookData => {
 +                if (googleBookData) {
 +                    populateFieldsFromGoogle(googleBookData);
 +                    openThumbnailImage(googleBookData);
 +                } else {
 +                    console.error('No book data found for ISBN:', isbn);
 +                }
 +            })
 +            .catch(error => {
 +                console.error('Error fetching Google book data:', error.message);
 +            });
 +    }
 +});
 +
 +function openThumbnailImage(data) {
 +    const imagelinks = data.imageLinks || {};
 +    const thumbnailUrl = imagelinks.thumbnail || '';
 +    if (thumbnailUrl) {
 +        window.open(thumbnailUrl, '_blank');
 +    }
 +}
 +
 +function fetchGoogleBookData(isbn) {
 +    const apiUrl = `https://www.googleapis.com/books/v1/volumes?q=isbn:${isbn}`;
 +
 +    return fetch(apiUrl)
 +        .then(response => {
 +            if (!response.ok) {
 +                throw new Error('Network response was not ok');
 +            }
 +            return response.json();
 +        })
 +        .then(data => {
 +            return data.items && data.items.length > 0 ? data.items[0].volumeInfo : null;
 +        });
 +}
 +
 +function populateFieldsFromGoogle(data) {
 +    const title = data.title || '';
 +    const subtitle = data.subtitle || '';
 +    const authors = data.authors || [];
 +    const languageCode = data.language || ''; // Language code from JSON
 +    const languages = {
 +        "en": "Engels",
 +        "nl": "", // Empty for Dutch
 +        "de": "Duits",
 +        "fr": "Frans",
 +        "sl": "Sloveens",
 +        "ru": "Russisch",
 +        // Add more languages as needed
 +    };
 +    const language = languages[languageCode] || 'Nederlands'; // Default to "Nederlands" if not found
 +    const yearPublished = data.publishedDate ? data.publishedDate.substring(0, 4) : '';
 +    const monthPublished = data.publishedDate ? data.publishedDate.substring(5, 7) : '';
 +    const dayPublished = data.publishedDate ? data.publishedDate.substring(8, 10) : '';
 +    const pageCount = data.pageCount || '';
 +    const publisher = data.publisher || '';
 +    const bookDescription = data.description || '';
 +
 +    if (itemTypeField.value === '') {
 +        itemTypeField.value = 'boek';
 +    }
 +
 +    if (titleField.value === '') {
 +        titleField.value = title;
 +    }
 +
 +    if (subtitleField.value === '') {
 +        subtitleField.value = subtitle;
 +    }
 +
 +    if (authorField.value === '') {
 +        authorField.value = ("sasteren:auteurs:"+authors.join(', ')).replace(/ /g, "_").toLowerCase();;
 +    }
 +
 +    languageField.value = language;
 +
 +    if (yearPublishedField.value === '') {
 +        yearPublishedField.value = yearPublished;
 +    }
 +
 +    if (monthPublishedField.value === '') {
 +        monthPublishedField.value = monthPublished;
 +    }
 +
 +    if (dayPublishedField.value === '') {
 +        dayPublishedField.value = dayPublished;
 +    }
 +
 +    if (pageCountField.value === '') {
 +        pageCountField.value = pageCount;
 +    }
 +
 +    if (publisherField.value === '') {
 +        publisherField.value = (":sasteren:uitgevers:" + publisher).replace(/ /g, "_").toLowerCase();
 +    }
 +
 +    if (descriptionField.value === '') {
 +        descriptionField.value = bookDescription;
 +    }
 +
 +    if (statusField.value === '') {
 +        statusField.value = 'niet gestart'; // Default value for status field
 +    }
 +
 +    if (plaatsingField.value === '') {
 +        plaatsingField.value = 'bibliotheek'; // Default value for plaatsing field
 +    }
 +    
 +    // Open thumbnail image in a new window if available
 +    const imagelinks = data.imageLinks || {};
 +    const thumbnailUrl = imagelinks.thumbnail || '';
 +    if (thumbnailUrl) {
 +        const thumbnailLink = document.createElement('a');
 +        thumbnailLink.href = thumbnailUrl;
 +        thumbnailLink.target = '_blank';
 +        thumbnailLink.textContent = 'Open Thumbnail Image';
 +        document.body.appendChild(thumbnailLink);
 +    }
 +}
 +
 +</script>
 +</html>
/var/www/dokuwiki/data/attic/sasteren/boeken-nieuw.1691950095.txt.gz · Laatst gewijzigd: door admin_sasteren

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki