You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by am...@apache.org on 2018/07/24 02:32:44 UTC

[couchdb-fauxton] branch master updated: Fix setup misc bugs (#1109)

This is an automated email from the ASF dual-hosted git repository.

amaranhao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-fauxton.git


The following commit(s) were added to refs/heads/master by this push:
     new 51448d2  Fix setup misc bugs (#1109)
51448d2 is described below

commit 51448d29fc9a4a8b357be073e7f193970b938918
Author: Alexis Côté <po...@users.noreply.github.com>
AuthorDate: Mon Jul 23 22:32:42 2018 -0400

    Fix setup misc bugs (#1109)
    
    - When entering string instead of numbers, revert change and keep previous value
    - Show correct warning when node add fails
    - Allow to configure a cluster of more than 3 nodes
---
 app/addons/setup/actions.js  |  3 +--
 app/addons/setup/reducers.js | 15 +++++++++++----
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/app/addons/setup/actions.js b/app/addons/setup/actions.js
index 95dd352..6a05b5d 100644
--- a/app/addons/setup/actions.js
+++ b/app/addons/setup/actions.js
@@ -197,9 +197,8 @@ export const addNode = (isOrWasAdminParty, credentials, setupNode, additionalNod
     }
     const addNodeResponse = await post(baseUrl, addNodeData, {raw: true});
 
-
     if (!addNodeResponse.ok) {
-      const json = await enableRemoteNodeResponse.json();
+      const json = await addNodeResponse.json();
       const error = json.reason ? json.reason : json.error;
       return showError(error);
     }
diff --git a/app/addons/setup/reducers.js b/app/addons/setup/reducers.js
index 203949d..67dd031 100644
--- a/app/addons/setup/reducers.js
+++ b/app/addons/setup/reducers.js
@@ -56,9 +56,9 @@ export default function setup(state = initialState, action) {
     case SETUP_BIND_ADDRESS_FOR_SINGLE_NODE:
       return updateState(state, 'setupNode.bindAddress', options.value);
     case SETUP_PORT_FOR_SINGLE_NODE:
-      return updateState(state, 'setupNode.port', options.value);
+      return updateStateIfNotNaN(state, 'setupNode.port', parseInt(options.value));
     case SETUP_PORT_ADDITIONAL_NODE:
-      return updateState(state, 'additionalNode.port', parseInt(options.value));
+      return updateStateIfNotNaN(state, 'additionalNode.port', parseInt(options.value));
     case SETUP_BIND_ADDRESS_ADDITIONAL_NODE:
       return updateState(state, 'additionalNode.bindAddress', options.value);
     case SETUP_REMOTE_ADDRESS_ADDITIONAL_NODE:
@@ -71,8 +71,7 @@ export default function setup(state = initialState, action) {
     case SETUP_RESET_ADDITIONAL_NODE:
       return resetAdditionalNode(getStateCopy(state));
     case SETUP_NODE_COUNT:
-      const nodeCount = Math.min(options.value, 3);
-      return updateState(state, 'setupNode.nodeCount', nodeCount);
+      return updateStateIfNotNaN(state, 'setupNode.nodeCount', parseInt(options.value));
     default:
       return state;
   }
@@ -95,6 +94,14 @@ export const getStateCopy = (state) => {
   };
 };
 
+export const updateStateIfNotNaN = (state, path, value) => {
+  let stateCopy = getStateCopy(state);
+  if (_.isNaN(value)) {
+    return stateCopy;
+  }
+  return _.set(stateCopy, path, value);
+};
+
 /**
  * Update a particular value for a state
  * @param state The state to update