Updating network settings

Adding display network settings info in network settings page

Change-Id: I5ab3b399445b8d2d6422f907dc4c5a477bfc794d
Signed-off-by: Iftekharul Islam <iffy.ryan@ibm.com>
diff --git a/app/configuration/controllers/firmware-controller.js b/app/configuration/controllers/firmware-controller.js
index 50df4f0..cafc707 100644
--- a/app/configuration/controllers/firmware-controller.js
+++ b/app/configuration/controllers/firmware-controller.js
@@ -63,7 +63,20 @@
                     }
 
                     $scope.preserveSettingsConfirmed = function(){
-                        //show progress..callapi..hide..iferror..show error
+                        $scope.uploading = true;
+                        APIUtils.activateImage($scope.activate_image_id).then(function(response){
+                            $scope.uploading = false; 
+                            if(response.status == 'error'){
+                                $scope.displayError({
+                                    modal_title: response.data.description,
+                                    title: response.data.description,
+                                    desc: response.data.exception,
+                                    type: 'Error'
+                                });
+                            }else{
+                                $scope.loadFirmwares();
+                            }
+                        });
                         $scope.preserve_settings_confirm = false;
                     }
 
@@ -105,7 +118,7 @@
                             var contentType = headers['content-type'];
 
                             if(!headers['x-filename']){
-                                filename = Constants.FIRMWARE.FALLBACK_DOWNLOAD_FILENAME;
+                                filename = $scope.download_filename;
                             }
 
                             var linkElement = document.createElement('a');
@@ -161,10 +174,23 @@
                         $scope.delete_image_id = imageId;
                         $scope.confirm_delete = true;
                     }
