Files
vault/ui/lib/kmip/addon/templates/credentials/index.hbs
claire bontempo 05f32b69ee UI: upgrade HDS to 4.12.0 (#28525)
* update hds to latest version

* yield dropdown Interactive text instead of use @text arg, results after running codemod

* remaining dropdown changes

* address sidebar nav IconButton deprecation, fix secret tests

* revert

* explicitly select popupmenu

* more test changes

* fix pki toggle button

* remove tracked prop in oidc client controller

* aaand more test updates

* change to tilde

* tilde yarn lock changes

* small cleanup items
2024-10-04 20:07:48 +00:00

117 lines
4.0 KiB
Handlebars

{{!
Copyright (c) HashiCorp, Inc.
SPDX-License-Identifier: BUSL-1.1
~}}
<HeaderCredentials @role={{this.role}} @scope={{this.scope}} />
<Toolbar>
{{#if this.model.meta.total}}
<ToolbarFilters>
<NavigateInput
@filterFocusDidChange={{action "setFilterFocus"}}
@filterDidChange={{action "setFilter"}}
@filter={{this.filter}}
@filterMatchesKey={{this.filterMatchesKey}}
@firstPartialMatch={{this.firstPartialMatch}}
@placeholder="Filter credentials by serial number"
@urls={{hash
create="vault.cluster.secrets.backend.kmip.credentials.generate"
list="vault.cluster.secrets.backend.kmip.scope.roles"
show="vault.cluster.secrets.backend.kmip.credentials"
}}
/>
{{#if this.filterFocused}}
{{#if this.filterMatchesKey}}
<p class="input-hint">
<kbd>ENTER</kbd>
to go to
<code>{{this.filter}}</code>
roles
</p>
{{/if}}
{{#if this.firstPartialMatch}}
<p class="input-hint">
<kbd>TAB</kbd>
to complete
<code>{{this.firstPartialMatch.id}}</code>
</p>
{{/if}}
{{/if}}
</ToolbarFilters>
{{/if}}
<ToolbarActions>
<ToolbarLink @route={{"credentials.generate"}} @type="add" data-test-kmip-link-generate-credentials>
Generate credentials
</ToolbarLink>
</ToolbarActions>
</Toolbar>
<ListView
@items={{this.model}}
@itemNoun="credentials"
@paginationRouteName="credentials.index"
@paginationRouteParams={{array this.scope this.role}}
as |list|
>
{{#if list.empty}}
<list.empty
@title="No credentials yet for this role"
@message="You can generate new credentials that will be limited to this role's allowed operations, then you can distribute them to your KMIP clients."
>
<Hds::Link::Standalone @icon="plus" @text="Generate credentials" @route="credentials.generate" />
</list.empty>
{{else if list.item}}
<ListItem
@linkPrefix={{this.mountPoint}}
@linkParams={{array "credentials.show" this.scope this.role list.item.id}}
as |Item|
>
<Item.content>
<Icon @name="file-text" class="has-text-grey-light" />{{list.item.id}}
</Item.content>
<Item.menu>
<Hds::Dropdown @isInline={{true}} @listPosition="bottom-right" as |dd|>
<dd.ToggleIcon @icon="more-horizontal" @text="More options" @hasChevron={{false}} data-test-popup-menu-trigger />
<dd.Interactive @route="credentials.show" @models={{array this.scope this.role list.item.id}}>View credentials</dd.Interactive>
{{#if list.item.deletePath.isPending}}
<dd.Generic>
<LoadingDropdownOption />
</dd.Generic>
{{else if list.item.deletePath.canDelete}}
<dd.Interactive
@color="critical"
{{on "click" (fn (mut this.credToRevoke) list.item)}}
data-test-confirm-action-trigger
>Revoke credentials</dd.Interactive>
{{/if}}
</Hds::Dropdown>
{{#if (eq this.credToRevoke list.item)}}
<ConfirmModal
@color="critical"
@onClose={{fn (mut this.credToRevoke) null}}
@confirmTitle="Revoke this?"
@confirmMessage="Any client using these credentials will no longer be able to."
@onConfirm={{action
(perform
Item.callMethod
"destroyRecord"
this.credToRevoke
"Successfully revoked credentials"
"There was an error revoking the credentials"
(action "refresh")
)
}}
/>
{{/if}}
</Item.menu>
</ListItem>
{{else}}
<ListItem as |Item|>
<Item.content>
There are no credentials that match
{{this.filter}}, press
<kbd>ENTER</kbd>
to add one.
</Item.content>
</ListItem>
{{/if}}
</ListView>