Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
1 result

main.js

Blame
  • main.js 1.63 KiB
    const api_key='ncuseliseyne'
    const search_url = new URL('https://api.europeana.eu/record/v2/search.json'); search_url.searchParams.append('wskey', api_key)
    const iiif_url = new URL('https://iiif.europeana.eu/presentation/RECORD_ID/manifest'); // iiif_url.searchParams.append('wskey', api_key)
    const viewers = {
      'manifest.json': '',
      'uv4': 'https://uv-v4.netlify.app/#?c=&m=&s=&cv=&manifest=',
      'uv3': 'https://uv-v3.netlify.app/#?c=&m=&s=&cv=&manifest=',
      'mirador': 'https://projectmirador.org/embed/?iiif-content=',
      'local uv4': 'http://localhost:8080/#?c=&m=&s=&cv=&manifest=',
      'validator': 'https://presentation-validator.iiif.io/validate?url='
    }
    
    var input_debounce_timer = null;
    
    function search_handler(text) {
      if (text == '') return;
      var url = new URL(search_url)
      url.searchParams.append('query', text);
      fetch(url)
        .then(response => response.json())
        .then(rs => {
        console.debug(rs.items)
        results.innerHTML = ''
        rs.items.forEach(record => {
          var title = document.createElement('h3')
          title.innerHTML = record.title[0] + ' -- ' + record.dataProvider[0]
          results.appendChild(title)
    
          var p = document.createElement('p')
    
          let manifest_uri = iiif_url.toString().replace('RECORD_ID', record.id)
          for (var v in viewers) {
            let a = document.createElement('a')
            a.href = viewers[v] + manifest_uri
            a.innerHTML = v
            p.appendChild(a)
          }
          results.append(p)
        })
      })
    }
    
    window.onload = () => {
      search.addEventListener('input', () => {
        clearTimeout(input_debounce_timer);
        input_debounce_timer = setTimeout(() => search_handler(search.value), 300);
      })
    }