-                    $scope.confirmDeleteImage = function(imageId){
+                    $scope.confirmDeleteImage = function(){
+                        $scope.loading = true;
+                        APIUtils.deleteImage($scope.delete_image_id).then(function(response){
+                            $scope.loading = false;
+                            if(response.status == 'error'){
+                                $scope.displayError({
+                                    modal_title: response.data.description,
+                                    title: response.data.description,
+                                    desc: response.data.exception,
+                                    type: 'Error'
+                                });
+                            }else{
+                                $scope.loadFirmwares();
+                            }
+                        });
                         $scope.confirm_delete = false;
                     }
-
                     $scope.fileNameChanged = function(){
                         $scope.file_empty = false;
                     }
diff --git a/app/configuration/controllers/network-controller.html b/app/configuration/controllers/network-controller.html
index 6276ad3..caa2913 100644
--- a/app/configuration/controllers/network-controller.html
+++ b/app/configuration/controllers/network-controller.html
@@ -9,30 +9,27 @@
 			</div>
 			<fieldset>
 				<div class="column small-12 large-3">
+					<label for="net-config__mac">Hostname</label>
+					<input id="net-config__mac" type="text" readonly value="{{hostname}}"/>
+				</div>
+				<div class="column small-12 large-3">
 					<label for="netinterface-select">Network interface</label>
 					<div id="netinterface-select" class="dropdown__wrapper">
-						<button class="dropdown__button" ng-click="networkDevice = ! networkDevice">eth0</button>
+						<button type="button" class="dropdown__button" ng-click="networkDevice = !networkDevice">{{selectedInterface}}</button>
 						<ul class="dropdown__list inline" ng-show="networkDevice">
-							<li>
-								<button ng-click="networkDevice=false;">eth0</button>
-							</li>
-							<li>
-								<button ng-click="networkDevice=false;">eth1</button>
+							<li ng-repeat="interface_id in network.interface_ids">
+								<button type="button" ng-click="selectInterface(interface_id);">{{interface_id}}</button>
 							</li>
 						</ul>
 					</div>
 				</div>
 				<div class="column small-12 large-3">
-					<label for="net-config__mac">MAC address</label>
-					<input id="net-config__mac" type="text" readonly/>
-				</div>
-				<div class="column small-12 large-3">
-					<label for="net-config__host">Hostname</label>
-					<input id="net-config__host" type="text"/>
+					<label for="net-config__host">MAC address</label>
+					<input id="net-config__host" type="text" ng-model="interface.MACAddress"/>
 				</div>
 				<div class="column small-12 large-3">
 					<label for="net-config__domain">Domain name</label>
-					<input id="net-config__domain" type="text"/>
+					<input id="net-config__domain" type="text" ng-model="interface.DomainName"/>
 				</div>
 			</fieldset>
 		</section>
@@ -43,28 +40,28 @@
 			<fieldset>
 				<div class="row column">
 					<label class="control-radio" for="dhcp-address">Obtain an IP address automatically using DHCP
-						<input type="radio" name="ip-address" id="dhcp-address" ng-checked="true" ng-model="dhcp" ng-value="true" ng-init="dhcp=true"/>
+						<input type="radio" name="ip-address" id="dhcp-address" ng-checked="true" ng-model="interface.DHCPEnabled" ng-value="true">
 						<span class="control__indicator control__indicator-on"></span>
 					</label>
 				</div>
 				<div class="row column">
 					<label class="control-radio" for="static-ip-address">Assign a static IP address
-						<input type="radio" name="ip-address" id="static-ip-address" ng-model="dhcp" ng-value="false"/>
+						<input type="radio" name="ip-address" id="static-ip-address" ng-model="interface.DHCPEnabled" ng-value="false"/>
 						<span class="control__indicator control__indicator-on"></span>
 					</label>
 				</div>
-				<fieldset class="net-config__static-ip-wrap">
+				<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="dhcp" value=""/>
+						<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">Subnet mask</label>
-						<input id="net-config__subnet" type="text" ng-disabled="dhcp" value=""/>
+						<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>
 					<div class="column small-12 large-4">
-						<label for="net-config__default-gateway" class="inline">Default gateway</label>
-						<input id="net-config__default-gateway" type="text" ng-disabled="dhcp" value=""/>
+						<label for="net-config__default-gateway" class="inline">Origin</label>
+						<input id="net-config__default-gateway" type="text" ng-disabled="interface.DHCPEnabled"  ng-model="ipv4.Origin"/>
 					</div>
 				</fieldset>
 			</fieldset>
@@ -75,16 +72,12 @@
 			</div>
 			<fieldset>
 				<div class="column small-12 large-4">
-					<label for="net-config__prime-dns">Primary DNS server</label>
-					<input id="net-config__prime-dns" type="text"/>
-				</div>
-				<div class="column small-12 large-4">
-					<label for="net-config__secondary-dns">Secondary DNS server</label>
-					<input id="net-config__secondary-dns" type="text"/>
-				</div>
-				<div class="column small-12 large-4">
-					<label for="net-config__tertiary-dns">Tertiary DNS server</label>
-					<input id="net-config__tertiary-dns" type="text"/>
+					<ul>
+						<li ng-repeat="dns in interface.Nameservers track by $index">
+							<label for="net-config__prime-dns">DNS Server {{$index+1}}</label>{{dns}}
+							<br/>
+						</li>
+					</ul>
 				</div>
 			</fieldset>
 			<div class="network-config__submit-wrapper">
diff --git a/app/configuration/controllers/network-controller.js b/app/configuration/controllers/network-controller.js
index 31b5030..90b89f8 100644
--- a/app/configuration/controllers/network-controller.js
+++ b/app/configuration/controllers/network-controller.js
@@ -19,6 +19,24 @@
             'dataService',
             function($scope, $window, APIUtils, dataService){
                 $scope.dataService = dataService;
+                $scope.network = {};
+                $scope.interface = {};
+                $scope.networkDevice  = false;
+                $scope.hostname = "";
+
+                $scope.selectInterface = function(interfaceId){
+                    $scope.interface = $scope.network.interfaces[interfaceId];
+                    $scope.selectedInterface = interfaceId;
+                    $scope.networkDevice = false;
+                }
+                APIUtils.getNetworkInfo().then(function(data){
+                    $scope.network = data.formatted_data;
+                    $scope.hostname = data.hostname;
+                    if($scope.network.interface_ids.length){
+                       $scope.selectedInterface = $scope.network.interface_ids[0];
+                       $scope.interface = $scope.network.interfaces[$scope.selectedInterface];
+                    }
+                });
             }
         ]
     );