diff --git a/ui/app/components/replication-page.js b/ui/app/components/replication-page.js
deleted file mode 100644
index 55706477346c4..0000000000000
--- a/ui/app/components/replication-page.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import Component from '@ember/component';
-
-export default Component.extend({});
diff --git a/ui/app/components/replication-page/replication-dashboard.js b/ui/app/components/replication-page/replication-dashboard.js
deleted file mode 100644
index 55706477346c4..0000000000000
--- a/ui/app/components/replication-page/replication-dashboard.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import Component from '@ember/component';
-
-export default Component.extend({});
diff --git a/ui/app/components/replication-page/replication-toggle.js b/ui/app/components/replication-page/replication-toggle.js
deleted file mode 100644
index 23b79cbec1072..0000000000000
--- a/ui/app/components/replication-page/replication-toggle.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import Component from '@ember/component';
-
-export default Component.extend({
- checkedValue: false,
-});
diff --git a/ui/app/styles/components/replication-dashboard.scss b/ui/app/styles/components/replication-dashboard.scss
index 3f2506fa93f1d..5c43a6f156723 100644
--- a/ui/app/styles/components/replication-dashboard.scss
+++ b/ui/app/styles/components/replication-dashboard.scss
@@ -35,44 +35,44 @@
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 1fr 0.8fr;
padding: $spacing-l 0 18px $spacing-l;
+ line-height: 1.5;
// If descriptions are smaller then height is affected, this keeps the cards consistent
- min-height: 200px;
+ min-height: 220px;
- .grid-item-title {
- grid-column-start: 1;
- grid-column-end: 2;
- grid-row-start: 1;
- grid-row-end: 1;
+ @include until(1320px) {
+ // prevent an issue with the card descriptions wrapping and expanding height
+ min-height: 250px;
}
- .grid-item-state {
- grid-column-start: 1;
- grid-column-end: 1;
- grid-row-start: 2;
- grid-row-end: 2;
- line-height: 1.5;
- }
- .grid-item-wal {
- grid-column-start: 2;
- grid-column-end: 2;
- grid-row-start: 2;
- grid-row-end: 2;
+ .grid-item-title {
+ grid-column: 1 / span 2;
- line-height: 1.5;
+ display: flex;
+ }
+ .grid-item-left {
+ grid-column: 1/1;
+ grid-row: 2/2;
}
- .grid-item-stream {
- grid-column-start: 1;
- grid-column-end: 1;
- grid-row-start: 3;
- grid-row-end: 3;
+ .grid-item-right {
+ grid-column: 2/2;
+ grid-row: 2/2;
}
- .grid-item-status {
- grid-column-start: 2;
- grid-column-end: 2;
- grid-row-start: 3;
- grid-row-end: 3;
+ .grid-item-left-bottom {
+ grid-column: 1/1;
+ grid-row: 3/3;
+
+ display: flex;
+ align-items: center;
+ }
+ .grid-item-right-bottom {
+ grid-column: 2/2;
+ grid-row: 3/3;
}
}
}
+
+ .has-text-highlight {
+ color: $yellow-500;
+ }
}
diff --git a/ui/app/templates/components/replication-page.hbs b/ui/app/templates/components/replication-page.hbs
deleted file mode 100644
index 9f35a281ce4b4..0000000000000
--- a/ui/app/templates/components/replication-page.hbs
+++ /dev/null
@@ -1,6 +0,0 @@
-{{yield (hash
- header=(component 'replication-page/replication-header' model=model)
- toggle=(component 'replication-page/replication-toggle' model=model)
- dashboard=(component 'replication-page/replication-dashboard/dashboard' model=model)
-)}}
-{{!-- ARG TODO, not all of these need model or everything on it. Clean up --}}
diff --git a/ui/app/templates/components/replication-page/replication-dashboard/dashboard.hbs b/ui/app/templates/components/replication-page/replication-dashboard/dashboard.hbs
deleted file mode 100644
index 9d69ecc093d33..0000000000000
--- a/ui/app/templates/components/replication-page/replication-dashboard/dashboard.hbs
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
Primary Cluster
-
If you set a primary_cluster_addr when enabling replication, it will appear here.
- {{#if model.dr.primaryClusterAddr}}
-
{{model.dr.primaryClusterAddr}}
- {{else}}
-
no known primary cluster address
- {{/if}}
-
-
- {{yield (hash
- card=(
- component componentToRender
- )
- )}}
-
-
- {{yield (hash
- rows=(
- component 'replication-page/replication-dashboard/replication-table-rows'
- )
- )}}
-
-
diff --git a/ui/app/templates/components/replication-page/replication-dashboard/replication-card.hbs b/ui/app/templates/components/replication-page/replication-dashboard/replication-card.hbs
deleted file mode 100644
index 0f1f8e3c4a5fb..0000000000000
--- a/ui/app/templates/components/replication-page/replication-dashboard/replication-card.hbs
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
{{title}}
-
-
{{property_1}}
-
{{description_1}}
-
-
-
{{property_2}}
-
{{description_2}}
-
-
{{metric_1}}
-
{{metric_2}}
-
diff --git a/ui/app/templates/components/replication-page/replication-dashboard/replication-table-rows.hbs b/ui/app/templates/components/replication-page/replication-dashboard/replication-table-rows.hbs
deleted file mode 100644
index 935d424e4d967..0000000000000
--- a/ui/app/templates/components/replication-page/replication-dashboard/replication-table-rows.hbs
+++ /dev/null
@@ -1,12 +0,0 @@
-
- {{!-- ARG TODO the replicationAttrs might be model for me --}}
- {{info-table-row label="Merkle root index" helperText="A snapshot in time of the merkle tree's root hash. Changes on every update
- to storage." value=metric_1}}
- {{info-table-row label="Mode" value=metric_2}}
- {{info-table-row label="Replication set" helperText="The ID for the group of clusters communicating for this replication mode" value=metric_3}}
-
-
-{{#if syncProgress}}
-{{!-- ARG TODO: need to test this --}}
- {{info-table-row label="Sync progress" value=(concat syncProgress.progress '/' syncProgress.total)}}
-{{/if}}
diff --git a/ui/app/templates/components/replication-page/replication-header.hbs b/ui/app/templates/components/replication-page/replication-header.hbs
deleted file mode 100644
index b115f07163e97..0000000000000
--- a/ui/app/templates/components/replication-page/replication-header.hbs
+++ /dev/null
@@ -1,66 +0,0 @@
-{{!-- DR Secondary has a different Nav Header with access only to the Status menu --}}
-{{!-- ARG TODO all links are hard coded as well as titles right now, they will need to by dynamic --}}
-{{#if (and (eq model.rm.mode 'dr') (eq model.dr.mode 'secondary') )}}
-
-
-
-
-
-
-
-
-
-
-
-
-{{/if}}
-
-
-
- {{#key-value-header
- baseKey=baseKey
- path="vault.cluster.replication-dr-promote"
- root=backendCrumb
- }}
-
-
- /
-
- {{#link-to "vault.cluster.replication-dr-promote"}}
- Disaster Recovery
- {{/link-to}}
-
- {{/key-value-header}}
-
-
-
- Details
-
- {{model.dr.mode}}
-
-
- {{model.dr.clusterIdDisplay}}
-
-
-
-
-
-{{#if showTabs}}
-
-
-
- {{!-- TODO should map over array of options with link and title --}}
- {{#link-to
- "vault.cluster.replication-dr-promote"
- tagName="li"
- activeClass="is-active"
- current-when=""
- }}
- {{#link-to "vault.cluster.replication-dr-promote"}}
- Details
- {{/link-to}}
- {{/link-to}}
-
-
-
-{{/if}}
\ No newline at end of file
diff --git a/ui/app/templates/components/replication-page/replication-toggle.hbs b/ui/app/templates/components/replication-page/replication-toggle.hbs
deleted file mode 100644
index c80c901388e45..0000000000000
--- a/ui/app/templates/components/replication-page/replication-toggle.hbs
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- Auto-refresh {{if checkedValue 'on' 'off'}}
-
-
diff --git a/ui/app/templates/components/wizard/replication-details.hbs b/ui/app/templates/components/wizard/replication-details.hbs
deleted file mode 100644
index e04d4da686c70..0000000000000
--- a/ui/app/templates/components/wizard/replication-details.hbs
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Here you can see the details about your new replication cluster, manage or disable replication, and handle secondary clusters. You can also get a quick status by hovering over the "Replication" link at the top.
-
-
-
-
- Ready to move on?
-
-
- {{nextFeature}}
-
-
-
diff --git a/ui/app/templates/vault/cluster/replication-dr-promote/details.hbs b/ui/app/templates/vault/cluster/replication-dr-promote/details.hbs
index 3bf4132aaa67e..988c3db0174d6 100644
--- a/ui/app/templates/vault/cluster/replication-dr-promote/details.hbs
+++ b/ui/app/templates/vault/cluster/replication-dr-promote/details.hbs
@@ -4,36 +4,21 @@
+ @componentToRender='replication-secondary-card' as |Dashboard|>
-
-
+
diff --git a/ui/app/templates/vault/cluster/replication-dr-promote/index.hbs b/ui/app/templates/vault/cluster/replication-dr-promote/index.hbs
index 53d37f2faf848..2c4ef45f4a3f0 100644
--- a/ui/app/templates/vault/cluster/replication-dr-promote/index.hbs
+++ b/ui/app/templates/vault/cluster/replication-dr-promote/index.hbs
@@ -3,10 +3,6 @@
Disaster Recovery secondary is enabled
- MEEP
-
diff --git a/ui/lib/core/addon/components/replication-header.js b/ui/lib/core/addon/components/replication-header.js
new file mode 100644
index 0000000000000..7839e082de74e
--- /dev/null
+++ b/ui/lib/core/addon/components/replication-header.js
@@ -0,0 +1,16 @@
+/**
+ * @module ReplicationHeader
+ * ARG TODO: finish
+ *
+ * @example
+ * ```js
+ *
+ * ```
+ */
+
+import Component from '@ember/component';
+import layout from '../templates/components/replication-header';
+
+export default Component.extend({
+ layout,
+});
diff --git a/ui/lib/core/addon/components/replication-secondary-card.js b/ui/lib/core/addon/components/replication-secondary-card.js
new file mode 100644
index 0000000000000..99579db697717
--- /dev/null
+++ b/ui/lib/core/addon/components/replication-secondary-card.js
@@ -0,0 +1,31 @@
+/**
+ * @module ReplicationSecondaryCard
+ * ARG TODO finish
+ *
+ */
+
+import Component from '@ember/component';
+import { computed } from '@ember/object';
+import layout from '../templates/components/replication-secondary-card';
+
+export default Component.extend({
+ layout,
+ state: computed('data', function() {
+ let dr = this.data.dr;
+ return dr && dr.state ? dr.state : 'unknown';
+ }),
+ connection: computed('data', function() {
+ return this.data.drStateDisplay ? this.data.drStateDisplay : 'unknown';
+ }),
+ lastWAL: computed('data', function() {
+ let dr = this.data.dr;
+ return dr && dr.lastWAL ? dr.lastWAL : 0;
+ }),
+ lastRemoteWAL: computed('data', function() {
+ let dr = this.data.dr;
+ return dr && dr.lastRemoteWAL ? dr.lastRemoteWAL : 0;
+ }),
+ delta: computed('data', function() {
+ return Math.abs(this.get('lastWAL') - this.get('lastRemoteWAL'));
+ }),
+});
diff --git a/ui/lib/core/addon/templates/components/replication-card.hbs b/ui/lib/core/addon/templates/components/replication-card.hbs
deleted file mode 100644
index 0f1f8e3c4a5fb..0000000000000
--- a/ui/lib/core/addon/templates/components/replication-card.hbs
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
{{title}}
-
-
{{property_1}}
-
{{description_1}}
-
-
-
{{property_2}}
-
{{description_2}}
-
-
{{metric_1}}
-
{{metric_2}}
-
diff --git a/ui/lib/core/addon/templates/components/replication-dashboard.hbs b/ui/lib/core/addon/templates/components/replication-dashboard.hbs
index 9d69ecc093d33..b69eeae819853 100644
--- a/ui/lib/core/addon/templates/components/replication-dashboard.hbs
+++ b/ui/lib/core/addon/templates/components/replication-dashboard.hbs
@@ -17,7 +17,7 @@
{{yield (hash
rows=(
- component 'replication-page/replication-dashboard/replication-table-rows'
+ component 'replication-table-rows' data=data
)
)}}
diff --git a/ui/lib/core/addon/templates/components/replication-header.hbs b/ui/lib/core/addon/templates/components/replication-header.hbs
index b115f07163e97..05898e615d394 100644
--- a/ui/lib/core/addon/templates/components/replication-header.hbs
+++ b/ui/lib/core/addon/templates/components/replication-header.hbs
@@ -1,6 +1,5 @@
{{!-- DR Secondary has a different Nav Header with access only to the Status menu --}}
-{{!-- ARG TODO all links are hard coded as well as titles right now, they will need to by dynamic --}}
-{{#if (and (eq model.rm.mode 'dr') (eq model.dr.mode 'secondary') )}}
+{{#if (and (eq data.rm.mode 'dr') (eq data.dr.mode 'secondary') )}}
@@ -8,13 +7,12 @@
-