/*jshint esversion: 6 */ define([ 'base/js/namespace', 'jquery' ], function( Jupyter, $ ) { var mod_name = "mickaSearch"; var log_prefix = '[' + mod_name + '] '; // default configuration var cfg = { 'micka_url': 'https://hub.lesprojekt.cz/micka/', 'proxy_url': 'https://cors-anywhere.herokuapp.com/' }; // read user configuration from Jupyter var read_config = function () { var config = IPython.notebook.config; for (var key in cfg) { if (config.data.mickaSearch.hasOwnProperty(key)) cfg[key] = config.data.mickaSearch[key]; } }; // get metadata var fetch_metatada = function (search_params) { return fetch(`${cfg.proxy_url}${cfg.micka_url}csw/${search_params}`); }; // do search var search_micka = function () { var query = document.getElementById('mquery').value; query = query.length > 0 ? `FullText%3D'${query}'` : ''; var mdata = fetch_metatada(`?request=GetRecords&query=${query}&format=application/json&MaxRecords=9999&StartPosition=&sortby=title%3AA&language=eng&outputSchema=http://www.w3.org/2005/Atom&typenames=gmd:MD_Metadata`); mdata.then(response => response.json()) .then(arrayOfMetadata => { create_view(arrayOfMetadata.records); }) .catch(error => { console.log(error); }); }; // prepare and render html structure var create_view = function(data) { var output = ''; console.log(data); data.forEach(function(entry) { output += `
${entry.title}`; output += '

Type: '; output += entry.type=='application' ? `${entry.type} - Service: ${entry.serviceType}` : `${entry.type}`; output += `
MD Record`; output += entry.abstract.length > 0 ? `
Abstract: ${entry.abstract}` : ''; output += entry.bbox.length > 0 ? `
Boundig box: ${entry.bbox}` : ''; output += entry.imgURL ? `

Thumbnail
` : ''; var links = ''; entry.links.forEach(function(link) { links += `
  • ${link.url}
  • `; }); output += links.length > 0 ? `
    Links
    ` : ''; output += '

    '; output += '
    '; }); document.getElementById('msres').innerHTML = output; } var initialize = function () { read_config(); // show/hide panel var handler = function () { mdata = fetch_metatada('?request=GetRecords&query=&format=application/json&MaxRecords=9999&StartPosition=&sortby=title%3AA&language=eng&outputSchema=http://www.w3.org/2005/Atom&typenames=gmd:MD_Metadata'); mdata.then(response => response.json()) .then(arrayOfMetadata => { console.log(arrayOfMetadata); alert(arrayOfMetadata.records[0].id); }) .catch(error => { console.log(error); }); }; var action = { icon: 'fa-search', help : 'Show Micka Search panel', help_index : 'zz', label: 'Micka', handler : handler }; var prefix = 'micka_search'; var action_name = 'micka-search'; var full_action_name = Jupyter.actions.register(action, action_name, prefix); Jupyter.toolbar.add_buttons_group([full_action_name]); console.log(log_prefix + 'button added'); } var load_ipython_extension = function() { return IPython.notebook.config.loaded.then(initialize); }; return { load_ipython_extension: load_ipython_extension }; });