Projekt

Obecné

Profil

Stáhnout (4.05 KB) Statistiky
| Větev: | Revize:
1
angular.module('pvpk')
2
  .controller('mainController', ['$rootScope', '$scope', '$location', '$window', 'config', function ($rootScope, $scope, $location, $window, config) {
3
    this.$onInit = function () {
4
      $scope.config = config
5
      $scope.showLoadingScreen = true
6
      $rootScope.loadingCount = 0
7
      $scope.isOnLine = true
8

    
9
      $rootScope.$watch('loadingCount', function (newValue, oldValue) {
10
        if (newValue !== oldValue && $rootScope.loadingCount === 0) {
11
          $scope.showLoadingScreen = false
12
        }
13
      })
14
    }
15

    
16
    $window.onload = function () {
17
      var params = $location.search()
18
      if (params.deviceId) {
19
        $rootScope.$emit('activeMarker', { id: params.deviceId })
20
      }
21

    
22
      if ('serviceWorker' in navigator) {
23
        navigator.serviceWorker.register('./sw.js')
24
      }
25
    }
26

    
27
    $rootScope.$on('$locationChangeSuccess', function (event, newUrl, oldUrl) {
28
      var params = $location.search()
29

    
30
      if (newUrl !== oldUrl && $scope.historyUrl) {
31
        if ($scope.historyUrl.q !== $scope.historyUrl.q || $scope.historyUrl.isDirection != params.isDirection) {
32
          $rootScope.$emit('setSearchFromUrl', null)
33
        }
34

    
35
        if ($scope.historyUrl.fromDate !== params.fromDate || $scope.historyUrl.toDate !== params.toDate ||
36
                    $scope.historyUrl.fromTime !== params.fromTime || $scope.historyUrl.toTime !== params.toTime) {
37
          $rootScope.$emit('setRangeFromUrl', null)
38
          if (params.deviceId) {
39
            $rootScope.$emit('infoLocation', { id: params.deviceId, direction: params.direction })
40
          }
41
        } else if (params.deviceId && ($scope.historyUrl.deviceId !== params.deviceId || $scope.historyUrl.direction !== params.direction)) {
42
          $rootScope.$emit('infoLocation', { id: params.deviceId, direction: params.direction })
43
          $rootScope.$emit('activeMarker', { id: params.deviceId })
44
        } else if (!params.deviceId && $scope.historyUrl.deviceId) {
45
          $rootScope.selectDevice = null
46
          $rootScope.$emit('setDefaultMap', null)
47
        }
48
      } else if (params.deviceId) {
49
        $rootScope.$emit('infoLocation', { id: params.deviceId, direction: params.direction })
50
      }
51

    
52
      $scope.historyUrl = $location.search()
53
    })
54

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

    
103
    $scope.reloadApp = function () {
104
      $window.location.reload()
105
    }
106
  }])
(2-2/4)