0589dc1f53
* chore: shared external link component, glimmerization * chore: update easy a tags * chore: update other a tags * chore: lil cleanup * changelog
102 lines
3.1 KiB
Handlebars
102 lines
3.1 KiB
Handlebars
<PageHeader as |p|>
|
|
<p.levelLeft>
|
|
<h1 class="title is-3">
|
|
Raft Storage
|
|
</h1>
|
|
</p.levelLeft>
|
|
</PageHeader>
|
|
<Toolbar>
|
|
<ToolbarActions>
|
|
<BasicDropdown @class="popup-menu" @horizontalPosition="auto-right" @verticalPosition="below" as |D|>
|
|
<D.Trigger
|
|
data-test-popup-menu-trigger="true"
|
|
class={{concat "toolbar-link" (if D.isOpen " is-active")}}
|
|
@htmlTag="button"
|
|
>
|
|
Snapshots
|
|
<Chevron @direction="down" @isButton={{true}} />
|
|
</D.Trigger>
|
|
<D.Content @defaultClass="popup-menu-content">
|
|
<nav class="box menu" aria-label="snapshots actions">
|
|
<ul class="menu-list">
|
|
<li class="action">
|
|
{{#if this.useServiceWorker}}
|
|
<ExternalLink
|
|
@href="/v1/sys/storage/raft/snapshot"
|
|
@sameTab={{true}}
|
|
onclick={{queue (action "downloadViaServiceWorker") (action D.actions.close)}}
|
|
>
|
|
Download
|
|
</ExternalLink>
|
|
{{else}}
|
|
<button
|
|
type="button"
|
|
class="link is-ghost"
|
|
onclick={{queue (action "downloadSnapshot") (action D.actions.close)}}
|
|
>
|
|
Download
|
|
</button>
|
|
{{/if}}
|
|
</li>
|
|
<li class="action">
|
|
<LinkTo @route="vault.cluster.storage-restore">
|
|
Restore
|
|
</LinkTo>
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
</D.Content>
|
|
</BasicDropdown>
|
|
</ToolbarActions>
|
|
</Toolbar>
|
|
|
|
<table class="vlt-table is-fullwidth">
|
|
<caption class="is-collapsed">Raft servers</caption>
|
|
<thead class="has-text-weight-semibold">
|
|
<tr>
|
|
<th scope="col">Address</th>
|
|
<th scope="col">Voter</th>
|
|
<th scope="col"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{{#each @model as |server|}}
|
|
<tr data-raft-row>
|
|
<td>
|
|
{{server.address}}
|
|
{{#if server.leader}}
|
|
<span class="tag">Leader</span>
|
|
{{/if}}
|
|
</td>
|
|
<td>
|
|
|
|
{{#if server.voter}}
|
|
<Icon @name="check-circle" aria-label="Yes" class="icon-true has-text-success" />
|
|
{{else}}
|
|
<Icon @name="x-square" aria-label="No" class="icon-false" />
|
|
{{/if}}
|
|
</td>
|
|
<td class="middle no-padding has-text-right">
|
|
<PopupMenu>
|
|
<Confirm as |c|>
|
|
<nav aria-label="remove peer">
|
|
<ul>
|
|
<li class="action">
|
|
<c.Message
|
|
@id={{server.nodeId}}
|
|
@onConfirm={{action "removePeer" server}}
|
|
@triggerText="Remove Peer"
|
|
@confirmButtonText="Remove"
|
|
@title={{concat "Remove " server.nodeId "?"}}
|
|
@message="This will remove the server from the raft cluster."
|
|
/>
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
</Confirm>
|
|
</PopupMenu>
|
|
</td>
|
|
</tr>
|
|
{{/each}}
|
|
</tbody>
|
|
</table> |