diff options
author | Derick Montague <derick.montague@ibm.com> | 2019-10-10 11:47:13 -0500 |
---|---|---|
committer | Gunnar Mills <gmills@us.ibm.com> | 2019-10-16 18:33:55 +0000 |
commit | 3cd2c65b57002ac2324c361a0c53f6b1865b70c6 (patch) | |
tree | 6f78205e899d226e4d5fc484499705446325e7eb /app | |
parent | 11b79a79a1f1fa2c772d800c895f6efc232cacc0 (diff) | |
download | phosphor-webui-3cd2c65b57002ac2324c361a0c53f6b1865b70c6.tar.gz phosphor-webui-3cd2c65b57002ac2324c361a0c53f6b1865b70c6.zip |
Fix SNMP multiple calls bug
- Added a call to reload the route in the promise success callback. This
assures that a newly added manager has a path.
- Update the use of var in for blocks to scope the variable to the
block rather than overwriting the i variable that is hoisted and
scoped to the setSNMP function.
- Change i variable name to managerLength to improve readability
Signed-off-by: Derick Montague <derick.montague@ibm.com>
Change-Id: I18fe9ecc3ca7cca29781a5c24caca73bda71ee43
Diffstat (limited to 'app')
-rw-r--r-- | app/configuration/controllers/snmp-controller.js | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/app/configuration/controllers/snmp-controller.js b/app/configuration/controllers/snmp-controller.js index 67e210f..69466c0 100644 --- a/app/configuration/controllers/snmp-controller.js +++ b/app/configuration/controllers/snmp-controller.js @@ -62,7 +62,7 @@ window.angular && (function(angular) { // Validate that no field are empty and port is valid. Port value is // undefined if it is an invalid number. - for (var i in $scope.managers) { + for (let i in $scope.managers) { if (!$scope.managers[i].address || !$scope.managers[i].port) { $scope.loading = false; toastService.error('Cannot save. Please resolve errors on page.'); @@ -71,34 +71,38 @@ window.angular && (function(angular) { } // Iterate in reverse so can splice // https://stackoverflow.com/questions/9882284/looping-through-array-and-removing-items-without-breaking-for-loop - var i = $scope.managers.length; - while (i--) { + let managersLength = $scope.managers.length; + while (managersLength--) { // If the manager does not have a 'path', it is a new manager // and needs to be created - if (!$scope.managers[i].path) { + if (!$scope.managers[managersLength].path) { promises.push(addManager( - $scope.managers[i].address, $scope.managers[i].port)); + $scope.managers[managersLength].address, + $scope.managers[managersLength].port)); } else { - if ($scope.managers[i].updateAddress) { + if ($scope.managers[managersLength].updateAddress) { promises.push(setManagerAddress( - $scope.managers[i].path, $scope.managers[i].address)); + $scope.managers[managersLength].path, + $scope.managers[managersLength].address)); } - if ($scope.managers[i].updatePort) { + if ($scope.managers[managersLength].updatePort) { promises.push(setManagerPort( - $scope.managers[i].path, $scope.managers[i].port)); + $scope.managers[managersLength].path, + $scope.managers[managersLength].port)); } } } // Add delete promises last since we might be adding to // managersToDelete above - for (var i in $scope.managersToDelete) { + for (let i in $scope.managersToDelete) { promises.push(deleteManager($scope.managersToDelete[i])); } $q.all(promises) .then( function() { + $scope.refresh(); toastService.success('SNMP settings have been saved.'); }, function(errors) { |