Experimental book page layout.
[wolnelektury.git] / src / wolnelektury / static / js / book_text / references.js
index dcbb3c8..b9fc40f 100644 (file)
@@ -4,22 +4,22 @@
     if (interestingReferences) {
         interestingReferences = $.parseJSON(interestingReferences);
     }
-    if (interestingReferences) {
-        $("settings-references").show();
+    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://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png?lang=pl', {
-            attribution: 'Map data &copy; <a href="http://openstreetmap.org/copyright">OpenStreetMap contributors</a>'
+        L.tileLayer('https://tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey=a8a97f0ae5134403ac38c1a075b03e15', {
+            attribution: 'Maps © <a href="http://www.thunderforest.com">Thunderforest</a>, Data © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>'
         }).addTo(map);
 
         map_enabled = true;
     }
     
 
-    $("#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');
-        console.log('check ' + uri);
         if (interestingReferences.hasOwnProperty(uri)) {
             $this.addClass('interesting');
             ref = interestingReferences[uri];
         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,
             });
             }
         }
 
-        $("#reference-images img").remove();
+        $("#reference-images a").remove();
         if (ref.images) {
             $.each(ref.images, function(i, e) {
                 $i = $("<a target='_blank'><img></a>");
                 $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);
             })
         }