viewmap.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /* globals $, jQuery, L */
  2. var RapportoMarker = L.Circle.extend({ options: { originalData: 0 } })
  3. function viewMap () {
  4. var map = L.map('mapid').setView([43.797, 11.2400], 11)
  5. // Set up the OSM layer
  6. L.tileLayer(
  7. 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'
  8. ).addTo(map)
  9. $.getJSON('/api/rapporti/get' + (new URL(document.URL).search), function (data) {
  10. for (var i in data.rapporti) {
  11. var p = data.rapporti[i]
  12. var marker = new RapportoMarker([p.lat, p.lng], {
  13. color: p.colore,
  14. fillColor: p.colore,
  15. fillOpacity: 0.3,
  16. radius: p.radius,
  17. originalData: p
  18. })
  19. marker.addTo(map).bindPopup(p.explaination)
  20. marker.off('click')
  21. marker.on('click', onMarkerClicked)
  22. }
  23. })
  24. function onMarkerClicked (evt) {
  25. console.log('T', this)
  26. var data = evt.target.options.originalData
  27. var rid = data.id
  28. $('#dialog').html('<div class="explaination"></div><div class="actions"></div>')
  29. $('#dialog .explaination').text(data.explaination)
  30. $('#dialog .actions').append($('<a href="#">Modifica</a>').attr('href', '/api/rapporti/' + rid + '/edit'))
  31. $('#dialog').attr('title', rid)
  32. $('#dialog').data('rid', rid)
  33. $('#dialog').data('marker', this)
  34. $('#dialog').dialog({
  35. modal: true,
  36. beforeClose: function (event, ui) {
  37. $('#dialog').dialog('destroy')
  38. $('#dialog')[0].outerHTML = '<div id="dialog"></div>'
  39. }
  40. })
  41. }
  42. $('body').on('click', '.btn-elimina', function onCancella (evt) {
  43. var rid = $('#dialog').data('rid')
  44. console.log('cancelliamo?', rid)
  45. $.post('/api/rapporti/delete', { rid: rid }, function () {
  46. map.removeLayer($('#dialog').data('marker'))
  47. $('#dialog').dialog('close')
  48. })
  49. })
  50. }
  51. jQuery(function ($) {
  52. $('#mapid').css('height', $(window).height() - 200)
  53. viewMap()
  54. })