Passed
Push — master ( 8b521b...1e81c0 )
by
unknown
10:11
created

myems-admin/app/controllers/settings/combinedequipment/combinedequipmentdatasource.controller.js   A

Complexity

Total Complexity 32
Complexity/F 2.29

Size

Lines of Code 217
Function Count 14

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 32
eloc 145
dl 0
loc 217
rs 9.84
c 0
b 0
f 0
mnd 18
bc 18
fnc 14
bpm 1.2857
cpm 2.2857
noi 1
1
"use strict";
2
3
app.controller(
4
  "CombinedEquipmentDataSourceController",
5
  function (
6
    $scope,
7
    $window,
8
    $timeout,
9
    $translate,
10
    CombinedEquipmentService,
11
    DataSourceService,
12
    CombinedEquipmentDataSourceService,
13
    toaster
14
  ) {
15
    $scope.cur_user = JSON.parse(
16
      $window.localStorage.getItem("myems_admin_ui_current_user")
17
    );
18
    $scope.currentCombinedEquipment = { selected: undefined };
19
20
    $scope.getAllDataSources = function () {
21
      let headers = {
22
        "User-UUID": $scope.cur_user.uuid,
23
        Token: $scope.cur_user.token,
24
        "API-KEY": $scope.cur_user.api_key
25
      };
26
      DataSourceService.getAllDataSources(headers, function (response) {
27
        if (angular.isDefined(response.status) && response.status === 200) {
28
          $scope.datasources = response.data;
29
        } else {
30
          $scope.datasources = [];
31
        }
32
      });
33
    };
34
35
    $scope.getDataSourcesByCombinedEquipmentID = function (id) {
36
      if (!id) {
37
        $scope.combinedequipmentdatasources = [];
38
        return;
39
      }
40
      let headers = {
41
        "User-UUID": $scope.cur_user.uuid,
42
        Token: $scope.cur_user.token,
43
        "API-KEY": $scope.cur_user.api_key
44
      };
45
      CombinedEquipmentDataSourceService.getDataSourcesByCombinedEquipmentID(
46
        id,
47
        headers,
48
        function (response) {
49
          if (angular.isDefined(response.status) && response.status === 200) {
50
            $scope.combinedequipmentdatasources = response.data;
51
          } else {
52
            $scope.combinedequipmentdatasources = [];
53
          }
54
        }
55
      );
56
    };
57
58
    $scope.changeCombinedEquipment = function (item, model) {
59
      $scope.currentCombinedEquipment = item;
60
      $scope.currentCombinedEquipment.selected = model;
61
      if ($scope.currentCombinedEquipment && $scope.currentCombinedEquipment.id) {
62
        $scope.getDataSourcesByCombinedEquipmentID(
63
          $scope.currentCombinedEquipment.id
64
        );
65
      }
66
    };
67
68
    $scope.getAllCombinedEquipments = function () {
69
      let headers = {
70
        "User-UUID": $scope.cur_user.uuid,
71
        Token: $scope.cur_user.token,
72
        "API-KEY": $scope.cur_user.api_key
73
      };
74
      CombinedEquipmentService.getAllCombinedEquipments(
75
        headers,
76
        function (response) {
77
          if (angular.isDefined(response.status) && response.status === 200) {
78
            $scope.combinedequipments = response.data;
79
            if ($scope.currentCombinedEquipment && $scope.currentCombinedEquipment.id) {
80
              $timeout(function () {
81
                $scope.getDataSourcesByCombinedEquipmentID(
82
                  $scope.currentCombinedEquipment.id
83
                );
84
              }, 1000);
85
            }
86
          } else {
87
            $scope.combinedequipments = [];
88
          }
89
        }
90
      );
91
    };
92
93
    $scope.pairDataSource = function (dragEl, dropEl) {
94
      if (!$scope.currentCombinedEquipment || !$scope.currentCombinedEquipment.id) {
95
        return;
96
      }
97
      var datasourceid = angular.element("#" + dragEl).scope().datasource.id;
98
      var combinedequipmentid = $scope.currentCombinedEquipment.id;
99
      let headers = {
100
        "User-UUID": $scope.cur_user.uuid,
101
        Token: $scope.cur_user.token,
102
        "API-KEY": $scope.cur_user.api_key
103
      };
104
      CombinedEquipmentDataSourceService.addPair(
105
        combinedequipmentid,
106
        datasourceid,
107
        headers,
108
        function (response) {
109
          if (angular.isDefined(response.status) && response.status === 201) {
110
            toaster.pop({
111
              type: "success",
112
              title: $translate.instant("TOASTER.SUCCESS_TITLE"),
113
              body: $translate.instant("TOASTER.BIND_DATASOURCE_SUCCESS"),
114
              showCloseButton: true,
115
            });
116
            $scope.getDataSourcesByCombinedEquipmentID(
117
              $scope.currentCombinedEquipment.id
118
            );
119
          } else {
120
            toaster.pop({
121
              type: "error",
122
              title: $translate.instant(response.data.title),
123
              body: $translate.instant(response.data.description),
124
              showCloseButton: true,
125
            });
126
          }
127
        }
128
      );
129
    };
130
131
    $scope.deleteDataSourcePair = function (dragEl, dropEl) {
132
      if (!dragEl) {
133
        return;
134
      }
135
      
136
      var dragElement = angular.element("#" + dragEl);
137
      if (!dragElement || !dragElement.length) {
138
        return;
139
      }
140
      
141
      if (dragElement.hasClass("source")) {
142
        return;
143
      }
144
      
145
      if (!$scope.currentCombinedEquipment || !$scope.currentCombinedEquipment.id) {
146
        return;
147
      }
148
      
149
      try {
150
        var dragScope = dragElement.scope();
151
        if (!dragScope) {
152
          return;
153
        }
154
        
155
        if (!dragScope.combinedequipmentdatasource) {
156
          return;
157
        }
158
        
159
        if (!dragScope.combinedequipmentdatasource.id) {
160
          return;
161
        }
162
        
163
        var datasourceid = dragScope.combinedequipmentdatasource.id;
164
        var combinedequipmentid = $scope.currentCombinedEquipment.id;
165
        
166
        if (!combinedequipmentid || !datasourceid) {
167
          return;
168
        }
169
        
170
        let headers = {
171
          "User-UUID": $scope.cur_user.uuid,
172
          Token: $scope.cur_user.token,
173
          "API-KEY": $scope.cur_user.api_key
174
        };
175
        
176
        CombinedEquipmentDataSourceService.deletePair(
177
          combinedequipmentid,
178
          datasourceid,
179
          headers,
180
          function (response) {
181
            if (angular.isDefined(response.status) && response.status === 204) {
182
              toaster.pop({
183
                type: "success",
184
                title: $translate.instant("TOASTER.SUCCESS_TITLE"),
185
                body: $translate.instant("TOASTER.UNBIND_DATASOURCE_SUCCESS"),
186
                showCloseButton: true,
187
              });
188
              $scope.getDataSourcesByCombinedEquipmentID(
189
                $scope.currentCombinedEquipment.id
190
              );
191
            } else {
192
              toaster.pop({
193
                type: "error",
194
                title: $translate.instant(response.data.title),
195
                body: $translate.instant(response.data.description),
196
                showCloseButton: true,
197
              });
198
            }
199
          }
200
        );
201
      } catch (e) {
202
        console.error("Error in deleteDataSourcePair:", e);
203
        return;
0 ignored issues
show
Unused Code introduced by
This return has no effect and can be removed.
Loading history...
204
      }
205
    };
206
207
    $scope.getAllDataSources();
208
    $scope.getAllCombinedEquipments();
209
210
    $scope.$on(
211
      "handleBroadcastCombinedEquipmentChanged",
212
      function (event) {
213
        $scope.getAllCombinedEquipments();
214
      }
215
    );
216
  }
217
);
218