Forgotten req.
[wolnelektury.git] / src / wolnelektury / static / js / book_text / references.js
1 (function($){$(function(){
2
3     var interestingReferences = $("#interesting-references").text();
4     if (interestingReferences) {
5         interestingReferences = $.parseJSON(interestingReferences);
6     }
7     if (interestingReferences) {
8         $("settings-references").show();
9     }
10
11     
12     
13     var map_enabled = false;
14     var marker = L.marker([0,0]);
15     var map = null;
16
17     function enable_map() {
18         if (map_enabled) return;
19
20         map = L.map('reference-map').setView([0, 0], 11);
21         L.tileLayer('https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png?lang=pl', {
22             attribution: 'Map data &copy; <a href="http://openstreetmap.org/copyright">OpenStreetMap contributors</a>'
23         }).addTo(map);
24
25         map_enabled = true;
26     }
27     function disable_map() {
28         $("#reference-map").hide('slow');
29     }
30     
31
32     $("#reference-close").on("click", function() {
33         $("#reference-box").hide();
34     });
35     
36     $('a.reference').each(function() {
37         $this = $(this);
38         uri = $this.attr('data-uri');
39         console.log('check ' + uri);
40         if (interestingReferences.hasOwnProperty(uri)) {
41             $this.addClass('interesting');
42             ref = interestingReferences[uri];
43
44             $this.attr('href', ref.wikipedia_link);
45             $this.attr('target', '_blank');
46         }
47     });
48
49
50     $('a.reference.interesting').on('click', function(event) {
51         event.preventDefault();
52
53         $("#reference-box").show();
54
55         $this = $(this);
56         uri = $this.attr('data-uri');
57         ref = interestingReferences[uri];
58
59         if (ref.location) {
60             enable_map();
61
62             marker.setLatLng(ref.location);
63             //marker.setContent(ref.label);
64             marker.bindTooltip(ref.label).openTooltip();
65             map.addLayer(marker);
66             map.panTo(ref.location, {
67                 animate: true,
68                 duration: 1,
69             });
70         } else {
71             disable_map();
72             if (map) {
73                 map.removeLayer(marker);
74             }
75         }
76
77         $("#reference-images img").remove();
78         if (ref.images) {
79             $.each(ref.images, function(i, e) {
80                 $i = $("<a target='_blank'><img></a>");
81                 $i.attr('href', e.page);
82                 $('img', $i).attr('src', e.url);
83                 $("#reference-images").append($i);
84             })
85         }
86
87         $("#reference-link").text(ref.label);
88         $("#reference-link").attr('href', ref.wikipedia_link);
89     });
90 })})(jQuery);