Allow user to modify hostname in overview page

Testing: Verified edit button correctly updates hostname on BMC and
it is correctly refreshed in the web interface.

Resolves openbmc/openbmc#3104

Change-Id: I28eb6366bde7c01b84d2fab54317aaf69ec2dba8
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
diff --git a/app/overview/controllers/system-overview-controller.html b/app/overview/controllers/system-overview-controller.html
index 7f26f44..7ee62cf 100644
--- a/app/overview/controllers/system-overview-controller.html
+++ b/app/overview/controllers/system-overview-controller.html
@@ -175,7 +175,7 @@
 		</div>
 		<div class="modal__button-wrapper">
 			<button class="inline btn-secondary" ng-click="edit_server_name= false;">Cancel</button>
-			<button class="inline btn-primary" ng-click="">Save</button>
+			<button class="inline btn-primary" ng-click="saveHostname(char_count);">Save</button>
 		</div>
 	</div>
 </section>
diff --git a/app/overview/controllers/system-overview-controller.js b/app/overview/controllers/system-overview-controller.js
index c98f98e..5ce57dc 100644
--- a/app/overview/controllers/system-overview-controller.js
+++ b/app/overview/controllers/system-overview-controller.js
@@ -32,6 +32,7 @@
                 $scope.power_cap = "";
                 $scope.bmc_ip_addresses = [];
                 $scope.loading = false;
+                $scope.edit_server_name = false;
 
                 loadOverviewData();
                 function loadOverviewData(){
@@ -125,6 +126,20 @@
                     $scope.bmc_ip_addresses =
                         data.formatted_data.ip_addresses.ipv4;
                 }
+
+                $scope.saveHostname = function(hostname) {
+                    $scope.edit_server_name = false;
+                    $scope.loading = true;
+                    APIUtils.setHostname(hostname).then(function(data){
+                        APIUtils.getNetworkInfo().then(function(data){
+                            dataService.setNetworkInfo(data);
+                        });
+                    },
+                    function(error){
+                        console.log(error);
+                    });
+                    $scope.loading = false;
+                }
             }
         ]
     );