open-vault/ui/app/templates/components/secret-version-menu.hbs
claire bontempo 3163309130
UI: Fix KV engine deleting latest version instead of specified version depending on policy (#17124)
* update modal copy to clarify when a user is unable to delete a specific version

* add tests

* cleanup tests, move console commands into helper function

* cleanup hbs

* add changelog
2022-09-14 00:11:08 +02:00

63 lines
2.2 KiB
Handlebars

<BasicDropdown @class="popup-menu" @horizontalPosition="auto-right" @verticalPosition="below" as |D|>
<D.Trigger
data-test-popup-menu-trigger="version"
class={{concat "toolbar-link" (if D.isOpen " is-active")}}
@htmlTag="button"
>
Version
{{@version.version}}
<Chevron @direction="down" @isButton={{true}} />
</D.Trigger>
<D.Content @defaultClass="popup-menu-content">
<nav class="box menu">
<ul class="menu-list">
{{#if (has-block)}}
{{yield}}
{{/if}}
{{#each (reverse @model.versions) as |secretVersion|}}
<li class="action">
<LinkTo
class="link"
@query={{hash version=secretVersion.version}}
{{on "click" (fn this.closeDropdown D)}}
data-test-version-dropdown-link={{secretVersion.version}}
>
Version
{{secretVersion.version}}
{{#if
(and
(eq secretVersion.version @model.currentVersion) (not secretVersion.destroyed) (not secretVersion.deleted)
)
}}
<Icon @name="check-circle" class="has-text-success is-pulled-right" />
{{else if secretVersion.destroyed}}
<Icon @name="x-square-fill" class="has-text-danger is-pulled-right" />
{{else if secretVersion.deleted}}
<Icon @name="x-square-fill" class="has-text-grey is-pulled-right" />
{{/if}}
</LinkTo>
</li>
{{/each}}
<li class="action">
<SecretLink
data-test-version-history={{true}}
@mode="versions"
@secret={{@model.id}}
class="has-text-black has-text-weight-semibold has-bottom-shadow"
>
View version history
</SecretLink>
</li>
{{#if (gt @model.versions.length 1)}}
<li class="action">
<li>
<LinkTo class="link" @route="vault.cluster.secrets.backend.diff" @model={{@model.id}} data-test-view-diff>
View diff
</LinkTo>
</li>
</li>
{{/if}}
</ul>
</nav>
</D.Content>
</BasicDropdown>