]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/5081'
authorTom Hughes <tom@compton.nu>
Thu, 15 Aug 2024 16:54:51 +0000 (17:54 +0100)
committerTom Hughes <tom@compton.nu>
Thu, 15 Aug 2024 16:54:51 +0000 (17:54 +0100)
app/controllers/user_blocks_controller.rb
config/locales/be.yml
config/locales/en.yml
config/locales/mk.yml
config/locales/uk.yml
config/locales/zh-TW.yml
test/controllers/user_blocks_controller_test.rb

index 664ac56815d6e541de2de2e839b04aa188867f38..3b7ef30f9c96256962187173e5ee317408e05d58 100644 (file)
@@ -67,15 +67,20 @@ class UserBlocksController < ApplicationController
          current_user != @user_block.revoker
         flash[:error] = t(@user_block.revoker ? ".only_creator_or_revoker_can_edit" : ".only_creator_can_edit")
         redirect_to :action => "edit"
-      elsif @user_block.update(
-        :ends_at => Time.now.utc + @block_period.hours,
-        :reason => params[:user_block][:reason],
-        :needs_view => params[:user_block][:needs_view]
-      )
-        flash[:notice] = t(".success")
-        redirect_to(@user_block)
       else
-        render :action => "edit"
+        user_block_was_active = @user_block.active?
+        @user_block.reason = params[:user_block][:reason]
+        @user_block.needs_view = params[:user_block][:needs_view]
+        @user_block.ends_at = Time.now.utc + @block_period.hours
+        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"
+        end
       end
     else
       redirect_to edit_user_block_path(:id => params[:id])
index 11060ff26812f2a73e4c3a82702b13d14243d99a..d3f150b593f03722debb4be9caa3aa2873675508 100644 (file)
@@ -1690,7 +1690,7 @@ be:
     partners_corpmembers: Карпаратыўныя члены OSMF
     partners_partners: партнёры
     tou: Умовы карыстання
-    osm_offline: Ð\91аза Ð´Ð°Ð´Ð·ÐµÐ½Ñ\8bÑ\85 OpenStreetMap Ð·Ð°Ñ\80аз Ð¿Ð°-за Ñ\81еÑ\86Ñ\96вам, Ñ\82амÑ\83 Ñ\88Ñ\82о Ð¿Ñ\80аÑ\85одзÑ\96Ñ\86Ñ\8c
+    osm_offline: База даных OpenStreetMap зараз па-за сецівам, таму што праходзіць
       неабходная тэхнічная праца.
     osm_read_only: База даных OpenStreetMap зараз даступная толькі для чытання, таму
       што праходзіць неабходная тэхнічная праца.
@@ -2117,6 +2117,10 @@ be:
         native_link: беларуская версія
         mapping_link: пачаць маляваць карту
       legal_babble:
+        introduction_1_html: |-
+          OpenStreetMap%{registered_trademark_link} гэта %{open_data}, якія прадастаўляюцца па ліцэнзіі
+          %{odc_odbl_link} (ODbL) праз %{osm_foundation_link} (OSMF).
+        introduction_1_open_data: адкрытыя даныя
         introduction_1_osm_foundation: Фонд OpenStreetMap
         introduction_2_html: Вы можаце капіраваць, распаўсюджваць, перадаваць і змяняць
           нашыя даныя да той пары пакуль вы спасылаецеся на OpenStreetMap і яе ўдзельнікаў.
index ac41952c7a51ab540ea01b2e19c3530691c9a253..c4cae4b221b79bfbba7559635ef4f145f053451b 100644 (file)
@@ -2950,6 +2950,7 @@ en:
     update:
       only_creator_can_edit: "Only the moderator who created this block can edit it."
       only_creator_or_revoker_can_edit: "Only the moderators who created or revoked this block can edit it."
+      inactive_block_cannot_be_reactivated: "This block is inactive and cannot be reactivated."
       success: "Block updated."
     index:
       title: "User blocks"
index c5488a93ddac284a0c73842508c29e6eb96570ac..f122b01f63ea1fae24491c2ec6af0709911bdb92 100644 (file)
@@ -138,7 +138,7 @@ mk:
         description: Опис
       report:
         category: Изберете причина за пријавата
-        details: Ð\9dаведеÑ\82е Ð¿Ð¾Ð²ÐµÑ\9cе Ð¿Ð¾Ð´Ñ\80обности за проблемот (задолжително).
+        details: Ð\9dаведеÑ\82е Ð¿Ð¾Ð²ÐµÑ\9cе Ð¿Ð¾ÐµÐ´Ð¸ности за проблемот (задолжително).
       user:
         auth_provider: Заверувач
         auth_uid: Назнака за заверката
