xref: /openbmc/phosphor-webui/app/index.js (revision bb5058e7)
1/**
2 * A module which contains the definition of the application and the base of configuration
3 *
4 * @module app/index/services/index
5 * @exports app/index
6 *
7 * @author Developer Developer
8 * @version 0.10.0
9 * @since 0.0.1
10 */
11
12window.angular && (function (angular) {
13    'use strict';
14
15    angular
16        .module('app', [
17            // Dependencies
18            'ngRoute',
19            // Basic resources
20            'app.constants',
21            'app.templates',
22            'app.vendors',
23            'app.common.services',
24            'app.common.directives',
25            'app.common.filters',
26            // Model resources
27            'app.login',
28            'app.overview'
29        ])
30        // Route configuration
31        .config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
32            $locationProvider.hashPrefix('');
33            $routeProvider
34                .otherwise({
35                    'redirectTo': '/login'
36                });
37        }])
38        .config(['$httpProvider', function($httpProvider){
39            $httpProvider.defaults.timeout = 10000;
40            $httpProvider.interceptors.push('apiInterceptor');
41        }])
42        .run(['$rootScope', '$location', 'dataService', 'userModel',
43           function($rootScope, $location, dataService, userModel){
44           $rootScope.dataService = dataService;
45           dataService.path = $location.path();
46           $rootScope.$on('$routeChangeStart', function(event, next, current){
47
48             if(next.$$route == null || next.$$route == undefined) return;
49             if(next.$$route.authenticated){
50               if(!userModel.isLoggedIn()){
51                 $location.path('/login');
52               }
53             }
54
55             if(next.$$route.originalPath == '/' ||
56               next.$$route.originalPath == '/login'){
57                if(userModel.isLoggedIn()){
58                   if(current && current.$$route){
59                     $location.path(current.$$route.originalPath);
60                   }else{
61                     $location.path('/overview/system');
62                   }
63                }
64             }
65           });
66           $rootScope.$on('$locationChangeSuccess', function(event){
67               var path = $location.path();
68               dataService.path = path;
69               if(['/','/login','/logout'].indexOf(path) == -1 &&
70                path.indexOf('/login') == -1){
71                   dataService.showNavigation = true;
72               }else{
73                   dataService.showNavigation = false;
74               }
75           });
76
77           $rootScope.$on('timedout-user', function(){
78             if(sessionStorage.getItem('LOGIN_ID') == 'FAKE_ID'){
79                return;
80             }
81
82             sessionStorage.removeItem('LOGIN_ID');
83             $location.path('/login');
84           });
85           }
86        ]);
87
88})(window.angular);
89