64 lines
2.3 KiB
Handlebars
64 lines
2.3 KiB
Handlebars
<DButton @class="btn-primary" @action={{route-action "new"}} @icon="plus" @label="admin.api.new_key" />
|
|
|
|
{{#if 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 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={{loading}} />
|
|
{{else}}
|
|
<p>{{i18n "admin.api.none"}}</p>
|
|
{{/if}}
|