@@ -163,7 +163,7 @@ mk:
         tagstring: одделено со запирка
       user_block:
         reason: Причината зошто корисникот е блокиран. Бидете што посмирени и поразумни,
-          Ð½Ð°Ð²ÐµÐ´ÐµÑ\82е Ñ\88Ñ\82о Ð¿Ð¾Ð²ÐµÑ\9cе Ð¿Ð¾Ð´Ñ\80обности за ситуацијата, имајќи на ум дека пораката
+          Ð½Ð°Ð²ÐµÐ´ÐµÑ\82е Ñ\88Ñ\82о Ð¿Ð¾Ð²ÐµÑ\9cе Ð¿Ð¾ÐµÐ´Ð¸ности за ситуацијата, имајќи на ум дека пораката
           ќе биде јавно видлива. Имајте предвид и дека не сите корисници го разбираат
           жаргонот на заедницата, па затоа обидете се да користите лаички поими.
         needs_view: Дали корисникот треба да се најави пред да се исчисти овој блок?
@@ -336,7 +336,7 @@ mk:
     download_xml: Преземи XML
     view_history: Погл. историја
     view_unredacted_history: Погл. неизменета историја
-    view_details: Ð\9fогл. Ð¿Ð¾Ð´Ñ\80обности
+    view_details: Ð\9fогл. Ð¿Ð¾ÐµÐ´Ð¸ности
     view_redacted_data: Погл. исправена верзија
     view_redaction_message: Погл. порака за измената
     location: 'Местоположба:'
@@ -1580,7 +1580,7 @@ mk:
           other_label: Друго
     create:
       successful_report: Вашата пријава е успешно заведена
-      provide_details: Ð\9dаведеÑ\82е Ð³Ð¸ Ð¿Ð¾Ñ\82Ñ\80ебниÑ\82е Ð¿Ð¾Ð´Ñ\80обности
+      provide_details: Ð\9dаведеÑ\82е Ð³Ð¸ Ð¿Ð¾Ñ\82Ñ\80ебниÑ\82е Ð¿Ð¾ÐµÐ´Ð¸ности
   layouts:
     logo:
       alt_text: Лого на OpenStreetMap
@@ -2075,7 +2075,7 @@ mk:
           бази на податоци.
         credit_3_html: "Условите за истакнување на авторскоправната напомена се разликуваат
           зависно од тоа како ги користите нашите податоци. На пример, правилата се
-          Ñ\80азлиÑ\87ни Ð·Ð° Ð¿Ñ\80елиÑ\81Ñ\82лива ÐºÐ°Ñ\80Ñ\82а, Ð¿ÐµÑ\87аÑ\82ена ÐºÐ°Ñ\80Ñ\82а Ð¸ Ñ\83Ñ\86вÑ\80Ñ\81Ñ\82ена Ñ\81лика. Ð¡Ð¸Ñ\82е Ð¿Ð¾Ð´Ñ\80обности
+          Ñ\80азлиÑ\87ни Ð·Ð° Ð¿Ñ\80елиÑ\81Ñ\82лива ÐºÐ°Ñ\80Ñ\82а, Ð¿ÐµÑ\87аÑ\82ена ÐºÐ°Ñ\80Ñ\82а Ð¸ Ñ\83Ñ\86вÑ\80Ñ\81Ñ\82ена Ñ\81лика. Ð¡Ð¸Ñ\82е Ð¿Ð¾ÐµÐ´Ð¸ности
           на условите ќе ги најдете на \n%{attribution_guidelines_link}."
         credit_3_attribution_guidelines: Напатствијата за припис
         credit_4_1_html: "За да истакнете дека податоците се достапни под Лиценцата
@@ -2704,7 +2704,7 @@ mk:
       access_url: 'URL на пристапата шифра:'
       authorize_url: 'Дозволи URL:'
       support_notice: Поддржуваме потписи во HMAC-SHA1 (препорачано) и RSA-SHA1.
-      edit: Ð\98змени Ð¿Ð¾Ð´Ñ\80обности
+      edit: Ð\98змени Ð¿Ð¾ÐµÐ´Ð¸ности
       delete: Избриши клиент
       confirm: Дали сте сигурни?
       requests: Ги барам следните дозволи од корисникот
index 3b7647e52df6ccbe6b88ffb44bbc61a352ee18be..a8eed3c1975ff0ca564819bb1b11d7d700763459 100644 (file)
@@ -481,9 +481,9 @@ uk:
         way: лінії
         relation: зв’язку
     start_rjs:
