var noPermissionPageModule = angular.module('app.noPermissionPage', [])
    .run(['$log', function ($log) {
        $log.debug('app.noPermissionPage.run()...');
    }])
    .config(['$controllerProvider', '$compileProvider', '$filterProvider', '$provide', 'scriptDependencyProvider', '$stateProvider', '$urlRouterProvider',
        function ($controllerProvider, $compileProvider, $filterProvider, $provide, scriptDependencyProvider, $stateProvider, $urlRouterProvider) {
            'use strict';


            // this is required to add controller/directive/filter/service after angular bootstrap
            bindModule(noPermissionPageModule, $controllerProvider, $compileProvider, $filterProvider, $provide);


            $stateProvider.state({
                name: 'noPermissionPage',
                url: '/noPermissionPage',
                views: {
                    '@': {
                        controller: ['$scope', '$stateParams', 'appTranslation',
                       function ($scope, $stateParams, appTranslation) {
                           appTranslation.load([appTranslation.noPermissionPage]);
                       }],
                        template: '<no-permission-page></no-permission-page>'
                    }
                },
                resolve: scriptDependencyProvider.createDependenciesMap(scriptDependencyProvider.noPermissionPage),
                deepStateRedirect: true,
                sticky: true
            });
        }]);

var infrastructureModule = angular.module('app.infrastructure', ["isteven-multi-select", 'ui.grid', 'ui.grid.selection', 'ui.grid.selection', 'ui.grid.treeView', 'dx', 'perfect_scrollbar', 'ngMaterial', 'app.common'])
    .run(['$log', function ($log) {
        $log.debug('app.infrastructure.run()...');

    }])
    .config(['$controllerProvider', '$compileProvider', '$filterProvider', '$provide', 'scriptDependencyProvider', '$stateProvider', '$stickyStateProvider',
        function ($controllerProvider, $compileProvider, $filterProvider, $provide, scriptDependencyProvider, $stateProvider, $stickyStateProvider) {
            'use strict';
            // this is required to add controller/directive/filter/service after angular bootstrap
            bindModule(infrastructureModule, $controllerProvider, $compileProvider, $filterProvider, $provide);

            $stateProvider.state({
                name: 'organization',
                url: '/organization',
                views: {
                    '@': {
                        controller: ['$scope', '$stateParams', 'appTranslation',
                            function ($scope, $stateParams, appTranslation) {
                                appTranslation.load([appTranslation.infrastructure]);
                            }],
                        template: '<organization-manage></organization-manage>'
                    }
                },
                resolve: scriptDependencyProvider.createDependenciesMap(scriptDependencyProvider.infrastructure),
                deepStateRedirect: true,
                sticky: true
            });

            $stateProvider.state({
                name: 'organizationFullChart',
                url: '/organizationFullChart',
                views: {
                    '@': {
                        controller: ['$scope', '$stateParams', 'appTranslation',
                            function ($scope, $stateParams, appTranslation) {
                                appTranslation.load([appTranslation.infrastructure]);
                            }],
                        template: '<organization-full-chart></organization-full-chart>'
                    }
                },
                resolve: scriptDependencyProvider.createDependenciesMap(scriptDependencyProvider.infrastructure),
                deepStateRedirect: true,
                sticky: true
            });

            $stickyStateProvider.enableDebug(true);
        }]);