You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
3.0 KiB

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