]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/5092'
authorTom Hughes <tom@compton.nu>
Sun, 18 Aug 2024 11:01:17 +0000 (12:01 +0100)
committerTom Hughes <tom@compton.nu>
Sun, 18 Aug 2024 11:01:17 +0000 (12:01 +0100)
app/assets/javascripts/osm.js.erb
app/controllers/user_blocks_controller.rb
config/routes.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 099c285fce51b28c610bf9100c402cd7ee59d426..125d6f8109ffac8f13b34079c89ec4059cab3ff7 100644 (file)
@@ -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"
 
index d28194fdcf1735538e0a7af490e413a384b46206..e6782a64d0d3910393c70b026f1350b738211e3e 100644 (file)
@@ -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)