X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/102acc0b6eb715826f26b5082611604cf6ebe240..9b31d2bc42b0e1239609cd92c532dfd345e48d0f:/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 3f5b7e37f..7a14905c0 100644
--- a/src/wolnelektury/static/js/book_text/references.js
+++ b/src/wolnelektury/static/js/book_text/references.js
@@ -13,20 +13,21 @@
var marker = null;
var map = null;
- function enable_map() {
+ function enable_map(callback) {
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', {
- attribution: 'Maps © Thunderforest, Data © OpenStreetMap contributors'
- }).addTo(map);
- marker = L.circleMarker([0,0]);
-
- map_enabled = true;
+ if (!map_enabled) {
+ map = L.map('reference-map').setView([0, 0], 11);
+ 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;
+ }
+ $("#reference-map").show('slow', () => {
+ map.invalidateSize();
+ callback();
+ });
}
function disable_map() {
$("#reference-map").hide('slow');
@@ -49,8 +50,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')
+ }
}
});
@@ -65,7 +70,7 @@
ref = interestingReferences[uri];
if (ref.location) {
- enable_map();
+ enable_map(() => {
let newLoc = [
ref.location[0],
@@ -82,6 +87,7 @@
animate: true,
duration: 1,
});
+ });
} else {
disable_map();
if (map) {
@@ -104,8 +110,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']);
});
@@ -610,6 +622,7 @@
$('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();
@@ -662,14 +675,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);