From 6a630414d81405c3d7467e42cd0b7a2f8853d326 Mon Sep 17 00:00:00 2001 From: Chelsea Shaw Date: Fri, 5 Jun 2020 13:31:04 -0500 Subject: [PATCH] Ui/replication mgmt/update primary action (#9149) * Update Primary replication action uses modal flow * Update modal max-height to accommodate for the navbar --- ui/app/styles/components/modal.scss | 2 + .../helpers/replication-action-for-mode.js | 2 +- .../replication-action-update-primary.hbs | 239 +++++++----------- .../components/replication-actions-test.js | 30 +-- 4 files changed, 112 insertions(+), 161 deletions(-) diff --git a/ui/app/styles/components/modal.scss b/ui/app/styles/components/modal.scss index 34911989d518..fe629265737a 100644 --- a/ui/app/styles/components/modal.scss +++ b/ui/app/styles/components/modal.scss @@ -5,6 +5,8 @@ .modal-card { box-shadow: $box-shadow-highest; border: 1px solid $grey-light; + max-height: calc(100vh - 70px); + margin-top: 60px; &-head { border-radius: 0; diff --git a/ui/lib/core/addon/helpers/replication-action-for-mode.js b/ui/lib/core/addon/helpers/replication-action-for-mode.js index 83af1e481260..c4b24992c9a2 100644 --- a/ui/lib/core/addon/helpers/replication-action-for-mode.js +++ b/ui/lib/core/addon/helpers/replication-action-for-mode.js @@ -9,7 +9,7 @@ const ACTIONS = { dr: { primary: ['disable', 'recover', 'reindex', 'demote'], // TODO: add disable, recover, reindex and update-primary when API is ready - secondary: ['promote'], + secondary: ['promote', 'update-primary'], bootstrapping: ['disable', 'recover', 'reindex'], }, }; diff --git a/ui/lib/core/addon/templates/components/replication-action-update-primary.hbs b/ui/lib/core/addon/templates/components/replication-action-update-primary.hbs index eef3bd5c9e33..c8da778b78b1 100644 --- a/ui/lib/core/addon/templates/components/replication-action-update-primary.hbs +++ b/ui/lib/core/addon/templates/components/replication-action-update-primary.hbs @@ -1,153 +1,104 @@ -{{#if (and (eq replicationMode 'dr') (eq model.replicationAttrs.modeForUrl 'secondary'))}} -
+
+
+

+ Update primary +

- Change a secondary cluster’s assigned primary cluster using a secondary - activation token. This does not wipe all data in the cluster. + Change this secondary's assigned primary cluster

-
- -
- {{input class="input" id="dr_operation_token" name="dr_operation_token" value=dr_operation_token}} -
-
-
- -
- {{textarea value=token id="secondary-token" name="secondary-token" class="textarea"}} +
+ +
+ +
+
+ + + + + diff --git a/ui/tests/integration/components/replication-actions-test.js b/ui/tests/integration/components/replication-actions-test.js index 9b6cf6000f88..764801e0fabe 100644 --- a/ui/tests/integration/components/replication-actions-test.js +++ b/ui/tests/integration/components/replication-actions-test.js @@ -99,22 +99,20 @@ module('Integration | Component | replication actions', function(hooks) { ['promote', 'secondary', { primary_cluster_addr: 'cluster addr' }], false, ], - - // don't yet update-primary for dr - // [ - // 'performance', - // 'secondary', - // 'update-primary', - // 'Update primary', - // async function() { - // await fillIn('#secondary-token', 'token'); - // await blur('#secondary-token'); - // await fillIn('#primary_api_addr', 'addr'); - // await blur('#primary_api_addr'); - // }, - // ['update-primary', 'secondary', { token: 'token', primary_api_addr: 'addr' }], - // true, - // ], + [ + 'performance', + 'secondary', + 'update-primary', + 'Update primary', + async function() { + await fillIn('#secondary-token', 'token'); + await blur('#secondary-token'); + await fillIn('#primary_api_addr', 'addr'); + await blur('#primary_api_addr'); + }, + ['update-primary', 'secondary', { token: 'token', primary_api_addr: 'addr' }], + false, + ], ]; for (let [