Fix escaping json
[wolnelektury.git] / src / wolnelektury / static / js / book_text / references.js
index 9fd6928..805f24d 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;
 
         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 © <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;
     }
             $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')
+            }
         }
     });
 
         }
 
         $("#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']);
     });
 
     });
 
     $('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();
         let range = document.createRange();
 
         let $p = $(this).nextAll('.paragraph').first()
-        range.selectNode($p[0]);
+        range.selectNodeContents($p[0]);
         sel.addRange(range);
         
         qbox.showForSelection(sel);
                         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);