/**
 * Controller for bmc-reboot
 *
 * @module app/serverControl
 * @exports bmcRebootController
 * @name bmcRebootController
 */

window.angular && (function (angular) {
    'use strict';

    angular
        .module('app.serverControl')
        .controller('bmcRebootController', [
            '$scope',
            '$window',
            'APIUtils',
            'dataService',
            function($scope, $window, APIUtils, dataService){
                $scope.dataService = dataService;
                $scope.confirm = false;
                $scope.rebootConfirm = function(){
                    if($scope.confirm) {
                        return;
                    }
                    $scope.confirm = true;
                };
                $scope.reboot = function(){
                    dataService.setUnreachableState();
                    APIUtils.bmcReboot(function(response){
                        //@NOTE: using common event to reload server status, may be a better event listener name?
                        $scope.$emit('user-logged-in',{});
                    });
                };
            }
        ]
    );

})(angular);
