Fix hearts
[wolnelektury.git] / src / wolnelektury / static / js / book_text / references.js
index 87c8061..3f5b7e3 100644 (file)
     }
 
     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;
@@ -22,6 +24,7 @@
         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);
+        marker = L.circleMarker([0,0]);
 
         map_enabled = true;
     }
             leftoffset = x - margin;
         } else {
             right = '';
-        
-            // default position.
-            leftoffset = 40;
+
             leftoffset = $elem.data('default-leftoffset');
+            if (leftoffset === undefined) {
+                leftoffset = $elem.width() / 2;
+            }
             
             nx = x - leftoffset;
 
 
             // Do we need to move away from the right?
             if (nx + boxwidth > maxx) {
-                // ACTUALLY CALCULATE STUFF
-                // if maxx - minx < 470 px -- daj z lewej do prawej i już!
-                
                 right = '';
                 let d = nx + boxwidth - maxx;
-                //if (leftoffset + d > $elem.width() - 10) d = $elem.width() - leftoffset - 10;
                 nx -= d;
                 leftoffset += d;
             }
             left: nx,
             right: right
         });
+        $elem.css({
+            display: "block"
+        });
         if (!$elem.data('attach-bottom')) {
             ny = y - $elem.height() - 10;
         } else {
             left: leftoffset - 6
         });
 
-        $elem.css({
-            display: "block"
-        });
     }
 
     function closeNoteBox() {
         if ($(this).parents('#footnotes').length) return;
         event.preventDefault();
 
-
-
-        let x = $(this).width() / 2, y = 0;
-        let elem = $(this);
-        while (elem.attr('id') != 'book-text') {
-            let p = $(elem).position();
-            x += p.left;
-            y += p.top;
-            elem = elem.parent();
-        }
         href = $(this).attr('href').substr(1);
         content = $("[name='" + href + "']").next().next().html();
         if (!content) return;
         $("#annotation-content").html(content);
         $("#footnote-link").attr('href', '#' + href)
 
-        
         putNoteAt($('#annotation-box'), this);
         event.stopPropagation();
     });
     });
 
     $('a.anchor').on('click', function(e) {
+        // Workaround for bad TOC markers.
+        if ($(this).closest('#toc').length) return;
+        if ($(this).closest('#wltoc').length) return;
         e.preventDefault();
 
         let sel = window.getSelection();
         let range = document.createRange();
 
         let $p = $(this).nextAll('.paragraph').first()
-        range.selectNode($p[0]);
+        range.selectNodeContents($p[0]);
         sel.addRange(range);
         
         qbox.showForSelection(sel);