Improve invites list with click-to-copy inputs (#10259)
This commit is contained in:
parent
9e33174604
commit
6e3936aa6f
5 changed files with 46 additions and 25 deletions
|
@ -82,6 +82,10 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&--invites tbody td {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.table-wrapper {
|
.table-wrapper {
|
||||||
|
|
|
@ -1,21 +1,29 @@
|
||||||
%tr
|
%tr
|
||||||
|
%td
|
||||||
|
.input-copy
|
||||||
|
.input-copy__wrapper
|
||||||
|
%input{ type: :text, maxlength: '999', spellcheck: 'false', readonly: 'true', value: public_invite_url(invite_code: invite.code) }
|
||||||
|
%button{ type: :button }= t('generic.copy')
|
||||||
|
|
||||||
%td
|
%td
|
||||||
.name-tag
|
.name-tag
|
||||||
= image_tag invite.user.account.avatar.url(:original), alt: '', width: 16, height: 16, class: 'avatar'
|
= image_tag invite.user.account.avatar.url(:original), alt: '', width: 16, height: 16, class: 'avatar'
|
||||||
%span.username= invite.user.account.username
|
%span.username= invite.user.account.username
|
||||||
|
|
||||||
|
- if invite.expired?
|
||||||
|
%td{ colspan: 2 }
|
||||||
|
= t('invites.expired')
|
||||||
|
- else
|
||||||
%td
|
%td
|
||||||
|
= fa_icon 'user fw'
|
||||||
= invite.uses
|
= invite.uses
|
||||||
= " / #{invite.max_uses}" unless invite.max_uses.nil?
|
= " / #{invite.max_uses}" unless invite.max_uses.nil?
|
||||||
%td
|
%td
|
||||||
- if invite.expired?
|
|
||||||
= t('invites.expired')
|
|
||||||
- else
|
|
||||||
- if invite.expires_at.nil?
|
- if invite.expires_at.nil?
|
||||||
∞
|
∞
|
||||||
- else
|
- else
|
||||||
%time.formatted{ datetime: invite.expires_at.iso8601, title: l(invite.expires_at) }
|
%time.formatted{ datetime: invite.expires_at.iso8601, title: l(invite.expires_at) }
|
||||||
= 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
|
%td
|
||||||
- if !invite.expired? && policy(invite).destroy?
|
- if !invite.expired? && policy(invite).destroy?
|
||||||
= table_link_to 'times', t('invites.delete'), admin_invite_path(invite), method: :delete
|
= table_link_to 'times', t('invites.delete'), admin_invite_path(invite), method: :delete
|
||||||
|
|
|
@ -18,15 +18,15 @@
|
||||||
|
|
||||||
%hr.spacer/
|
%hr.spacer/
|
||||||
|
|
||||||
.table-wrapper
|
.table-wrapper.simple_form
|
||||||
%table.table
|
%table.table.table--invites
|
||||||
%thead
|
%thead
|
||||||
%tr
|
%tr
|
||||||
|
%th
|
||||||
%th
|
%th
|
||||||
%th= t('invites.table.uses')
|
%th= t('invites.table.uses')
|
||||||
%th= t('invites.table.expires_at')
|
%th= t('invites.table.expires_at')
|
||||||
%th
|
%th
|
||||||
%th
|
|
||||||
%tbody
|
%tbody
|
||||||
= render @invites
|
= render @invites
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,25 @@
|
||||||
%tr
|
%tr
|
||||||
%td
|
%td
|
||||||
|
.input-copy
|
||||||
|
.input-copy__wrapper
|
||||||
|
%input{ type: :text, maxlength: '999', spellcheck: 'false', readonly: 'true', value: public_invite_url(invite_code: invite.code) }
|
||||||
|
%button{ type: :button }= t('generic.copy')
|
||||||
|
|
||||||
|
- if invite.expired?
|
||||||
|
%td{ colspan: 2 }
|
||||||
|
= t('invites.expired')
|
||||||
|
- else
|
||||||
|
%td
|
||||||
|
= fa_icon 'user fw'
|
||||||
= invite.uses
|
= invite.uses
|
||||||
= " / #{invite.max_uses}" unless invite.max_uses.nil?
|
= " / #{invite.max_uses}" unless invite.max_uses.nil?
|
||||||
%td
|
%td
|
||||||
- if invite.expired?
|
|
||||||
= t('invites.expired')
|
|
||||||
- else
|
|
||||||
- if invite.expires_at.nil?
|
- if invite.expires_at.nil?
|
||||||
∞
|
∞
|
||||||
- else
|
- else
|
||||||
%time.formatted{ datetime: invite.expires_at.iso8601, title: l(invite.expires_at) }
|
%time.formatted{ datetime: invite.expires_at.iso8601, title: l(invite.expires_at) }
|
||||||
= 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
|
%td
|
||||||
- if !invite.expired? && policy(invite).destroy?
|
- if !invite.expired? && policy(invite).destroy?
|
||||||
= table_link_to 'times', t('invites.delete'), invite_path(invite), method: :delete
|
= table_link_to 'times', t('invites.delete'), invite_path(invite), method: :delete
|
||||||
|
|
|
@ -8,12 +8,13 @@
|
||||||
|
|
||||||
%hr.spacer/
|
%hr.spacer/
|
||||||
|
|
||||||
%table.table
|
.simple_form
|
||||||
|
%table.table.table--invites
|
||||||
%thead
|
%thead
|
||||||
%tr
|
%tr
|
||||||
|
%th
|
||||||
%th= t('invites.table.uses')
|
%th= t('invites.table.uses')
|
||||||
%th= t('invites.table.expires_at')
|
%th= t('invites.table.expires_at')
|
||||||
%th
|
%th
|
||||||
%th
|
|
||||||
%tbody
|
%tbody
|
||||||
= render @invites
|
= render @invites
|
||||||
|
|
Loading…
Reference in a new issue