arnaucube
arnaucube/faircoinmap-webappPublic Self-hosted repository
faircoinmap-webapp/statics/localnodes.js
statics/localnodes.jsRaw
 1var urlln = "https://fairplayground.info/datasources/FCLN/FCLN.json";
 2
 3var lns = [];
 4var lnMarkers = L.markerClusterGroup();
 5
 6
 7function getLocalNode(id) {
 8  for(var i=0; i<lns.length; i++) {
 9    if(lns[i].id==id) {
10      return(lns[i]);
11    }
12  }
13  return("not found");
14}
15
16function showLocalNodeRightCard(ln) {
17  console.log(ln);
18  document.getElementById("rightCard-title").innerHTML = ln.name;
19  if(ln.description!=null) {
20    document.getElementById("rightCard-text").innerHTML = ln.description;
21  }else{
22    document.getElementById("rightCard-text").innerHTML = "";
23  }
24  var html = `<img style='width:30px;height:30px;'
25      src='`+ ln.icon + `'
26      title="LocalNode"/>`;
27  document.getElementById("rightCard-categories").innerHTML = html;
28  // if(ln.img!=null) {
29    document.getElementById("rightCard-img").src="";
30    document.getElementById("rightCard-img").className = "card-img-top hidden";
31  // } else {
32  //   document.getElementById("rightCard-img").src=ln.icon;
33  //   document.getElementById("rightCard-img").className = "card-img-top";
34  // }
35  document.getElementById("rightCard-web").href= "#";
36  document.getElementById("rightCard-web").innerHTML = "";
37  document.getElementById("rightCard-mastodon").href="#";
38  document.getElementById("rightCard-mastodon").innerHTML="";
39  document.getElementById("rightCard-twitter").href="#";
40  document.getElementById("rightCard-twitter").innerHTML="";
41  document.getElementById("rightCard-facebook").href="#";
42  document.getElementById("rightCard-facebook").innerHTML="";
43  document.getElementById("rightCard-telegram").href="#";
44  document.getElementById("rightCard-telegram").innerHTML="";
45  document.getElementById("rightCard-email").href="#";
46  document.getElementById("rightCard-email").innerHTML="";
47  document.getElementById("rightCard").className+=" rightCard-show";
48}
49function updateLocalNodesMarkers() {
50  lnMarkers.clearLayers();
51  for(var i=0; i<lns.length; i++) {
52    var lat = lns[i].latitude;
53    var lon = lns[i].longitude;
54    var icon = L.divIcon({
55        className: 'markerInvisible',
56        popupAnchor:  [10, 0], // point from which the popup should open relative to the iconAnchor
57        html: "<img style='width:30px;height:30px;' class='marker lnMarker' src='statics/img/categories/faircoop_black.svg' />"
58    });
59    var marker = L.marker([lat, lon], {icon: icon});
60    marker.id = lns[i].id;
61    if(lns[i].description!=null) {
62      marker.bindPopup("<b>"+lns[i].name+"</b><br><i>"+lns[i].description+"</i>");
63    } else {
64      marker.bindPopup("<b>"+lns[i].name+"</b>");
65    }
66    marker.on('mouseover', function(e) {
67      this.openPopup();
68    });
69    marker.on('mouseout', function(e) {
70      this.closePopup();
71    });
72    marker.on('click', function(e) {
73      var ln = getLocalNode(this.id);
74      showLocalNodeRightCard(ln);
75    });
76    lnMarkers.addLayer(marker);
77  }
78  map.addLayer(lnMarkers);
79}
80function showLocalNodes() {
81  $.get(urlln, function(data){
82    console.log(data);
83    lns = data;
84    console.log(routes);
85    updateLocalNodesMarkers();
86  });
87}