main.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. (function($) {
  2. EdlpTheme = function(){
  3. var _is_front = $('body').is('.path-frontpage');
  4. var _$corpus_map;
  5. var _$content_container = $('.layout-container>main>.layout-content');
  6. function init(){
  7. console.log("EdlpTheme init()");
  8. // if(_is_front) initFront();
  9. $('body').on('corpus-map-ready', onCorpusMapReady);
  10. initScrollbars();
  11. initAjaxLinks();
  12. };
  13. // function initFront(){
  14. // console.log('theme : initFront');
  15. // };
  16. function initScrollbars(){
  17. $('.os-scroll').overlayScrollbars({
  18. overflowBehavior:{x:'h',y:'scroll'}
  19. });
  20. // $('.row .col>*', 'main[role="main"]').overlayScrollbars({
  21. // overflowBehavior:{x:'h',y:'scroll'}
  22. // });
  23. };
  24. // ajax
  25. function initAjaxLinks(){
  26. console.log('initAjaxLinks');
  27. $('a', '#block-mainnavigation').on('click', onClickAjaxLink);
  28. };
  29. function onClickAjaxLink(e){
  30. e.preventDefault();
  31. // TODO: drupal settings not defined on NOT front page
  32. var path = window.location.origin + drupalSettings.basepath + $(this).attr('data-drupal-link-system-path')+'/ajax';
  33. $.getJSON(path, {}, onAjaxLinkLoaded);
  34. return false;
  35. };
  36. function onAjaxLinkLoaded(data){
  37. console.log('ajax link loaded : data', data);
  38. $('main[role="main"] .layout-content').html(data.rendered);
  39. initScrollbars();
  40. };
  41. // corpus
  42. function onCorpusMapReady(e){
  43. console.log('theme : onCorpusReady');
  44. _$corpus_map = $('canvas#edlp-map');
  45. _$corpus_map.on('corpus-cliked-on-map', function(e) {
  46. console.log('theme : corpus-cliked-on-map');
  47. closeAllModals();
  48. });
  49. }
  50. //modals
  51. function closeAllModals(){
  52. console.log('theme : closeAllModals');
  53. // TODO: animate the remove
  54. _$content_container.html('');
  55. };
  56. init();
  57. }
  58. $(document).ready(function($) {
  59. var edlptheme = new EdlpTheme();
  60. });
  61. })(jQuery);