text: /**
   * Controller for power-usage
   *
   * @module app/serverControl
   * @exports powerUsageController
   * @name powerUsageController
   */
  
  window.angular && (function(angular) {
    'use strict';
  
    angular.module('app.serverControl').controller('powerUsageController', [
      '$scope', '$window', 'APIUtils', '$route', '$q', 'toastService',
      function($scope, $window, APIUtils, $route, $q, toastService) {
        $scope.power_consumption = '';
        $scope.power_cap = {};
        $scope.loading = false;
        loadPowerData();
  
        function loadPowerData() {
          $scope.loading = true;
  
          var getPowerCapPromise = APIUtils.getPowerCap().then(
              function(data) {
                $scope.power_cap = data.data;
              },
              function(error) {
                console.log(JSON.stringify(error));
              });
  
          var getPowerConsumptionPromise = APIUtils.getPowerConsumption().then(
              function(data) {
                $scope.power_consumption = data;
              },
              function(error) {
                console.log(JSON.stringify(error));
              });
  
          var promises = [
            getPowerConsumptionPromise,
            getPowerCapPromise,
          ];
  
          $q.all(promises).finally(function() {
            $scope.loading = false;
          });
        }
  
        $scope.setPowerCap = function() {
          // The power cap value will be undefined if outside range
          if (!$scope.power_cap.PowerCap) {
            toastService.error(
                'Power cap value between 100 and 10,000 is required');
            return;
          }
          $scope.loading = true;
          var promises = [
            setPowerCapValue(),
            setPowerCapEnable(),
          ];
  
          $q.all(promises)
              .then(
                  function() {
                    toastService.success('Power cap settings saved');
                  },
                  function(errors) {
                    toastService.error('Power cap settings could not be saved');
                  })
              .finally(function() {
                $scope.loading = false;
              });
        };
        $scope.refresh = function() {
          $route.reload();
        };
  
        function setPowerCapValue() {
          return APIUtils.setPowerCap($scope.power_cap.PowerCap)
              .then(
                  function(data) {},
                  function(error) {
                    console.log(JSON.stringify(error));
                    return $q.reject();
                  });
        }
  
        function setPowerCapEnable() {
          return APIUtils.setPowerCapEnable($scope.power_cap.PowerCapEnable)
              .then(
                  function(data) {},
                  function(error) {
                    console.log(JSON.stringify(error));
                    return $q.reject();
                  });
        }
      }
    ]);
  })(angular);
  