Projekt

Obecné

Profil

Stáhnout (4.48 KB) Statistiky
| Větev: | Revize:
1
angular.module('pvpk')
2
    .controller('mainController', ['$rootScope', '$scope', '$location', '$window', function ($rootScope, $scope, $location, $window) {
3

    
4
        this.$onInit = function () {
5
            $scope.showLoadingScreen = true;
6
        };
7

    
8
        $window.onload = function () {
9
            var params = $location.search();
10
            if (params.deviceId) {
11
                $rootScope.$emit('activeMarker', {id: params.deviceId});
12
            }
13

    
14
            $scope.$apply(function () {
15
                $scope.showLoadingScreen = false;
16
            });
17
        };
18

    
19
        $rootScope.$on('$locationChangeSuccess', function (event, newUrl, oldUrl) {
20
            var params = $location.search();
21

    
22
            if (newUrl !== oldUrl && $scope.historyUrl) {
23
                if ($scope.historyUrl.q !== $scope.historyUrl.q || $scope.historyUrl.isDirection != params.isDirection) {
24
                    $rootScope.$emit('setSearchFromUrl', null);
25
                }
26

    
27
                if ($scope.historyUrl.fromDate !== params.fromDate || $scope.historyUrl.toDate !== params.toDate ||
28
                    $scope.historyUrl.fromTime !== params.fromTime || $scope.historyUrl.toTime !== params.toTime) {
29
                    $rootScope.$emit('setRangeFromUrl', null);
30
                    if (params.deviceId) {
31
                        $rootScope.$emit('infoLocation', {id: params.deviceId, direction: params.direction});
32
                    }
33
                } else if (params.deviceId && ($scope.historyUrl.deviceId !== params.deviceId || $scope.historyUrl.direction !== params.direction)) {
34
                    $rootScope.$emit('infoLocation', {id: params.deviceId, direction: params.direction});
35
                    $rootScope.$emit('activeMarker', {id: params.deviceId});
36
                } else if (!params.deviceId && $scope.historyUrl.deviceId) {
37
                    $rootScope.selectDevice = null;
38
                    $rootScope.$emit('setDefaultMap', null);
39
                }
40
            } else if (params.deviceId) {
41
                $rootScope.$emit('infoLocation', {id: params.deviceId, direction: params.direction});
42
            }
43

    
44
            $scope.historyUrl = $location.search();
45
        });
46

    
47
        $rootScope.handleErrorResponse = function (response) {
48

    
49
            var modalError = jQuery('#modalError');
50
            switch (response.status) {
51
                case 400:
52
                    console.log('API ERROR 400');
53
                    $scope.modalError = {
54
                        title: 'Neplatný požadavek',
55
                        body: 'Požadavek nemůže být vyřízen, poněvadž byl syntakticky nesprávně zapsán.',
56
                        button: 'OK'
57
                    };
58
                    modalError.modal('show');
59
                    break;
60
                case 401:
61
                    $scope.modalError = {
62
                        title: 'Platnost webové aplikace vypršela',
63
                        body: 'Pro obnovení platnosti stačí stisknout tlačítko <strong>Obnovit</strong>.',
64
                        button: 'Obnovit',
65
                        clickButton: $scope.reloadApp
66
                    };
67
                    modalError.modal({backdrop: 'static', keyboard: false});
68
                    break;
69
                case 404:
70
                    console.log('API ERROR 404');
71
                    $scope.modalError = {title: 'Nenalezen', body: 'Záznam nebyl nalezen.', button: 'OK'};
72
                    modalError.modal('show');
73
                    break;
74
                case 500:
75
                    console.log('API ERROR 500');
76
                    $scope.modalError = {title: 'Chyba', body: 'Chyba serveru. Zopakujte akci později.', button: 'OK'};
77
                    modalError.modal('show');
78
                    break;
79
                case -1:
80
                    console.log('API NOT CONNECTED');
81
                    $scope.modalError = {
82
                        title: 'Připojení k internetu',
83
                        body: 'Nejste připojeni k internetu. Zkontrolujte připojení.',
84
                        button: 'OK'
85
                    };
86
                    modalError.modal('show');
87
                    break;
88
                default:
89
                    console.log('API UNKNOWN ERROR');
90
                    $scope.modalError = {title: 'Neočekávaná chyba', body: 'Nastala neočekávaná chyba.', button: 'OK'};
91
                    modalError.modal('show');
92
                    break;
93
            }
94
        };
95

    
96
        $scope.reloadApp = function () {
97
            $window.location.reload();
98
        }
99
    }]);
(2-2/4)