1/** 2 * Controller for power-usage 3 * 4 * @module app/serverControl 5 * @exports powerUsageController 6 * @name powerUsageController 7 */ 8 9window.angular && (function(angular) { 10 'use strict'; 11 12 angular.module('app.serverControl').controller('powerUsageController', [ 13 '$scope', '$window', 'APIUtils', '$route', '$q', 14 function($scope, $window, APIUtils, $route, $q) { 15 $scope.power_consumption = ''; 16 $scope.power_cap = {}; 17 $scope.set_power_cap_error = false; 18 $scope.set_power_cap_success = false; 19 $scope.loading = false; 20 loadPowerData(); 21 22 function loadPowerData() { 23 $scope.loading = true; 24 25 var getPowerCapPromise = APIUtils.getPowerCap().then( 26 function(data) { 27 $scope.power_cap = data.data; 28 // TODO: openbmc/openbmc#3154 Rest server should return a proper 29 // JSON bool. Convert 0/1 to boolean in meantime. 30 if ($scope.power_cap.PowerCapEnable) { 31 $scope.power_cap.PowerCapEnable = true; 32 } else { 33 $scope.power_cap.PowerCapEnable = false; 34 } 35 }, 36 function(error) { 37 console.log(JSON.stringify(error)); 38 }); 39 40 var getPowerConsumptionPromise = APIUtils.getPowerConsumption().then( 41 function(data) { 42 $scope.power_consumption = data; 43 }, 44 function(error) { 45 console.log(JSON.stringify(error)); 46 }); 47 48 var promises = [ 49 getPowerConsumptionPromise, 50 getPowerCapPromise, 51 ]; 52 53 $q.all(promises).finally(function() { 54 $scope.loading = false; 55 }); 56 } 57 58 $scope.setPowerCap = function() { 59 $scope.set_power_cap_error = false; 60 $scope.set_power_cap_success = false; 61 // The power cap value will be undefined if outside range 62 if (!$scope.power_cap.PowerCap) { 63 $scope.set_power_cap_error = true; 64 return; 65 } 66 $scope.loading = true; 67 var promises = [ 68 setPowerCapValue(), 69 setPowerCapEnable(), 70 ]; 71 72 $q.all(promises).finally(function() { 73 $scope.loading = false; 74 if (!$scope.set_power_cap_error) { 75 $scope.set_power_cap_success = true; 76 } 77 }); 78 79 }; 80 $scope.refresh = function() { 81 $route.reload(); 82 }; 83 84 function setPowerCapValue() { 85 return APIUtils.setPowerCap($scope.power_cap.PowerCap) 86 .then( 87 function(data) {}, 88 function(error) { 89 $scope.set_power_cap_error = true; 90 console.log(JSON.stringify(error)); 91 }); 92 } 93 94 function setPowerCapEnable() { 95 return APIUtils.setPowerCapEnable($scope.power_cap.PowerCapEnable) 96 .then( 97 function(data) {}, 98 function(error) { 99 $scope.set_power_cap_error = true; 100 console.log(JSON.stringify(error)); 101 }); 102 } 103 104 } 105 ]); 106 107})(angular); 108