<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>&nbsp;</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}}