From 3ca642271aac133eb3f0b32e9c5d096e61479cbe Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Thu, 8 Aug 2013 16:31:01 -0700 Subject: [PATCH 1/1] Redirect /edit and /export with old-style edit params --- app/controllers/site_controller.rb | 38 ++++++++++++++----------- test/functional/site_controller_test.rb | 11 +++++++ 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/app/controllers/site_controller.rb b/app/controllers/site_controller.rb index fb034e22c..7c8ee32b3 100644 --- a/app/controllers/site_controller.rb +++ b/app/controllers/site_controller.rb @@ -4,27 +4,11 @@ class SiteController < ApplicationController before_filter :authorize_web before_filter :set_locale + before_filter :redirect_map_params, :only => [:index, :edit, :export] before_filter :require_user, :only => [:edit, :welcome] before_filter :require_oauth, :only => [:index] def index - anchor = [] - - if params[:lat] && params[:lon] - anchor << "map=#{params.delete(:zoom) || 5}/#{params.delete(:lat)}/#{params.delete(:lon)}" - end - - if params[:layers] - anchor << "layers=#{params.delete(:layers)}" - elsif params.delete(:notes) == 'yes' - anchor << "layers=N" - end - - if anchor.present? - redirect_to params.merge(:anchor => anchor.join('&')) - return - end - unless STATUS == :database_readonly or STATUS == :database_offline session[:location] ||= OSM::IPLocation(request.env['REMOTE_ADDR']) end @@ -90,4 +74,24 @@ class SiteController < ApplicationController def id render "id", :layout => false end + + private + + def redirect_map_params + anchor = [] + + if params[:lat] && params[:lon] + anchor << "map=#{params.delete(:zoom) || 5}/#{params.delete(:lat)}/#{params.delete(:lon)}" + end + + if params[:layers] + anchor << "layers=#{params.delete(:layers)}" + elsif params.delete(:notes) == 'yes' + anchor << "layers=N" + end + + if anchor.present? + redirect_to params.merge(:anchor => anchor.join('&')) + end + end end diff --git a/test/functional/site_controller_test.rb b/test/functional/site_controller_test.rb index 4f41858e8..8885fae28 100644 --- a/test/functional/site_controller_test.rb +++ b/test/functional/site_controller_test.rb @@ -94,6 +94,17 @@ class SiteControllerTest < ActionController::TestCase assert_redirected_to :controller => :site, :action => 'index', :anchor => 'map=3/4/5&layers=T' end + def test_edit_redirect + get :edit, :lat => 4, :lon => 5 + assert_redirected_to :controller => :site, :action => 'edit', :anchor => 'map=5/4/5' + + get :edit, :lat => 4, :lon => 5, :zoom => 3 + assert_redirected_to :controller => :site, :action => 'edit', :anchor => 'map=3/4/5' + + get :edit, :lat => 4, :lon => 5, :zoom => 3, :editor => 'id' + assert_redirected_to :controller => :site, :action => 'edit', :editor => 'id', :anchor => 'map=3/4/5' + end + def test_permalink get :permalink, :code => 'wBz3--' assert_redirected_to :controller => :site, :action => 'index', :anchor => 'map=3/4.8779296875/3.955078125' -- 2.43.2