X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/2b733d220d4a422c7d5f55ddc5925431e95b8618..2c101e78aee8cd3ccf3f24a0ecaa22fa77593c5c:/src/wolnelektury/static/js/book_text/references.js?ds=sidebyside diff --git a/src/wolnelektury/static/js/book_text/references.js b/src/wolnelektury/static/js/book_text/references.js index 89663a69f..cdfc1f06f 100644 --- a/src/wolnelektury/static/js/book_text/references.js +++ b/src/wolnelektury/static/js/book_text/references.js @@ -4,22 +4,22 @@ if (interestingReferences) { interestingReferences = $.parseJSON(interestingReferences); } - if (interestingReferences) { + if (Object.keys(interestingReferences).length) { $("#settings-references").css('display', 'block'); } - - var map_enabled = false; - var marker = L.marker([0,0]); + var marker = L.circleMarker([0,0]); var map = null; function enable_map() { + $("#reference-map").show('slow'); + if (map_enabled) return; map = L.map('reference-map').setView([0, 0], 11); - L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { - attribution: 'Map data © OpenStreetMap contributors' + L.tileLayer('https://tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey=a8a97f0ae5134403ac38c1a075b03e15', { + attribution: 'Maps © Thunderforest, Data © OpenStreetMap contributors' }).addTo(map); map_enabled = true; @@ -29,13 +29,18 @@ } - $("#reference-close").on("click", function() { + $("#reference-close").on("click", function(event) { + event.preventDefault(); $("#reference-box").hide(); }); $('a.reference').each(function() { $this = $(this); uri = $this.attr('data-uri'); + if (uri == '') { + $this.remove(); + return; + } if (interestingReferences.hasOwnProperty(uri)) { $this.addClass('interesting'); ref = interestingReferences[uri]; @@ -58,11 +63,18 @@ if (ref.location) { enable_map(); - marker.setLatLng(ref.location); - //marker.setContent(ref.label); + let newLoc = [ + ref.location[0], + ref.location[1] + Math.round( + (map.getCenter().lng - ref.location[1]) / 360 + ) * 360 + ]; + + marker.setLatLng(newLoc); marker.bindTooltip(ref.label).openTooltip(); map.addLayer(marker); - map.panTo(ref.location, { + + map.panTo(newLoc, { animate: true, duration: 1, }); @@ -73,17 +85,23 @@ } } - $("#reference-images img").remove(); + $("#reference-images a").remove(); if (ref.images) { $.each(ref.images, function(i, e) { $i = $(""); $i.attr('href', e.page); - $('img', $i).attr('src', e.url); + $('img', $i).attr('src', e.thumburl || e.url); + if (e.thumbresolution) { + $('img', $i).attr('width', e.thumbresolution[0]).attr('height', e.thumbresolution[1]); + } + $("#reference-images").append($i); }) } $("#reference-link").text(ref.label); $("#reference-link").attr('href', ref.wikipedia_link); + + _paq.push(['trackEvent', 'html', 'reference']); }); })})(jQuery);