From 9553c8daac73f06af704a87ace7294f751a77b8f Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Sat, 23 May 2020 11:38:25 +0100 Subject: Add lazy image loading on list items. --- web/js/map-OpenLayers.js | 3 +++ 1 file changed, 3 insertions(+) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 182cd79a1..d5fd36e97 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -1278,6 +1278,9 @@ OpenLayers.Format.FixMyStreet = OpenLayers.Class(OpenLayers.Format.JSON, { var reports_list; if (typeof(obj.reports_list) != 'undefined' && (reports_list = document.getElementById('js-reports-list'))) { reports_list.innerHTML = obj.reports_list; + if (fixmystreet.loading_recheck) { + fixmystreet.loading_recheck(); + } if ( $('.item-list--reports').data('show-old-reports') ) { $('#show_old_reports_wrapper').removeClass('hidden'); } else { -- cgit v1.2.3 From 009c42448270895f97302747a69485de432d537d Mon Sep 17 00:00:00 2001 From: Struan Donald Date: Tue, 19 May 2020 17:02:50 +0100 Subject: Add aerial view toggle to Bing Maps & subclasses. Co-authored-by: Dave Arter Co-authored-by: Matthew Somerville --- web/js/map-OpenLayers.js | 2 ++ 1 file changed, 2 insertions(+) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index d5fd36e97..3db59f218 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -958,6 +958,8 @@ $.extend(fixmystreet.utils, { ); } else if (layer_options.matrixIds) { layer = new fixmystreet.map_type(layer_options); + } else if (fixmystreet.layer_options[i].map_type) { + layer = new fixmystreet.layer_options[i].map_type(fixmystreet.layer_name, layer_options); } else { layer = new fixmystreet.map_type(fixmystreet.layer_name, layer_options); } -- cgit v1.2.3 From c0bead8312c3339ecce0a4886e15a45d5ceeaca8 Mon Sep 17 00:00:00 2001 From: M Somerville Date: Mon, 3 Aug 2020 17:26:10 +0100 Subject: Factor together BNG inspector pin field function. Update all name= fields, that should be fine. --- web/js/map-OpenLayers.js | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 3db59f218..1a04756c5 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -146,6 +146,21 @@ $.extend(fixmystreet.utils, { }; }, + update_pin_input_fields: function(lonlat) { + var bng = lonlat.clone().transform( + new OpenLayers.Projection("EPSG:4326"), + new OpenLayers.Projection("EPSG:27700") // TODO: Handle other projections + ); + var lat = lonlat.lat.toFixed(6); + var lon = lonlat.lon.toFixed(6); + $("#problem_northing").text(bng.lat.toFixed(1)); + $("#problem_easting").text(bng.lon.toFixed(1)); + $("#problem_latitude").text(lat); + $("#problem_longitude").text(lon); + $("input[name=latitude]").val(lat); + $("input[name=longitude]").val(lon); + }, + display_around: function() { // Required after changing the size of the map element fixmystreet.map.updateSize(); @@ -627,17 +642,9 @@ $.extend(fixmystreet.utils, { // Not actually on the inspect report page return; } - fixmystreet.maps.admin_drag(function(lonlat) { - var bng = lonlat.clone().transform( - new OpenLayers.Projection("EPSG:4326"), - new OpenLayers.Projection("EPSG:27700") // TODO: Handle other projections - ); - $("#problem_northing").text(bng.y.toFixed(1)); - $("#problem_easting").text(bng.x.toFixed(1)); - $("#problem_latitude").text(lonlat.y.toFixed(6)); - $("#problem_longitude").text(lonlat.x.toFixed(6)); - $("input[name=latitude]").val(lonlat.y.toFixed(6)); - $("input[name=longitude]").val(lonlat.x.toFixed(6)); + fixmystreet.maps.admin_drag(function(geom) { + var lonlat = new OpenLayers.LonLat(geom.x, geom.y); + fixmystreet.maps.update_pin_input_fields(lonlat); }, false); } -- cgit v1.2.3 From 502423c7a1ce0fc93657b08fd935aa380890d091 Mon Sep 17 00:00:00 2001 From: M Somerville Date: Mon, 3 Aug 2020 19:09:26 +0100 Subject: Allow inspectors to change report asset. This hopefully copes with assets displayed by category or by group, and updates the button to show/hide on category change. --- web/js/map-OpenLayers.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 1a04756c5..553fd6c3a 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -132,14 +132,11 @@ $.extend(fixmystreet.utils, { new OpenLayers.Projection("EPSG:4326") ); - var lat = transformedLonlat.lat.toFixed(6); - var lon = transformedLonlat.lon.toFixed(6); - - document.getElementById('fixmystreet.latitude').value = lat; - document.getElementById('fixmystreet.longitude').value = lon; - + fixmystreet.maps.update_pin_input_fields(transformedLonlat); $(fixmystreet).trigger('maps:update_pin', [ lonlat ]); + var lat = transformedLonlat.lat.toFixed(6); + var lon = transformedLonlat.lon.toFixed(6); return { 'url': { 'lon': lon, 'lat': lat }, 'state': { 'lon': lonlat.lon, 'lat': lonlat.lat } -- cgit v1.2.3 From 82ad3f1db8debc125e8d54a372b26379a54d63db Mon Sep 17 00:00:00 2001 From: M Somerville Date: Thu, 13 Aug 2020 17:42:21 +0100 Subject: Only create one admin drag control. It was previously creating one on each report you looked at. A side effect of which was upping the z-index of the layer by one each time, making adding asset layers bit trickier. --- web/js/map-OpenLayers.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 553fd6c3a..d94d0706f 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -290,9 +290,12 @@ $.extend(fixmystreet.utils, { // pin_moved_callback is called with a new EPSG:4326 OpenLayers.LonLat if // the user drags the pin and confirms its new location. admin_drag: function(pin_moved_callback, confirm_change) { + if (fixmystreet.maps.admin_drag_control) { + return; + } confirm_change = confirm_change || false; var original_lonlat; - var drag = new OpenLayers.Control.DragFeatureFMS( fixmystreet.markers, { + var drag = fixmystreet.maps.admin_drag_control = new OpenLayers.Control.DragFeatureFMS( fixmystreet.markers, { onStart: function(feature, e) { // Keep track of where the feature started, so we can put it // back if the user cancels the operation. -- cgit v1.2.3 From a78ffca120498653b52ccbe51703b526d6e7b4ab Mon Sep 17 00:00:00 2001 From: M Somerville Date: Thu, 13 Aug 2020 17:43:38 +0100 Subject: When inspector changing asset, prevent background map click. --- web/js/map-OpenLayers.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index d94d0706f..ada51cbc0 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -1330,8 +1330,13 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { // If we are looking at an individual report, and the report was // ajaxed into the DOM from the all reports page, then clicking // the map background should take us back to the all reports list. - if ($('.js-back-to-report-list').length) { - $('.js-back-to-report-list').trigger('click'); + var asset_button_clicked = $('.btn--change-asset').hasClass('asset-spot'); + if (asset_button_clicked) { + return true; + } + var back_link = $('.js-back-to-report-list'); + if (back_link.length) { + back_link.trigger('click'); return true; } -- cgit v1.2.3