From 7f89545b2cc5b6ae020aa11431fc4b28c5cfa436 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 2 Dec 2012 14:55:56 +0000 Subject: [PATCH] Police the MAX_NOTE_REQUEST_AREA limit on the client --- app/assets/javascripts/index/notes.js.erb | 34 +++++++++++++---------- app/assets/javascripts/osm.js.erb | 13 +++++---- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/app/assets/javascripts/index/notes.js.erb b/app/assets/javascripts/index/notes.js.erb index 365d4f11c..776fa0983 100644 --- a/app/assets/javascripts/index/notes.js.erb +++ b/app/assets/javascripts/index/notes.js.erb @@ -69,28 +69,32 @@ $(document).ready(function () { function loadNotes() { var bounds = map.getBounds(); - var url = "/api/" + OSM.API_VERSION + "/notes.json?bbox=" + bounds.toBBOX(); + var size = bounds.getSize(); - $.ajax({ - url: url, - success: function (json) { - var oldNotes = notes; + if (size <= OSM.MAX_NOTE_REQUEST_AREA) { + var url = "/api/" + OSM.API_VERSION + "/notes.json?bbox=" + bounds.toBBOX(); - notes = {}; + $.ajax({ + url: url, + success: function (json) { + var oldNotes = notes; - json.features.forEach(function (feature) { - var marker = oldNotes[feature.properties.id]; + notes = {}; - delete oldNotes[feature.properties.id]; + json.features.forEach(function (feature) { + var marker = oldNotes[feature.properties.id]; - notes[feature.properties.id] = updateMarker(marker, feature); - }); + delete oldNotes[feature.properties.id]; - for (id in oldNotes) { - noteLayer.removeLayer(oldNotes[id]); + notes[feature.properties.id] = updateMarker(marker, feature); + }); + + for (id in oldNotes) { + noteLayer.removeLayer(oldNotes[id]); + } } - } - }); + }); + } }; function popupOptions() { diff --git a/app/assets/javascripts/osm.js.erb b/app/assets/javascripts/osm.js.erb index 7a8f3da3e..ebd97f39b 100644 --- a/app/assets/javascripts/osm.js.erb +++ b/app/assets/javascripts/osm.js.erb @@ -1,13 +1,14 @@ OSM = { <% if defined?(PIWIK_LOCATION) and defined?(PIWIK_SITE) %> - PIWIK_LOCATION: <%= PIWIK_LOCATION.to_json %>, - PIWIK_SITE: <%= PIWIK_SITE.to_json %>, + PIWIK_LOCATION: <%= PIWIK_LOCATION.to_json %>, + PIWIK_SITE: <%= PIWIK_SITE.to_json %>, <% end %> - MAX_REQUEST_AREA: <%= MAX_REQUEST_AREA.to_json %>, - SERVER_URL: <%= SERVER_URL.to_json %>, - API_VERSION: <%= API_VERSION.to_json %>, - STATUS: <%= STATUS.to_json %>, + MAX_REQUEST_AREA: <%= MAX_REQUEST_AREA.to_json %>, + SERVER_URL: <%= SERVER_URL.to_json %>, + API_VERSION: <%= API_VERSION.to_json %>, + STATUS: <%= STATUS.to_json %>, + MAX_NOTE_REQUEST_AREA: <%= MAX_NOTE_REQUEST_AREA.to_json %>, apiUrl: function (object) { var url = "/api/" + OSM.API_VERSION + "/" + object.type + "/" + object.id; -- 2.43.2