Change navigation structure

Change-Id: I12c819293ce1eda188dc9f257ae9370f1b73cb18
Signed-off-by: Iftekharul Islam <iislam@us.ibm.com>
diff --git a/app/server-control/controllers/power-operations-controller.js b/app/server-control/controllers/power-operations-controller.js
new file mode 100644
index 0000000..4e66f56
--- /dev/null
+++ b/app/server-control/controllers/power-operations-controller.js
@@ -0,0 +1,134 @@
+/**
+ * Controller for power-operations
+ *
+ * @module app/serverControl
+ * @exports powerOperationsController
+ * @name powerOperationsController
+ * @version 0.1.0
+ */
+
+window.angular && (function (angular) {
+    'use strict';
+
+    angular
+        .module('app.serverControl')
+        .controller('powerOperationsController', [
+            '$scope', 
+            'APIUtils', 
+            'dataService', 
+            '$timeout', 
+            function($scope, APIUtils, dataService, $timeout){
+                $scope.dataService = dataService;
+                $scope.confirm = false;
+                $scope.power_confirm = false;
+                $scope.warmboot_confirm = false;
+                $scope.coldboot_confirm = false;
+                $scope.orderly_confirm = false;
+                $scope.immediately_confirm = false;
+
+                //@TODO: call api and get proper state
+                $scope.toggleState = function(){
+                    dataService.server_state = (dataService.server_state == 'Running') ? 'Off': 'Running';
+                }
+
+                $scope.togglePower = function(){
+                    var method = (dataService.server_state == 'Running') ? 'hostPowerOff' : 'hostPowerOn';
+                     //@TODO: show progress or set class orange
+                    APIUtils[method](function(response){
+                        //update state based on response
+                        //error case?
+                        if(response == null){
+                            console.log("Failed request.");
+                        }else{
+                            //@TODO::need to get the server status
+                            if(dataService.server_state == 'Running'){
+                                dataService.setPowerOffState();
+                            }else{
+                                dataService.setPowerOnState();
+                            }
+                        }
+                    });
+                }
+                $scope.powerOnConfirm = function(){
+                    if($scope.confirm) {
+                        return;
+                    }
+                    $scope.confirm = true;
+                    $scope.power_confirm = true;
+                };
+                $scope.warmReboot = function(){
+                    //@TODO:show progress
+                    dataService.setBootingState();
+                    APIUtils.hostPowerOff(function(response){
+                        if(response){
+                            APIUtils.hostPowerOn(function(response){
+                                if(response){
+                                    dataService.setPowerOnState();
+                                }else{
+                                    //@TODO:show error message
+                                }
+                            });
+                        }else{
+                        }
+                    });
+                };
+                $scope.testState = function(){
+                    $timeout(function(){
+                        dataService.setPowerOffState();
+                        $timeout(function(){
+                            dataService.setPowerOnState();
+                        }, 2000);
+                    }, 1000);
+                };
+                $scope.warmRebootConfirm = function(){
+                    if($scope.confirm) {
+                        return;
+                    }
+                    $scope.confirm = true;
+                    $scope.warmboot_confirm = true;
+                };
+
+                $scope.coldReboot = function(){
+                    $scope.warmReboot();
+                };
+                $scope.coldRebootConfirm = function(){
+                    if($scope.confirm) {
+                        return;
+                    }
+                    $scope.confirm = true;
+                    $scope.coldboot_confirm = true;
+                };
+
+                $scope.orderlyShutdown = function(){
+                    //@TODO:show progress
+                    APIUtils.hostPowerOff(function(response){
+                        if(response){
+                            dataService.setPowerOffState();
+                        }else{
+                            //@TODO:hide progress & show error message
+                        }
+                    });
+                };
+                $scope.orderlyShutdownConfirm = function(){
+                    if($scope.confirm) {
+                        return;
+                    }
+                    $scope.confirm = true;
+                    $scope.orderly_confirm = true;
+                };
+
+                $scope.immediateShutdown = function(){
+                    $scope.orderlyShutdown();
+                };
+                $scope.immediateShutdownConfirm = function(){
+                    if($scope.confirm) {
+                        return;
+                    }
+                    $scope.confirm = true;
+                    $scope.immediately_confirm = true;
+                };
+            }
+        ]
+    );
+
+})(angular);