From 509a4f501be15d1059ad16a107c21bc70a7f27cd Mon Sep 17 00:00:00 2001 From: Tim Schumacher Date: Thu, 10 Jul 2014 11:48:00 +0200 Subject: [PATCH] Only initialize the various elements if they are in the dom. --- .../Resources/assets/js/events.js | 103 ++++++++++-------- 1 file changed, 55 insertions(+), 48 deletions(-) diff --git a/src/Hackspace/Bundle/CalciferBundle/Resources/assets/js/events.js b/src/Hackspace/Bundle/CalciferBundle/Resources/assets/js/events.js index fc39c19..bc722d8 100755 --- a/src/Hackspace/Bundle/CalciferBundle/Resources/assets/js/events.js +++ b/src/Hackspace/Bundle/CalciferBundle/Resources/assets/js/events.js @@ -9,57 +9,64 @@ function addGeoCoordinates(ev) { } var map = null; $(document).ready(function () { - $('.icon.link').popup(); - jQuery('input[type=datetime]').datetimepicker({lang: 'de', format: 'Y-m-d H:i'}); - - $('.add_geo').click(addGeoCoordinates); - map = L.map('map'); - - // add an OpenStreetMap tile layer - L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { - attribution: '© OpenStreetMap contributors' - }).addTo(map); - - map.setView([51.505, -0.09], 0); - - L.Icon.Default.imagePath = '/css/images'; - var popup = L.popup(); - - var marker = L.marker(); - - function onMapClick(e) { - marker - .setLatLng(e.latlng) - //.setContent("You clicked the map at " + e.latlng.toString()) - .addTo(map); + if ($('.icon.link').length > 0) { + $('.icon.link').popup(); } - map.on('click', onMapClick); + if (jQuery('input[type=datetime]').length > 0) { + jQuery('input[type=datetime]').datetimepicker({lang: 'de', format: 'Y-m-d H:i'}); + } - $('.geo.chooser').modal('setting', { - closable: false, - onApprove: function () { - var coords = marker.getLatLng(); - $('input[name=location_lat]').val(coords.lat); - $('input[name=location_lon]').val(coords.lng); - $('input[name=location]').css('margin-bottom', '3.2rem'); - $('span.coords').text('Folgende Koordinaten sind angegeben: lat:' + coords.lat + ', lon:' + coords.lng); - }, - onDeny: function () { + if (jQuery('#map').length == 1) { + $('.add_geo').click(addGeoCoordinates); + map = L.map('map'); - }, - onVisible: function () { - map.invalidateSize(true); - var lat = parseFloat($('input[name=location_lat]').val()); - var lon = parseFloat($('input[name=location_lon]').val()); - if ((lat > 0) && (lon > 0)) { - map.setView([lat,lon],16); - var latlng = new L.LatLng(lat,lon); - marker.setLatLng(latlng); - marker.addTo(map); - } else { - map.locate({setView: true}); - } + // add an OpenStreetMap tile layer + L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { + attribution: '© OpenStreetMap contributors' + }).addTo(map); + + map.setView([51.505, -0.09], 0); + + L.Icon.Default.imagePath = '/css/images'; + var popup = L.popup(); + + var marker = L.marker(); + + function onMapClick(e) { + marker + .setLatLng(e.latlng) + //.setContent("You clicked the map at " + e.latlng.toString()) + .addTo(map); } - }).modal('attach events', '.add_geo', 'show'); + + map.on('click', onMapClick); + + $('.geo.chooser').modal('setting', { + closable: false, + onApprove: function () { + var coords = marker.getLatLng(); + $('input[name=location_lat]').val(coords.lat); + $('input[name=location_lon]').val(coords.lng); + $('input[name=location]').css('margin-bottom', '3.2rem'); + $('span.coords').text('Folgende Koordinaten sind angegeben: lat:' + coords.lat + ', lon:' + coords.lng); + }, + onDeny: function () { + + }, + onVisible: function () { + map.invalidateSize(true); + var lat = parseFloat($('input[name=location_lat]').val()); + var lon = parseFloat($('input[name=location_lon]').val()); + if ((lat > 0) && (lon > 0)) { + map.setView([lat, lon], 16); + var latlng = new L.LatLng(lat, lon); + marker.setLatLng(latlng); + marker.addTo(map); + } else { + map.locate({setView: true}); + } + } + }).modal('attach events', '.add_geo', 'show'); + } });