new map on budget homepage
This commit is contained in:
@@ -24,6 +24,7 @@ App.Map =
|
||||
longitudeInputSelector = $(element).data('longitude-input-selector')
|
||||
zoomInputSelector = $(element).data('zoom-input-selector')
|
||||
removeMarkerSelector = $(element).data('marker-remove-selector')
|
||||
addMarkerInvestemts = $(element).data('marker-investments-coordenates')
|
||||
editable = $(element).data('marker-editable')
|
||||
marker = null;
|
||||
markerIcon = L.divIcon(
|
||||
@@ -69,11 +70,15 @@ App.Map =
|
||||
$(zoomInputSelector).val ''
|
||||
return
|
||||
|
||||
contentPopup = (title,investment,budget) ->
|
||||
content = "<a href='/budgets/#{budget}/investments/#{investment}'>#{title}</a>"
|
||||
return content
|
||||
|
||||
mapCenterLatLng = new (L.LatLng)(mapCenterLatitude, mapCenterLongitude)
|
||||
map = L.map(element.id).setView(mapCenterLatLng, zoom)
|
||||
L.tileLayer(mapTilesProvider, attribution: mapAttribution).addTo map
|
||||
|
||||
if markerLatitude && markerLongitude
|
||||
if markerLatitude && markerLongitude && !addMarkerInvestemts
|
||||
marker = createMarker(markerLatitude, markerLongitude)
|
||||
|
||||
if editable
|
||||
@@ -81,6 +86,11 @@ App.Map =
|
||||
map.on 'zoomend', updateFormfields
|
||||
map.on 'click', moveOrPlaceMarker
|
||||
|
||||
if addMarkerInvestemts
|
||||
for i in addMarkerInvestemts
|
||||
add_marker=createMarker(i.lat , i.long)
|
||||
add_marker.bindPopup(contentPopup(i.investment_title, i.investment_id, i.budget_id))
|
||||
|
||||
toogleMap: ->
|
||||
$('.map').toggle()
|
||||
$('.js-location-map-remove-marker').toggle()
|
||||
$('.js-location-map-remove-marker').toggle()
|
||||
|
||||
@@ -15,6 +15,8 @@ class BudgetsController < ApplicationController
|
||||
|
||||
def index
|
||||
@budgets = @budgets.order(:created_at)
|
||||
budgets_map_locations = Budget.where.not(phase: 'drafting').map{ |budget| budget.investments.map{|investment| investment.map_location}}.flatten.compact
|
||||
@budgets_coordenates = budgets_map_locations.map{ |ml| {lat: ml.latitude, long: ml.longitude, investment_title: ml.investment.title , investment_id: ml.investment.id, budget_id: ml.investment.budget.id}}
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -24,11 +24,12 @@ module MapLocationsHelper
|
||||
"remove-marker-link-#{dom_id(map_location)}"
|
||||
end
|
||||
|
||||
def render_map(map_location, parent_class, editable, remove_marker_label)
|
||||
def render_map(map_location, parent_class, editable, remove_marker_label,investments_coordenates=nil)
|
||||
map_location = MapLocation.new if map_location.nil?
|
||||
map = content_tag_for :div,
|
||||
map_location,
|
||||
class: "map",
|
||||
data: prepare_map_settings(map_location, editable, parent_class)
|
||||
data: prepare_map_settings(map_location, editable, parent_class, investments_coordenates)
|
||||
map += map_location_remove_marker(map_location, remove_marker_label) if editable
|
||||
map
|
||||
end
|
||||
@@ -44,23 +45,26 @@ module MapLocationsHelper
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
private
|
||||
|
||||
def prepare_map_settings(map_location, editable, parent_class)
|
||||
def prepare_map_settings(map_location, editable, parent_class,marker_investments_coordenates=nil)
|
||||
options = {
|
||||
map: "",
|
||||
map_center_latitude: map_location_latitude(map_location),
|
||||
map_center_longitude: map_location_longitude(map_location),
|
||||
map_zoom: map_location_zoom(map_location),
|
||||
map_tiles_provider: Rails.application.secrets.map_tiles_provider,
|
||||
map_tiles_provider_attribution: Rails.application.secrets.map_tiles_provider_attribution,
|
||||
marker_editable: editable,
|
||||
marker_latitude: map_location.latitude,
|
||||
marker_longitude: map_location.longitude,
|
||||
map_center_latitude: map_location_latitude(map_location),
|
||||
map_center_longitude: map_location_longitude(map_location),
|
||||
map_zoom: map_location_zoom(map_location),
|
||||
marker_latitude: map_location_latitude(map_location.latitude),
|
||||
marker_longitude: map_location_longitude(map_location.longitude),
|
||||
marker_investments_coordenates: marker_investments_coordenates,
|
||||
marker_remove_selector: "##{map_location_remove_marker_link_id(map_location)}",
|
||||
latitude_input_selector: "##{map_location_input_id(parent_class, 'latitude')}",
|
||||
longitude_input_selector: "##{map_location_input_id(parent_class, 'longitude')}",
|
||||
zoom_input_selector: "##{map_location_input_id(parent_class, 'zoom')}"
|
||||
zoom_input_selector: "##{map_location_input_id(parent_class, 'zoom')}",
|
||||
marker_investments_coordenates: marker_investments_coordenates
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<% end %>
|
||||
|
||||
<%= render "shared/section_header", i18n_namespace: "budgets.index.section_header", image: "budgets" %>
|
||||
|
||||
<%= render_map(nil, "budgets",false,nil, @budgets_coordenates) %>
|
||||
<div class="row margin-top">
|
||||
<div class="small-12 medium-9 column">
|
||||
<table>
|
||||
|
||||
Reference in New Issue
Block a user