Disable the data browswer when the database is not available.
authorTom Hughes <tom@compton.nu>
Thu, 26 Jun 2008 17:36:21 +0000 (17:36 +0000)
committerTom Hughes <tom@compton.nu>
Thu, 26 Jun 2008 17:36:21 +0000 (17:36 +0000)
app/controllers/application.rb
app/controllers/browse_controller.rb
app/views/site/index.rhtml

index 7570fd82a072d2af2d2e70dd0e33cd2d83df391d..918e4b617822610bcd33c23ae5c48660af7e8b08 100644 (file)
@@ -43,8 +43,8 @@ class ApplicationController < ActionController::Base
     end 
   end 
 
-  def check_database_availability
-    if OSM_STATUS == :database_offline
+  def check_database_availability(need_api = false)
+    if OSM_STATUS == :database_offline or (need_api and OSM_STATUS == :api_offline)
       redirect_to :controller => 'site', :action => 'offline'
     end
   end
index fd482119d91870f680b1d204dc330bec7bd7f60f..f3a04519cbd362b5f8133a1c7c079d7ef9dda7ff 100644 (file)
@@ -1,7 +1,9 @@
 class BrowseController < ApplicationController
-  before_filter :authorize_web  
   layout 'site'
 
+  before_filter :authorize_web  
+  before_filter { |c| c.check_database_availability(true) }
+
   def start 
   end
   
index 482ed85b89880744e8d556d5082c41a0f627889c..2cca4d5292317b8a3728e94ed33e3ec6e057312a 100644 (file)
@@ -94,9 +94,11 @@ by the OpenStreetMap project and its contributors.
   function mapInit(){
     map = createMap("map");
 
+    <% unless OSM_STATUS == :api_offline or OSM_STATUS == :database_offline %>
     map.dataLayer = new OpenLayers.Layer("Data", { "visibility": false });
     map.dataLayer.events.register("visibilitychanged", map.dataLayer, toggleData);
     map.addLayer(map.dataLayer);
+    <% end %>
 
     <% if bbox %>
     var bbox = new OpenLayers.Bounds(<%= minlon %>, <%= minlat %>, <%= maxlon %>, <%= maxlat %>);