{{d-button class="btn-primary" action=(route-action "new") icon="plus" label="admin.api.new_key"}} {{#if model}} {{#load-more selector=".api-keys tr" action=(action "loadMore")}} {{#each model as |k|}} {{/each}}
{{i18n "admin.api.key"}} {{i18n "admin.api.description"}} {{i18n "admin.api.user"}} {{i18n "admin.api.created"}} {{i18n "admin.api.last_used"}}  
{{#if k.revoked_at}}{{d-icon "times-circle"}}{{/if}} {{k.truncatedKey}} {{k.shortDescription}}
{{i18n "admin.api.user"}}
{{#if k.user}} {{#link-to "adminUser" k.user}} {{avatar k.user imageSize="small"}} {{/link-to}} {{else}} {{i18n "admin.api.all_users"}} {{/if}}
{{i18n "admin.api.created"}}
{{format-date k.created_at}}
{{i18n "admin.api.last_used"}}
{{#if k.last_used_at}} {{format-date k.last_used_at}} {{else}} {{i18n "admin.api.never_used"}} {{/if}}
{{d-button action=(route-action "show" k) icon="far-eye" title="admin.api.show_details"}} {{#if k.revoked_at}} {{d-button action=(action "undoRevokeKey") actionParam=k icon="undo" title="admin.api.undo_revoke"}} {{else}} {{d-button class="btn-danger" action=(action "revokeKey") actionParam=k icon="times" title="admin.api.revoke"}} {{/if}}
{{/load-more}} {{conditional-loading-spinner condition=loading}} {{else}}

{{i18n "admin.api.none"}}

{{/if}}