|  | /** | 
|  | * 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 | 
|  | } | 
|  | }); | 
|  | } | 
|  | }); | 
|  | }; | 
|  | $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); |