about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYamagishi Kazutoshi <ykzts@desire.sh>2017-11-28 23:41:02 +0900
committerEugen Rochko <eugen@zeonfederated.com>2017-11-28 15:41:02 +0100
commit15fab79cfa5b732e9d7816f162272d72cf06c733 (patch)
treeb98ae3561675f5cfc4af08f8d2e7fe338aecefbd
parenteeaec39888f66bf312ac9a4c58f315ffd8f874f2 (diff)
Show "expired" in invite index (#5838)
* Show "expired" in invite index

* "Force expire" -> "Deactivate"
-rw-r--r--app/models/invite.rb6
-rw-r--r--app/views/admin/invites/_invite.html.haml10
-rw-r--r--app/views/invites/_invite.html.haml10
-rw-r--r--config/locales/en.yml3
4 files changed, 21 insertions, 8 deletions
diff --git a/app/models/invite.rb b/app/models/invite.rb
index ceca04686..7626f4cfa 100644
--- a/app/models/invite.rb
+++ b/app/models/invite.rb
@@ -27,13 +27,17 @@ class Invite < ApplicationRecord
   end
 
   def valid_for_use?
-    (max_uses.nil? || uses < max_uses) && (expires_at.nil? || expires_at >= Time.now.utc)
+    (max_uses.nil? || uses < max_uses) && !expired?
   end
 
   def expire!
     touch(:expires_at)
   end
 
+  def expired?
+    !expires_at.nil? && expires_at < Time.now.utc
+  end
+
   private
 
   def set_code
diff --git a/app/views/admin/invites/_invite.html.haml b/app/views/admin/invites/_invite.html.haml
index 81edfd912..9555a8976 100644
--- a/app/views/admin/invites/_invite.html.haml
+++ b/app/views/admin/invites/_invite.html.haml
@@ -7,9 +7,13 @@
     = invite.uses
     = " / #{invite.max_uses}" unless invite.max_uses.nil?
   %td
-    - if invite.expires_at.nil?
-      ∞
+    - if invite.expired?
+      = t('invites.expired')
     - else
-      = l invite.expires_at
+      - if invite.expires_at.nil?
+        ∞
+      - else
+        %time.formatted{ datetime: invite.expires_at.iso8601, title: l(invite.expires_at) }
+          = l invite.expires_at
   %td= table_link_to 'link', public_invite_url(invite_code: invite.code), public_invite_url(invite_code: invite.code)
   %td= table_link_to 'times', t('invites.delete'), invite_path(invite), method: :delete if policy(invite).destroy?
diff --git a/app/views/invites/_invite.html.haml b/app/views/invites/_invite.html.haml
index d794d72e4..3f5f7936c 100644
--- a/app/views/invites/_invite.html.haml
+++ b/app/views/invites/_invite.html.haml
@@ -3,9 +3,13 @@
     = invite.uses
     = " / #{invite.max_uses}" unless invite.max_uses.nil?
   %td
-    - if invite.expires_at.nil?
-      ∞
+    - if invite.expired?
+      = t('invites.expired')
     - else
-      = l invite.expires_at
+      - if invite.expires_at.nil?
+        ∞
+      - else
+        %time.formatted{ datetime: invite.expires_at.iso8601, title: l(invite.expires_at) }
+          = l invite.expires_at
   %td= table_link_to 'link', public_invite_url(invite_code: invite.code), public_invite_url(invite_code: invite.code)
   %td= table_link_to 'times', t('invites.delete'), invite_path(invite), method: :delete if policy(invite).destroy?
diff --git a/config/locales/en.yml b/config/locales/en.yml
index d6f18e859..2719a4f8c 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -432,7 +432,8 @@ en:
     upload: Upload
   in_memoriam_html: In Memoriam.
   invites:
-    delete: Delete
+    delete: Deactivate
+    expired: Expired
     expires_in:
       '1800': 30 minutes
       '21600': 6 hours