]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/5091'
authorTom Hughes <tom@compton.nu>
Sun, 18 Aug 2024 10:59:42 +0000 (11:59 +0100)
committerTom Hughes <tom@compton.nu>
Sun, 18 Aug 2024 10:59:42 +0000 (11:59 +0100)
app/assets/javascripts/osm.js.erb
app/controllers/user_blocks_controller.rb
test/controllers/user_blocks_controller_test.rb

index e429f4479f143dfe2d50622b870d62d60558a263..e08528f845da2b2cee72780d3197720fbc42ab02 100644 (file)
@@ -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) {
index 3b7ef30f9c96256962187173e5ee317408e05d58..962eff04ce06306cb97906d9d4a0edf2c126e4bc 100644 (file)
@@ -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
index 277926fdc2f7d6cc7f6a96ee7140dca65a529fc2..e6782a64d0d3910393c70b026f1350b738211e3e 100644 (file)
@@ -795,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" })
@@ -803,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",
@@ -812,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",
@@ -821,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",
@@ -830,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)