<DButton @class="btn-primary" @action={{route-action "new"}} @icon="plus" @label="admin.api.new_key" /> {{#if this.model}} <LoadMore @selector=".api-keys tr" @action={{action "loadMore"}}> <table class="api-keys grid"> <thead> <th>{{i18n "admin.api.key"}}</th> <th>{{i18n "admin.api.description"}}</th> <th>{{i18n "admin.api.user"}}</th> <th>{{i18n "admin.api.created"}}</th> <th>{{i18n "admin.api.last_used"}}</th> <th> </th> </thead> <tbody> {{#each this.model as |k|}} <tr class={{if k.revoked_at "revoked"}}> <td class="key"> {{#if k.revoked_at}}{{d-icon "times-circle"}}{{/if}} {{k.truncatedKey}} </td> <td class="key-description"> {{k.shortDescription}} </td> <td class="key-user"> <div class="label">{{i18n "admin.api.user"}}</div> {{#if k.user}} <LinkTo @route="adminUser" @model={{k.user}}> {{avatar k.user imageSize="small"}} </LinkTo> {{else}} {{i18n "admin.api.all_users"}} {{/if}} </td> <td class="key-created"> <div class="label">{{i18n "admin.api.created"}}</div> {{format-date k.created_at}} </td> <td class="key-last-used"> <div class="label">{{i18n "admin.api.last_used"}}</div> {{#if k.last_used_at}} {{format-date k.last_used_at}} {{else}} {{i18n "admin.api.never_used"}} {{/if}} </td> <td class="key-controls"> <DButton @action={{route-action "show" k}} @icon="far-eye" @title="admin.api.show_details" /> {{#if k.revoked_at}} <DButton @action={{action "undoRevokeKey"}} @actionParam={{k}} @icon="undo" @title="admin.api.undo_revoke" /> {{else}} <DButton @class="btn-danger" @action={{action "revokeKey"}} @actionParam={{k}} @icon="times" @title="admin.api.revoke" /> {{/if}} </td> </tr> {{/each}} </tbody> </table> </LoadMore> <ConditionalLoadingSpinner @condition={{this.loading}} /> {{else}} <p>{{i18n "admin.api.none"}}</p> {{/if}}