When the area selected for export is too large to be downloaded from
authorTom Hughes <tom@compton.nu>
Fri, 26 Feb 2010 14:16:04 +0000 (14:16 +0000)
committerTom Hughes <tom@compton.nu>
Fri, 26 Feb 2010 14:16:04 +0000 (14:16 +0000)
the API then disable the export button and display a message rather
than forcibly disabling that export option. Closes #1996.

app/views/export/_start.html.erb
app/views/export/start.rjs
config/locales/en.yml

index 9e3d647..d541aae 100644 (file)
     <div class="export_details">
       <p><%= t'export.start.export_details' %></p>
     </div>
+
+    <div  id="export_osm_too_large">
+      <p class="export_heading"><%= t'export.start.too_large.heading' %></p>
+
+      <div class="export_details">
+        <p><%= t'export.start.too_large.body' %></p>
+      </div
+    </div>
   </div>
 
   <div id="export_mapnik">
@@ -57,6 +65,7 @@
   
   <div id="export_html">
     <p class="export_heading"><%= t'export.start.options' %></p>
+
     <div class="export_details">
       <p><a id="add_marker" href="#"><%= t'export.start.add_marker' %></a></p>
       <p id="marker_inputs" style="display:none">
@@ -66,6 +75,7 @@
     </div>
 
     <p class="export_heading"><%= t'export.start.output' %></p>
+
     <div class="export_details">
       <p><input type="text" id="export_html_text" style="width:95%" /></p>
       <p><%= t'export.start.paste_html' %></p>
index 3c67220..d556d8b 100644 (file)
@@ -191,16 +191,16 @@ page << <<EOJ
     var bounds = new OpenLayers.Bounds($("minlon").value, $("minlat").value, $("maxlon").value, $("maxlat").value);
 
     if (bounds.getWidth() * bounds.getHeight() > #{APP_CONFIG['max_request_area']}) {
-      $("format_osm").disabled = true;
-      $("format_osm").checked = false;
-      $("export_osm").style.display = "none";
+      $("export_osm_too_large").style.display = "block";
     } else {
-      $("format_osm").disabled = false;
+      $("export_osm_too_large").style.display = "none";
     }
 
     var max_scale = maxMapnikScale();
 
-    if ($("format_mapnik").checked && $("mapnik_scale").value < max_scale) {
+    if ($("format_osm").checked && bounds.getWidth() * bounds.getHeight() > #{APP_CONFIG['max_request_area']}) {
+      $("export_commit").disabled = true;
+    } else if ($("format_mapnik").checked && $("mapnik_scale").value < max_scale) {
       $("export_commit").disabled = true;
     } else {
       $("export_commit").disabled = false;
index baff12f..6469096 100644 (file)
@@ -362,6 +362,9 @@ en:
       embeddable_html: "Embeddable HTML"
       licence: "Licence"
       export_details: 'OpenStreetMap data is licensed under the <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons Attribution-ShareAlike 2.0 license</a>.'
+      too_large:
+        heading: "Area Too Large"
+        body: "This area is too large to be exported as OpenStreetMap XML Data. Please zoom in or select a smaller area."
       options: "Options"
       format: "Format"
       scale: "Scale"