1window.angular && (function (angular) {
2    'use strict';
3
4    angular
5        .module('app.common.directives')
6        .directive('appHeader', ['APIUtils', function (APIUtils) {
7            return {
8                'restrict': 'E',
9                'templateUrl': 'common/directives/app-header.html',
10                'scope': {
11                   'path': '='
12                },
13                'controller': ['$rootScope', '$scope','dataService', 'userModel', '$location', function($rootScope, $scope, dataService, userModel, $location){
14                    $scope.dataService = dataService;
15
16                    $scope.loadServerStatus = function(){
17                        if(!userModel.isLoggedIn()){
18                            //@TODO:some error message?
19                            return;
20                        }
21                        APIUtils.getHostState(function(status){
22                            if(status == 'xyz.openbmc_project.State.Host.HostState.Off'){
23                                dataService.setPowerOffState();
24                            }else if(status == 'xyz.openbmc_project.State.Host.HostState.Running'){
25                                dataService.setPowerOnState();
26                            }else{
27                                dataService.setBootingState();
28                            }
29                        });
30                    }
31                    $scope.loadServerStatus();
32
33                    $scope.logout = function(){
34                        userModel.logout(function(status, error){
35                            if(status){
36                               $location.path('/logout');
37                            }else{
38                                console.log(error);
39                            }
40                        });
41                    }
42
43                    $scope.refresh = function(){
44                        $scope.loadServerStatus();
45                    }
46
47                    var loginListener = $rootScope.$on('user-logged-in', function(event, arg){
48                        $scope.loadServerStatus();
49                    });
50
51                    $scope.$on('$destroy', function(){
52                        loginListener();
53                    });
54                }]
55            };
56        }]);
57})(window.angular);
58