X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/f0f0f13c94ff22d0f8a105c604252c6d678a9bab..2d064eb7f455bb9a76aabf23e0da142b2c8f4333:/src/wolnelektury/static/js/book_text/references.js diff --git a/src/wolnelektury/static/js/book_text/references.js b/src/wolnelektury/static/js/book_text/references.js index 9fd69282c..805f24dca 100644 --- a/src/wolnelektury/static/js/book_text/references.js +++ b/src/wolnelektury/static/js/book_text/references.js @@ -10,18 +10,21 @@ } var map_enabled = false; - var marker = L.circleMarker([0,0]); + var marker = null; var map = null; function enable_map() { + if (!$("#reference-map").length) return; + $("#reference-map").show('slow'); if (map_enabled) return; map = L.map('reference-map').setView([0, 0], 11); - L.tileLayer('https://tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey=a8a97f0ae5134403ac38c1a075b03e15', { + L.tileLayer('https://tile.thunderforest.com/neighbourhood/{z}/{x}/{y}.png?apikey=a8a97f0ae5134403ac38c1a075b03e15', { attribution: 'Maps © Thunderforest, Data © OpenStreetMap contributors' }).addTo(map); + marker = L.circleMarker([0,0]); map_enabled = true; } @@ -46,8 +49,12 @@ $this.addClass('interesting'); ref = interestingReferences[uri]; - $this.attr('href', ref.wikipedia_link); - $this.attr('target', '_blank'); + if (ref.wikipedia_link) { + $this.attr('href', ref.wikipedia_link); + $this.attr('target', '_blank'); + } else { + $this.removeAttr('href') + } } }); @@ -101,8 +108,14 @@ } $("#reference-link").text(ref.label); - $("#reference-link").attr('href', ref.wikipedia_link); + if (ref.wikipedia_link) { + $("#reference-link").attr('href', ref.wikipedia_link); + } else { + $('#reference-link').removeAttr('href'); + } + $("#reference-print").attr('href', '/mapa/ulotka/' + ref.id); + _paq.push(['trackEvent', 'html', 'reference']); }); @@ -605,6 +618,10 @@ }); $('a.anchor').on('click', function(e) { + // Workaround for bad TOC markers. + if ($(this).closest('#toc').length) return; + if ($(this).closest('.toc').length) return; + if ($(this).closest('#wltoc').length) return; e.preventDefault(); let sel = window.getSelection(); @@ -612,7 +629,7 @@ let range = document.createRange(); let $p = $(this).nextAll('.paragraph').first() - range.selectNode($p[0]); + range.selectNodeContents($p[0]); sel.addRange(range); qbox.showForSelection(sel); @@ -656,14 +673,15 @@ history.pushState({}, '', anchor); }, }); + return true; } } } scrollToAnchor(window.location.hash) - $('#toc, #themes, #book-text, #annotation').on('click', 'a', function(event) { - event.preventDefault(); - scrollToAnchor($(this).attr('href')); + $('#toc, #themes, #book-text, #annotation, .scroll').on('click', 'a', function(event) { + if (scrollToAnchor($(this).attr('href'))) { + event.preventDefault(); + } }); - })})(jQuery);