4a9610f382
* WIP/initial routing-ish * refactor date dropdown to reuse in modal and allowe current month selection * swap linter disable line * refactor date-dropdown to return object * refactor calendar widget, add tests * change calendar start and end args to getters * refactor dashboard to use date objects instead of array of year, month * remove dashboard files for easier to follow git diff * comment out dashboard tab until route name updated * delete current tab and route * fix undefined banner time * cleanup version history serializer and upgrade data * first pass of updating tests * add changelog * update client count util test * validate end time is after start time * update comment * add current month to calendar widget * add comments for code changes to make following API update * Removed a modified file from pull request * address comments/cleanup * update variables to const * update test const * rename history -> dashboard, fix tests * fix timestamps for attribution chart * update release note * refactor using backend start and end time params * add test for adapter formatting time params * fix tests * cleanup adapter comment and query params * change back history file name for diff * rename file using cli * revert filenames * rename files via git cli * revert route file name * last cli rename * refactor mirage * hold off on running total changes * update params in test * refactor to remove conditional assertions * finish tests * fix firefox tooltip * remove current-when * refactor version history * add timezone/UTC note * final cleanup!!!! * fix test * fix client count date tests * fix date-dropdown test * clear datedropdown completely * update date selectors to accommodate new year (#18586) * Revert "hold off on running total changes" This reverts commit 8dc79a626d549df83bc47e290392a556c670f98f. * remove assumed 0 values * update average helper to only calculate for array of objects * remove passing in bar chart data, map in running totals component instead * cleanup usage stat component * clear ss filters for new queries * update csv export, add explanation to modal * update test copy * consistently return null if no upgrade during activity (instead of empty array) * update description, add clarifying comments * update tes * add more clarifying comments * fix historic single month chart * remove old test tag * Update ui/app/components/clients/dashboard.js
150 lines
6.1 KiB
Handlebars
150 lines
6.1 KiB
Handlebars
<div class="popup-menu-content">
|
|
<div class="box">
|
|
{{#unless this.version.isOSS}}
|
|
{{#if (and this.activeCluster.unsealed this.auth.currentToken)}}
|
|
{{#if @cluster.dr.isSecondary}}
|
|
{{#if (has-permission "status" routeParams="replication")}}
|
|
<nav class="menu" aria-label="replication secondary menu">
|
|
<p class="menu-label">Replication</p>
|
|
<ul>
|
|
{{#if @cluster.anyReplicationEnabled}}
|
|
<li>
|
|
<LinkTo
|
|
@route="vault.cluster.replication-dr-promote.details"
|
|
@disabled={{not this.auth.currentToken}}
|
|
{{on "click" @onLinkClick}}
|
|
>
|
|
<ReplicationModeSummary @mode="dr" @display="menu" @cluster={{@cluster}} />
|
|
</LinkTo>
|
|
</li>
|
|
{{/if}}
|
|
</ul>
|
|
</nav>
|
|
<hr />
|
|
{{/if}}
|
|
{{else}}
|
|
{{#if (has-permission "status" routeParams="replication")}}
|
|
<nav class="menu" aria-label="replication menu">
|
|
<p class="menu-label">Replication</p>
|
|
<ul>
|
|
{{#if @cluster.anyReplicationEnabled}}
|
|
<li>
|
|
<LinkTo
|
|
@route="vault.cluster.replication.mode.index"
|
|
@model="dr"
|
|
@disabled={{not this.auth.currentToken}}
|
|
{{on "click" @onLinkClick}}
|
|
>
|
|
<ReplicationModeSummary @mode="dr" @display="menu" @cluster={{@cluster}} />
|
|
</LinkTo>
|
|
</li>
|
|
<li>
|
|
{{#if (has-feature "Performance Replication")}}
|
|
<LinkTo
|
|
@route="vault.cluster.replication.mode.index"
|
|
@model="performance"
|
|
@disabled={{not this.auth.currentToken}}
|
|
{{on "click" @onLinkClick}}
|
|
>
|
|
<ReplicationModeSummary @mode="performance" @display="menu" @cluster={{@cluster}} @tagName="span" />
|
|
</LinkTo>
|
|
{{else}}
|
|
<ReplicationModeSummary @mode="performance" @display="menu" @cluster={{@cluster}} @class="menu-item" />
|
|
{{/if}}
|
|
</li>
|
|
{{else}}
|
|
<li>
|
|
<LinkTo @route="vault.cluster.replication" {{on "click" @onLinkClick}}>
|
|
<div class="level is-mobile">
|
|
<span class="level-left">Enable</span>
|
|
<Icon @name="plus-circle" class="has-text-grey-light level-right" />
|
|
</div>
|
|
</LinkTo>
|
|
</li>
|
|
{{/if}}
|
|
</ul>
|
|
</nav>
|
|
<hr />
|
|
{{/if}}
|
|
{{/if}}
|
|
{{/if}}
|
|
{{/unless}}
|
|
<nav class="menu" aria-label="server menu">
|
|
<div class="menu-label">
|
|
Server
|
|
</div>
|
|
<ul class="menu-list">
|
|
<li class="action">
|
|
{{#if this.activeCluster.unsealed}}
|
|
{{#if (and (has-permission "status" routeParams="seal") (not @cluster.dr.isSecondary))}}
|
|
<LinkTo @route="vault.cluster.settings.seal" @model={{@cluster.name}} {{on "click" @onLinkClick}}>
|
|
<div class="level is-mobile">
|
|
<span class="level-left">Unsealed</span>
|
|
<Icon @name="check-circle" class="has-text-success level-right" />
|
|
</div>
|
|
</LinkTo>
|
|
{{else}}
|
|
<span class="menu-item">
|
|
<div class="level is-mobile">
|
|
<span class="level-left">Unsealed</span>
|
|
<Icon @name="check-circle" class="has-text-success level-right" />
|
|
</div>
|
|
</span>
|
|
{{/if}}
|
|
{{else}}
|
|
<span class="menu-item">
|
|
<div class="level is-mobile">
|
|
<span class="level-left has-text-danger">Sealed</span>
|
|
<Icon @name="x-circle" class="has-text-danger level-right" />
|
|
</div>
|
|
</span>
|
|
{{/if}}
|
|
</li>
|
|
</ul>
|
|
{{#if
|
|
(and
|
|
(or
|
|
(and this.version.features (has-permission "status" routeParams="license"))
|
|
(and @cluster.usingRaft (has-permission "status" routeParams="raft"))
|
|
)
|
|
(not @cluster.dr.isSecondary)
|
|
)
|
|
}}
|
|
<ul class="menu-list">
|
|
{{#if (and this.version.features (has-permission "status" routeParams="license") (not @cluster.dr.isSecondary))}}
|
|
<li class="action">
|
|
<LinkTo @route="vault.cluster.license" @model={{this.activeCluster.name}} {{on "click" @onLinkClick}}>
|
|
<div class="level is-mobile">
|
|
<span class="level-left">License</span>
|
|
<Chevron class="has-text-grey-light level-right" />
|
|
</div>
|
|
</LinkTo>
|
|
</li>
|
|
{{/if}}
|
|
{{#if (and @cluster.usingRaft (has-permission "status" routeParams="raft"))}}
|
|
<li class="action">
|
|
<LinkTo @route="vault.cluster.storage" @model={{this.activeCluster.name}} {{on "click" @onLinkClick}}>
|
|
<div class="level is-mobile">
|
|
<span class="level-left">Raft Storage</span>
|
|
<Chevron class="has-text-grey-light level-right" />
|
|
</div>
|
|
</LinkTo>
|
|
</li>
|
|
{{/if}}
|
|
</ul>
|
|
{{/if}}
|
|
{{#if (and (has-permission "clients" routeParams="activity") (not @cluster.dr.isSecondary) this.auth.currentToken)}}
|
|
<ul class="menu-list">
|
|
<li class="action">
|
|
<LinkTo @route="vault.cluster.clients.dashboard" {{on "click" @onLinkClick}}>
|
|
<div class="level is-mobile">
|
|
<span class="level-left">Client count</span>
|
|
<Chevron class="has-text-grey-light level-right" />
|
|
</div>
|
|
</LinkTo>
|
|
</li>
|
|
</ul>
|
|
{{/if}}
|
|
</nav>
|
|
</div>
|
|
</div> |