API Docs for:
Show:

File: js\app.js

(function () {
    'use strict';

    /**
     * ПРИЛОЖЕНИЕ РАЗРАБАТЫВАЛ ИСПОЛЬЗУЯ (Windows/Chrome/Node v8.9.1):<br>
     * 1. gulp;<br>
     * 2. webpack;<br>
     * 3. browser-sync;<br>
     * 4. angularjs;<br>
     * 5. yuidoc;
     
     * ТОЧКА ВХОДА - ФАЙЛ frontend/js/app.js (самовызывающаяся функция).

        angular
            .module('app',  ['ui.grid', 'ui.grid.selection', 'ngRoute', 'ngCookies', 'ui.sortable'])
            .config(config)
            .run(run);

     * @class APP
     * @module app
     * @main app
     */

    angular
        .module('app',  ['ui.grid', 'ui.grid.selection', 'ngRoute', 'ngCookies', 'ui.sortable'])
        .config(config)
        .run(run);

    /**
     * Роутер
     * @method config
     * @param $routeProvider
     * @param $locationProvider
     */

    config.$inject = ['$routeProvider', '$locationProvider'];
    function config($routeProvider, $locationProvider) {
        $routeProvider
            .when('/', {
                controller: 'HomeController',
                templateUrl: 'home/home.view.html',
                controllerAs: 'vm'
            })

            .when('/login', {
                controller: 'LoginController',
                templateUrl: 'login/login.view.html',
                controllerAs: 'vm'
            })

            .when('/register', {
                controller: 'RegisterController',
                templateUrl: 'register/register.view.html',
                controllerAs: 'vm'
            })

            .otherwise({ redirectTo: '/login' });
    };

    /**
     * Сохранить пользователя после обновления страницы <br> Перенаправлять на страницу входа в систему, если не был вход в систему
     * @method run
     * @param $rootScope
     * @param $location
     * @param $cookies
     * @param $http
     */

    run.$inject = ['$rootScope', '$location', '$cookies', '$http'];
    function run($rootScope, $location, $cookies, $http) {
        // keep user logged in after page refresh
        $rootScope.globals = $cookies.getObject('globals') || {};
        if ($rootScope.globals.currentUser) {
            $http.defaults.headers.common['Authorization'] = 'Basic ' + $rootScope.globals.currentUser.authdata;
        }

        $rootScope.$on('$locationChangeStart', function (event, next, current) {
            // redirect to login page if not logged in and trying to access a restricted page
            var restrictedPage = $.inArray($location.path(), ['/login', '/register']) === -1;
            var loggedIn = $rootScope.globals.currentUser;
            if (restrictedPage && !loggedIn) {
                $location.path('/login');
            }
        });

        //ВЫКЛЮЧАЕМ ОЖИДАНИЕ
        $("#loader").fadeToggle();
    }

})();