-      feature_warning: Завантаження %{num_features} об’єктів, може призвести до уповільнення
-        Ð°Ð±Ð¾ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾Ñ\81Ñ\82Ñ\96 Ñ\80обоÑ\82и Ð²Ð°Ñ\88ого Ð¾Ð³Ð»Ñ\8fдаÑ\87а. Ð\92и Ñ\81пÑ\80авдÑ\96 Ð±Ð°Ð¶Ð°Ñ\94Ñ\82е Ð¿ÐµÑ\80еглÑ\8fнÑ\83Ñ\82и Ñ\86Ñ\96
-        дані?
+      feature_warning: Завантаження %{num_features} функцій, через які ваш веб-переглядач
+        Ð¼Ð¾Ð¶Ðµ Ñ\81повÑ\96лÑ\8cнÑ\8eваÑ\82иÑ\81Ñ\8f Ð°Ð±Ð¾ Ð½Ðµ Ñ\80еагÑ\83ваÑ\82и. Ð\92и Ð²Ð¿ÐµÐ²Ð½ÐµÐ½Ñ\96, Ñ\89о Ð±Ð°Ð¶Ð°Ñ\94Ñ\82е Ð²Ñ\96добÑ\80азиÑ\82и
+        ці дані?
       load_data: Завантажити дані
       loading: Завантаження…
     tag_details:
index 23b7a7bb21e906410cc0537edab91067f5436b0c..a583b658c0d86c2753f661b76045414cf30df1dc 100644 (file)
@@ -702,10 +702,10 @@ zh-TW:
     search_osm_nominatim:
       prefix:
         aerialway:
-          cable_car: 大纜車
+          cable_car: 大車廂纜車
           chair_lift: 吊椅式索道
-          drag_lift: 拖拉式索道
-          gondola: 小纜車
+          drag_lift: 牽引式索道
+          gondola: 小車廂纜車
           magic_carpet: 魔毯 (自動步道)
           platter: 圓盤拖拉式索道
           pylon: 塔柱
@@ -765,7 +765,7 @@ zh-TW:
           drinking_water: 飲用水
           driving_school: 駕訓班
           embassy: 大使館
-          events_venue: 活動會場
+          events_venue: 活動場館
           fast_food: 速食
           ferry_terminal: 渡輪碼頭
           fire_station: 消防隊
@@ -811,7 +811,7 @@ zh-TW:
           restaurant: 餐廳
           sanitary_dump_station: 衛生排污站
           school: 學校
-          shelter: 涼亭
+          shelter: 亭子
           shower: 淋浴間
           social_centre: 社會團體中心
           social_facility: 社會福利設施
index b172945ec056ea635a90973b0cb9c2627e9c89f7..d28194fdcf1735538e0a7af490e413a384b46206 100644 (file)
@@ -469,7 +469,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest
     assert_equal "Original Reason", block.reason
 
     session_for(creator_user)
-    check_block_updates(block)
+    check_inactive_block_updates(block)
   end
 
   ##
@@ -491,10 +491,10 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest
     assert_equal "Original Reason", block.reason
 
     session_for(creator_user)
-    check_block_updates(block)
+    check_inactive_block_updates(block)
 
     session_for(revoker_user)
-    check_block_updates(block)
+    check_inactive_block_updates(block)
   end
 
   ##
@@ -798,7 +798,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest
     end
   end
 
-  def check_block_updates(block)
+  def check_inactive_block_updates(block)
     put user_block_path(block,
                         :user_block_period => "0",
                         :user_block => { :needs_view => false, :reason => "Updated Reason" })
@@ -810,12 +810,30 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest
 
     put user_block_path(block,
                         :user_block_period => "0",
-                        :user_block => { :needs_view => true, :reason => "Updated Reason 2" })
+                        :user_block => { :needs_view => true, :reason => "Updated Reason Needs View" })
+    assert_response :success
+    assert_equal "This block is inactive and cannot be reactivated.", flash[:error]
+    block.reload
+    assert_not_predicate block, :active?
+    assert_equal "Updated Reason", block.reason
+
+    put user_block_path(block,
+                        :user_block_period => "1",
+                        :user_block => { :needs_view => false, :reason => "Updated Reason Duration Extended" })
+    assert_response :success
+    assert_equal "This block is inactive and cannot be reactivated.", flash[:error]
+    block.reload
+    assert_not_predicate block, :active?
+    assert_equal "Updated Reason", block.reason
+
+    put user_block_path(block,
+                        :user_block_period => "0",
+                        :user_block => { :needs_view => false, :reason => "Updated Reason Again" })
     assert_redirected_to user_block_path(block)
     assert_equal "Block updated.", flash[:notice]
     block.reload
-    assert_predicate block, :active?
-    assert_equal "Updated Reason 2", block.reason
+    assert_not_predicate block, :active?
+    assert_equal "Updated Reason Again", block.reason
   end
 
   def check_user_blocks_table(user_blocks)