main.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. define([
  2. 'base/js/namespace',
  3. 'jquery'
  4. ], function(
  5. Jupyter,
  6. $
  7. ) {
  8. var mod_name = "mickaSearch";
  9. var log_prefix = '[' + mod_name + '] ';
  10. var cfg = {
  11. 'window_display': false,
  12. 'csw_url': 'https://hub.lesprojekt.cz/micka/micka2/csw/',
  13. 'proxy_url': ''
  14. };
  15. var read_config = function () {
  16. var config = IPython.notebook.config;
  17. for (var key in cfg) {
  18. if (config.data.mickaSearch.hasOwnProperty(key))
  19. cfg[key] = config.data.mickaSearch[key];
  20. }
  21. };
  22. var fetch_metatada = function (search_params) {
  23. return fetch(`${cfg.proxy_url}${cfg.csw_url}${search_params}`);
  24. };
  25. var initialize = function () {
  26. read_config();
  27. var handler = function () {
  28. mdata = fetch_metatada('?request=GetRecords&query=&format=application/json&MaxRecords=9999&StartPosition=&sortby=title%3AA&language=eng&outputSchema=http://www.w3.org/2005/Atom');
  29. mdata.then(response => response.json())
  30. .then(arrayOfMetadata => {
  31. console.log(arrayOfMetadata);
  32. alert(arrayOfMetadata.records[0].id);
  33. })
  34. .catch(error => {
  35. console.log(error);
  36. });
  37. };
  38. var action = {
  39. icon: 'fa-search', // a font-awesome class used on buttons, etc
  40. help : 'Micka Search',
  41. help_index : 'zz',
  42. label: 'Micka',
  43. handler : handler
  44. };
  45. var prefix = 'micka_search';
  46. var action_name = 'micka-search';
  47. var full_action_name = Jupyter.actions.register(action, action_name, prefix);
  48. Jupyter.toolbar.add_buttons_group([full_action_name]);
  49. console.log(log_prefix + 'button added');
  50. }
  51. var load_ipython_extension = function() {
  52. return IPython.notebook.config.loaded.then(initialize);
  53. };
  54. return {
  55. load_ipython_extension: load_ipython_extension
  56. };
  57. });