Files
vault/ui/lib/kmip/addon/templates/scopes/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

107 lines
3.8 KiB
Handlebars

{{!
Copyright (c) HashiCorp, Inc.
SPDX-License-Identifier: BUSL-1.1
~}}
<HeaderScope />
<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 scopes by name"
@urls={{hash
create="vault.cluster.secrets.backend.kmip.scopes.create"
list="vault.cluster.secrets.backend.kmip.scopes.index"
show="vault.cluster.secrets.backend.kmip.scope.roles"
}}
/>
{{#if this.filterFocused}}
{{#if this.filterMatchesKey}}
<p class="input-hint">
<kbd>ENTER</kbd>
to go to
<code>{{this.filter}}</code>
</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="scopes.create" @type="add" data-test-scope-create>
Create scope
</ToolbarLink>
</ToolbarActions>
</Toolbar>
<ListView @items={{this.model}} @itemNoun="scope" @paginationRouteName="scopes.index" as |list|>
{{#if list.empty}}
<list.empty
@title="KMIP Secrets Engine"
@message="First, let's create a scope that our roles and credentials will belong to. A client can only access objects within their role's scope."
>
<Hds::Link::Standalone @icon="plus" @text="Create a scope" @route="scopes.create" />
</list.empty>
{{else if list.item}}
<ListItem @linkPrefix={{this.mountPoint}} @linkParams={{array "scope.roles" list.item.id}} as |Item|>
<Item.content>
<Icon @name="folder" 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="scope" @model={{list.item.id}}>View scope</dd.Interactive>
{{#if list.item.updatePath.isPending}}
<dd.Generic>
<LoadingDropdownOption />
</dd.Generic>
{{else if list.item.updatePath.canDelete}}
<dd.Interactive
@color="critical"
{{on "click" (fn (mut this.scopeToDelete) list.item)}}
data-test-confirm-action-trigger
>Delete scope</dd.Interactive>
{{/if}}
</Hds::Dropdown>
{{#if (eq this.scopeToDelete list.item)}}
<ConfirmModal
@color="critical"
@confirmTitle="Delete scope {{this.scopeToDelete.id}}?"
@confirmMessage="This will permanently delete this scope and all roles and credentials contained within"
@onClose={{fn (mut this.scopeToDelete) null}}
@onConfirm={{action
(perform
Item.callMethod
"destroyRecord"
this.scopeToDelete
(concat "Successfully deleted scope " this.scopeToDelete.id)
(concat "There was an error deleting the scope " this.scopeToDelete.id)
(action "refresh")
)
}}
data-test-scope-delete
/>
{{/if}}
</Item.menu>
</ListItem>
{{else}}
<ListItem as |Item|>
<Item.content>
There are no scopes that match
{{this.filter}}, press
<kbd>ENTER</kbd>
to add one.
</Item.content>
</ListItem>
{{/if}}
</ListView>