From: Tom Hughes Date: Sun, 19 Feb 2017 11:38:27 +0000 (+0000) Subject: Merge remote-tracking branch 'openstreetmap/pull/1445' X-Git-Tag: live~4599 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/1e9a3f8664a1715e59211d25dd7168b95b85fe72?hp=d716e4095bc3bb2bb991cb7857d98f2f1418ba04 Merge remote-tracking branch 'openstreetmap/pull/1445' --- diff --git a/app/helpers/user_blocks_helper.rb b/app/helpers/user_blocks_helper.rb index 282d9164a..3c9c0a37e 100644 --- a/app/helpers/user_blocks_helper.rb +++ b/app/helpers/user_blocks_helper.rb @@ -4,8 +4,13 @@ module UserBlocksHelper # user block (i.e: whether it's active, what the expiry time is) def block_status(block) if block.active? + # if the block hasn't expired yet show the date, if the user just needs to login show that if block.needs_view? - I18n.t("user_block.helper.until_login") + if block.ends_at > Time.now.getutc + I18n.t("user_block.helper.time_future_and_until_login", :time => friendly_date(block.ends_at)).html_safe + else + I18n.t("user_block.helper.until_login") + end else I18n.t("user_block.helper.time_future", :time => friendly_date(block.ends_at)).html_safe end diff --git a/config/locales/en.yml b/config/locales/en.yml index b2ebffd61..3afa7e805 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -2112,6 +2112,7 @@ en: helper: time_future: "Ends in %{time}." until_login: "Active until the user logs in." + time_future_and_until_login: "Ends in %{time} and after the user has logged in." time_past: "Ended %{time} ago." blocks_on: title: "Blocks on %{name}" diff --git a/test/helpers/user_blocks_helper_test.rb b/test/helpers/user_blocks_helper_test.rb new file mode 100644 index 000000000..de5ff1c6a --- /dev/null +++ b/test/helpers/user_blocks_helper_test.rb @@ -0,0 +1,42 @@ +# coding: utf-8 +require "test_helper" + +class UserBlocksHelperTest < ActionView::TestCase + include ApplicationHelper + def setup + I18n.locale = "en" + end + + def teardown + I18n.locale = "en" + end + + def test_block_status + block = UserBlock.create( + :user_id => 1, + :creator_id => 2, + :reason => "testing", + :needs_view => true, + :ends_at => Time.now.getutc + ) + assert_equal I18n.t("user_block.helper.until_login"), block_status(block) + block_end = Time.now.getutc + 60.minutes + block = UserBlock.create( + :user_id => 1, + :creator_id => 2, + :reason => "testing", + :needs_view => true, + :ends_at => Time.now.getutc + 60.minutes + ) + assert_equal I18n.t("user_block.helper.time_future_and_until_login", :time => friendly_date(block_end)), block_status(block) + block_end = Time.now.getutc + 60.minutes + block = UserBlock.create( + :user_id => 1, + :creator_id => 2, + :reason => "testing", + :needs_view => false, + :ends_at => Time.now.getutc + 60.minutes + ) + assert_equal I18n.t("user_block.helper.time_future", :time => friendly_date(block_end)), block_status(block) + end +end