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
= 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?
= 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?
upload: Upload
in_memoriam_html: In Memoriam.
invites:
- delete: Delete
+ delete: Deactivate
+ expired: Expired
expires_in:
'1800': 30 minutes
'21600': 6 hours