mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-10-29 17:52:32 +00:00
* add paths route * WIP copy secret path component * wip component * ad v1 * use each-in to iterate over info table row * update copy * add commands to kv paths page * add comments * WIP tests * finish tests * remove version, address comments and use path arg directly remove secret * update copy * fix typo for perms * remove destructuring, that was confusing * add changelog * add secure protocal
94 lines
3.5 KiB
Handlebars
94 lines
3.5 KiB
Handlebars
<KvPageHeader @breadcrumbs={{@breadcrumbs}} @pageTitle={{@path}}>
|
|
<:tabLinks>
|
|
<LinkTo @route="secret.details" data-test-secrets-tab="Secret">Secret</LinkTo>
|
|
<LinkTo @route="secret.metadata.index" data-test-secrets-tab="Metadata">Metadata</LinkTo>
|
|
<LinkTo @route="secret.paths" data-test-secrets-tab="Paths">Paths</LinkTo>
|
|
{{#if @secret.canReadMetadata}}
|
|
<LinkTo @route="secret.metadata.versions" data-test-secrets-tab="Version History">Version History</LinkTo>
|
|
{{/if}}
|
|
</:tabLinks>
|
|
|
|
<:toolbarFilters>
|
|
{{#unless this.emptyState}}
|
|
<Toggle @name="json" @status="success" @size="small" @checked={{this.showJsonView}} @onChange={{this.toggleJsonView}}>
|
|
<span class="has-text-grey">JSON</span>
|
|
</Toggle>
|
|
{{/unless}}
|
|
</:toolbarFilters>
|
|
<:toolbarActions>
|
|
{{#if this.showUndelete}}
|
|
<button type="button" class="toolbar-link" {{on "click" this.undelete}}>
|
|
Undelete
|
|
</button>
|
|
{{/if}}
|
|
{{#if this.showDelete}}
|
|
<KvDeleteModal @mode="delete" @secret={{@secret}} @metadata={{@metadata}} @onDelete={{this.handleDestruction}}>
|
|
Delete
|
|
</KvDeleteModal>
|
|
{{/if}}
|
|
{{#if this.showDestroy}}
|
|
<KvDeleteModal @mode="destroy" @secret={{@secret}} @onDelete={{this.handleDestruction}}>
|
|
Destroy
|
|
</KvDeleteModal>
|
|
{{/if}}
|
|
<div class="toolbar-separator"></div>
|
|
{{#if (and @secret.canReadData (eq @secret.state "created"))}}
|
|
<CopySecretDropdown
|
|
@clipboardText={{stringify @secret.secretData}}
|
|
@onWrap={{perform this.wrapSecret}}
|
|
@isWrapping={{this.wrapSecret.isRunning}}
|
|
@wrappedData={{this.wrappedData}}
|
|
@onClose={{this.clearWrappedData}}
|
|
/>
|
|
{{/if}}
|
|
{{#if @secret.canReadMetadata}}
|
|
<KvVersionDropdown @displayVersion={{this.version}} @metadata={{@metadata}} @onClose={{this.closeVersionMenu}} />
|
|
{{/if}}
|
|
{{#if @secret.canEditData}}
|
|
<ToolbarLink data-test-create-new-version @route="secret.details.edit" @type="add">Create new version</ToolbarLink>
|
|
{{/if}}
|
|
</:toolbarActions>
|
|
</KvPageHeader>
|
|
|
|
{{#if (or @secret.deletionTime (not this.emptyState))}}
|
|
<div class="info-table-row-header">
|
|
<div class="info-table-row thead {{if this.showJsonView 'is-shadowless'}} ">
|
|
{{#unless this.hideHeaders}}
|
|
<div class="th column is-one-quarter">
|
|
Key
|
|
</div>
|
|
<div class="th column">
|
|
Value
|
|
</div>
|
|
{{/unless}}
|
|
<div class="th column justify-right">
|
|
{{#if (or @secret.deletionTime @secret.createdTime)}}
|
|
<KvTooltipTimestamp
|
|
@text="Version {{if @secret.version @secret.version}} {{@secret.state}}"
|
|
@timestamp={{or @secret.deletionTime @secret.createdTime}}
|
|
/>
|
|
{{/if}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{/if}}
|
|
|
|
{{#if this.emptyState}}
|
|
<EmptyState @title={{this.emptyState.title}} @message={{this.emptyState.message}}>
|
|
{{#if this.emptyState.link}}
|
|
<DocLink @path={{this.emptyState.link}}>Learn more</DocLink>
|
|
{{/if}}
|
|
</EmptyState>
|
|
{{else}}
|
|
{{#if this.showJsonView}}
|
|
<JsonEditor @title="Version data" @value={{stringify @secret.secretData}} @readOnly={{true}} />
|
|
{{else}}
|
|
{{#each-in @secret.secretData as |key value|}}
|
|
<InfoTableRow @label={{key}} @value={{value}} @alwaysRender={{true}}>
|
|
<MaskedInput @name={{key}} @value={{value}} @displayOnly={{true}} @allowCopy={{true}} @allowDownload={{true}} />
|
|
</InfoTableRow>
|
|
{{else}}
|
|
<InfoTableRow @label="" @value="" @alwaysRender={{true}} />
|
|
{{/each-in}}
|
|
{{/if}}
|
|
{{/if}} |