summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbeccabroek <beccabroek@gmail.com>2018-09-24 13:14:05 -0500
committerGunnar Mills <gmills@us.ibm.com>2018-10-04 20:27:05 +0000
commit971ac1aaf4a7096bb20ec75db3be5755f8899906 (patch)
tree71c2c8e6a327ebf2aff8f6b55be50f54ae6f1a3e
parent77039a5e9adef97012816a775af7efedf8db236b (diff)
downloadphosphor-webui-971ac1aaf4a7096bb20ec75db3be5755f8899906.tar.gz
phosphor-webui-971ac1aaf4a7096bb20ec75db3be5755f8899906.zip
Remove IPV4 addresses
Tested: Able to remove existing IPV4 addresses. Change-Id: I772bee6ad6b68bc0a69351f3e5386acc659241ef Signed-off-by: beccabroek <beccabroek@gmail.com>
-rw-r--r--app/configuration/controllers/network-controller.html39
-rw-r--r--app/configuration/controllers/network-controller.js29
-rw-r--r--app/configuration/styles/network.scss7
3 files changed, 55 insertions, 20 deletions
diff --git a/app/configuration/controllers/network-controller.html b/app/configuration/controllers/network-controller.html
index 3b2567c..287698f 100644
--- a/app/configuration/controllers/network-controller.html
+++ b/app/configuration/controllers/network-controller.html
@@ -51,21 +51,24 @@
<span class="control__indicator control__indicator-on"></span>
</label>
</div>
- <fieldset class="net-config__static-ip-wrap" ng-repeat="ipv4 in interface.ipv4.values">
- <div class="column small-12 large-4">
- <label for="net-config__ipv4-address" class="inline">IPV4 address</label>
- <input id="net-config__ipv4-address" type="text" ng-disabled="interface.DHCPEnabled" ng-model="ipv4.Address"/>
- </div>
- <div class="column small-12 large-4">
- <label for="net-config__subnet" class="inline">Gateway</label>
- <input id="net-config__subnet" type="text" ng-disabled="interface.DHCPEnabled" value="" ng-model="ipv4.Gateway"/>
- </div>
- <!-- This netmask prefix length max only works with IPV4 -->
- <div class="column small-12 large-4">
- <label for="net-config__default-gateway" class="inline">Netmask Prefix Length</label>
- <input id="net-config__default-gateway" type="number" min="1" max="32" step="1" ng-disabled="interface.DHCPEnabled" ng-model="ipv4.PrefixLength"/>
- </div>
- </fieldset>
+ <div class="row column network-config__ipv4-wrap">
+ <fieldset class="net-config__static-ip-wrap" ng-repeat="ipv4 in interface.ipv4.values track by $index">
+ <div class="column small-12 large-3">
+ <label for="net-config__ipv4-address">IPV4 address</label>
+ <input id="net-config__ipv4-address" type="text" ng-disabled="interface.DHCPEnabled" ng-model="ipv4.Address"/>
+ </div>
+ <div class="column small-12 large-3">
+ <label for="net-config__subnet">Gateway</label>
+ <input id="net-config__subnet" type="text" ng-disabled="interface.DHCPEnabled" value="" ng-model="ipv4.Gateway"/>
+ </div>
+ <!-- This netmask prefix length max only works with IPV4 -->
+ <div class="column small-12 large-6">
+ <label for="net-config__default-gateway">Netmask Prefix Length</label>
+ <input id="net-config__default-gateway" class="column small-6" type="number" min="1" max="32" step="1" ng-disabled="interface.DHCPEnabled" ng-model="ipv4.PrefixLength"/>
+ <button class="network-config_remove-button inline" ng-click="removeIpv4Address($index)">Remove</button>
+ </div>
+ </fieldset>
+ </div>
</fieldset>
</section>
<section class="row column">
@@ -77,11 +80,11 @@
<fieldset class="net-config__static-ip-wrap" ng-repeat="dns in interface.Nameservers track by $index">
<div class="column small-12">
<label for="net-config__prime-dns{{$index+1}}">DNS Server {{$index+1}}</label>
- <input id="net-config__prime-dns{{$index+1}}" class="network-input column small-6 large-4 inline" type="text" ng-model="dns" ng-blur="interface.Nameservers[$index] = dns" set-focus-on-new-input//>
- <button class="dns__server-remove inline" ng-click="removeDNSField($index)">Remove</button>
+ <input id="net-config__prime-dns{{$index+1}}" class="network-input column small-6 large-4 inline" type="text" ng-model="dns" ng-blur="interface.Nameservers[$index] = dns" set-focus-on-new-input/>
+ <button class="network-config_remove-button inline" ng-click="removeDNSField($index)">Remove</button>
</div>
</fieldset>
- <div class="column small-12">
+ <div class="row column">
<button type="button" class="btn-primary inline dns_add" ng-click="addDNSField()">Add new DNS server</button>
</div>
</fieldset>
diff --git a/app/configuration/controllers/network-controller.js b/app/configuration/controllers/network-controller.js
index 4d11ae5..a9546d4 100644
--- a/app/configuration/controllers/network-controller.js
+++ b/app/configuration/controllers/network-controller.js
@@ -24,6 +24,7 @@ window.angular && (function(angular) {
$scope.selectedInterface = '';
$scope.confirm_settings = false;
$scope.loading = false;
+ $scope.IPV4s_to_delete = [];
loadNetworkInfo();
@@ -43,6 +44,15 @@ window.angular && (function(angular) {
$scope.interface.Nameservers.splice(index, 1);
};
+ $scope.removeIpv4Address = function(index) {
+ // Check if the IPV4 being removed has an id. This indicates that it is
+ // an existing address and needs to be removed in the back end.
+ if ($scope.interface.ipv4.values[index].id) {
+ $scope.IPV4s_to_delete.push($scope.interface.ipv4.values[index]);
+ }
+ $scope.interface.ipv4.values.splice(index, 1);
+ };
+
$scope.setNetworkSettings = function() {
// Hides the confirm network settings modal
$scope.confirm_settings = false;
@@ -79,6 +89,9 @@ window.angular && (function(angular) {
// Set IPV4 IP Addresses, Netmask Prefix Lengths, and Gateways
if (!$scope.interface.DHCPEnabled) {
+ // Delete existing IPV4 addresses that were removed
+ promises.push(removeIPV4s());
+ // Update any changed IPV4 addresses
for (var i in $scope.interface.ipv4.values) {
if (!APIUtils.validIPV4IP(
$scope.interface.ipv4.values[i].Address)) {
@@ -202,6 +215,18 @@ window.angular && (function(angular) {
});
}
+ function removeIPV4s() {
+ return $scope.IPV4s_to_delete.map(function(ipv4) {
+ return APIUtils.deleteIPV4($scope.selectedInterface, ipv4.id)
+ .then(
+ function(data) {},
+ function(error) {
+ console.log(JSON.stringify(error));
+ $scope.set_network_error = ipv4.Address;
+ })
+ });
+ }
+
function setIPV4(index) {
// The correct way to edit an IPV4 interface is to remove it and then
// add a new one
@@ -253,6 +278,10 @@ window.angular && (function(angular) {
// page
$scope.old_interface = JSON.parse(JSON.stringify($scope.interface));
}
+ // Add id values to corresponding IPV4 objects
+ for (var i = 0; i < $scope.interface.ipv4.values.length; i++) {
+ $scope.interface.ipv4.values[i].id = $scope.interface.ipv4.ids[i];
+ }
});
}
}
diff --git a/app/configuration/styles/network.scss b/app/configuration/styles/network.scss
index db32e98..d776d13 100644
--- a/app/configuration/styles/network.scss
+++ b/app/configuration/styles/network.scss
@@ -47,11 +47,14 @@
{
margin-left: 3em;
}
- .dns__server-remove {
+ .network-config__ipv4-wrap {
+ padding-bottom: 1.8em;
+ }
+ .network-config_remove-button {
color: $medblue;
height: 2.1em;
- opacity: 1;
margin-left: 1em;
+ opacity: 1;
&:hover {
cursor: pointer;
}
OpenPOWER on IntegriCloud