vault/ui/app/components/secret-edit.hbs
2025-08-01 10:04:25 -06:00

79 lines
2.4 KiB
Handlebars

{{!
Copyright (c) HashiCorp, Inc.
SPDX-License-Identifier: BUSL-1.1
}}
<div {{did-insert this.createKvData @model}}>
<PageHeader as |p|>
<p.top>
<KeyValueHeader
@baseKey={{@baseKey}}
@path="vault.cluster.secrets.backend.list"
@mode={{@mode}}
@root={{@root}}
@showCurrent={{true}}
/>
</p.top>
<p.levelLeft>
<h1 class="title is-3">
{{#if (eq @mode "create")}}
Create Secret
{{else if (eq @mode "edit")}}
Edit Secret
{{else}}
{{@key.id}}
<Hds::Copy::Button @isIconOnly={{true}} @text="Copy your secret path" @textToCopy={{@key.id}} />
{{/if}}
</h1>
</p.levelLeft>
</PageHeader>
{{! tabs for show only }}
{{#if (eq @mode "show")}}
<div class="tabs-container box is-bottomless is-marginless is-fullwidth is-paddingless">
<nav class="tabs" aria-label="navigation for secret management">
<ul>
<li>
<LinkTo @route="vault.cluster.secrets.backend.show" @model={{@key.id}} data-test-secret-tab>
Secret
</LinkTo>
</li>
</ul>
</nav>
</div>
{{/if}}
{{#if (and @model (not-eq this.secretData null))}}
<SecretEditToolbar
@mode={{@mode}}
@model={{@model}}
@isWriteWithoutRead={{this.isWriteWithoutRead}}
@secretDataIsAdvanced={{this.secretDataIsAdvanced}}
@showAdvancedMode={{this.showAdvancedMode}}
@modelForData={{this.modelForData}}
@canUpdateSecret={{this.canUpdateSecret}}
@editorString={{this.editorString}}
@editActions={{hash toggleAdvanced=(action "toggleAdvanced") refresh=(action "refresh")}}
/>
{{#if (or (eq @mode "create") (eq @mode "edit"))}}
<SecretCreateOrUpdate
@mode={{@mode}}
@model={{@model}}
@showAdvancedMode={{this.showAdvancedMode}}
@modelForData={{this.modelForData}}
@error={{this.error}}
@secretData={{this.secretData}}
@buttonDisabled={{this.buttonDisabled}}
@canReadSecret={{this.canReadSecret}}
/>
{{else if (eq @mode "show")}}
<SecretFormShow
@modelForData={{this.modelForData}}
@isWriteWithoutRead={{this.isWriteWithoutRead}}
@showAdvancedMode={{this.showAdvancedMode}}
/>
{{else}}
<EmptyState @title="No secret view was selected" />
{{/if}}
{{/if}}
</div>