From: Tom Hughes Date: Sun, 18 Aug 2024 11:01:17 +0000 (+0100) Subject: Merge remote-tracking branch 'upstream/pull/5092' X-Git-Tag: live~515 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/fb854652ea47d7b3fa1657722f1da768eaba4f25?hp=bb0b08a7e5aacb0f87fa1d0edbcbd46be6ace14b Merge remote-tracking branch 'upstream/pull/5092' --- diff --git a/app/assets/javascripts/osm.js.erb b/app/assets/javascripts/osm.js.erb index e429f4479..e08528f84 100644 --- a/app/assets/javascripts/osm.js.erb +++ b/app/assets/javascripts/osm.js.erb @@ -204,7 +204,9 @@ OSM = { }, zoomPrecision: function(zoom) { - return Math.max(0, Math.ceil(Math.log(zoom) / Math.LN2)); + var pixels = Math.pow(2, 8 + zoom); + var degrees = 180; + return Math.ceil(Math.log10(pixels / degrees)); }, locationCookie: function(map) { diff --git a/app/controllers/user_blocks_controller.rb b/app/controllers/user_blocks_controller.rb index 3b7ef30f9..962eff04c 100644 --- a/app/controllers/user_blocks_controller.rb +++ b/app/controllers/user_blocks_controller.rb @@ -75,11 +75,14 @@ class UserBlocksController < ApplicationController if !user_block_was_active && @user_block.active? flash.now[:error] = t(".inactive_block_cannot_be_reactivated") render :action => "edit" - elsif @user_block.save - flash[:notice] = t(".success") - redirect_to @user_block else - render :action => "edit" + @user_block.ends_at = @user_block.ends_at_was unless user_block_was_active + if @user_block.save + flash[:notice] = t(".success") + redirect_to @user_block + else + render :action => "edit" + end end end else diff --git a/config/routes.rb b/config/routes.rb index 099c285fc..125d6f810 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -333,7 +333,7 @@ OpenStreetMap::Application.routes.draw do get "/user/:display_name/blocks" => "user_blocks#blocks_on", :as => "user_blocks_on" get "/user/:display_name/blocks_by" => "user_blocks#blocks_by", :as => "user_blocks_by" get "/blocks/new/:display_name" => "user_blocks#new", :as => "new_user_block" - resources :user_blocks + resources :user_blocks, :except => :new match "/blocks/:id/revoke" => "user_blocks#revoke", :via => [:get, :post], :as => "revoke_user_block" match "/user/:display_name/blocks/revoke_all" => "user_blocks#revoke_all", :via => [:get, :post], :as => "revoke_all_user_blocks" diff --git a/test/controllers/user_blocks_controller_test.rb b/test/controllers/user_blocks_controller_test.rb index d28194fdc..e6782a64d 100644 --- a/test/controllers/user_blocks_controller_test.rb +++ b/test/controllers/user_blocks_controller_test.rb @@ -13,10 +13,6 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest { :path => "/user_blocks", :method => :get }, { :controller => "user_blocks", :action => "index" } ) - assert_routing( - { :path => "/user_blocks/new", :method => :get }, - { :controller => "user_blocks", :action => "new" } - ) assert_routing( { :path => "/user_blocks", :method => :post }, { :controller => "user_blocks", :action => "create" } @@ -799,6 +795,8 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest end def check_inactive_block_updates(block) + original_ends_at = block.ends_at + put user_block_path(block, :user_block_period => "0", :user_block => { :needs_view => false, :reason => "Updated Reason" }) @@ -807,6 +805,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest block.reload assert_not_predicate block, :active? assert_equal "Updated Reason", block.reason + assert_equal original_ends_at, block.ends_at put user_block_path(block, :user_block_period => "0", @@ -816,6 +815,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest block.reload assert_not_predicate block, :active? assert_equal "Updated Reason", block.reason + assert_equal original_ends_at, block.ends_at put user_block_path(block, :user_block_period => "1", @@ -825,6 +825,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest block.reload assert_not_predicate block, :active? assert_equal "Updated Reason", block.reason + assert_equal original_ends_at, block.ends_at put user_block_path(block, :user_block_period => "0", @@ -834,6 +835,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest block.reload assert_not_predicate block, :active? assert_equal "Updated Reason Again", block.reason + assert_equal original_ends_at, block.ends_at end def check_user_blocks_table(user_blocks)