Passed
Push — master ( 183c79...49504c )
by
unknown
12:19 queued 13s
created

myems-admin/app/controllers/settings/energystoragecontainer/energystoragecontainerdcdc.controller.js   D

Complexity

Total Complexity 59
Complexity/F 1.34

Size

Lines of Code 550
Function Count 44

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 59
eloc 385
dl 0
loc 550
rs 4.08
c 0
b 0
f 0
mnd 15
bc 15
fnc 44
bpm 0.3409
cpm 1.3409
noi 2

How to fix   Complexity   

Complexity

Complex classes like myems-admin/app/controllers/settings/energystoragecontainer/energystoragecontainerdcdc.controller.js often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

1
"use strict";
2
3
app.controller(
4
  "EnergyStorageContainerDCDCController",
5
  function (
6
    $scope,
7
    $rootScope,
8
    $window,
9
    $translate,
10
    $uibModal,
11
    EnergyStorageContainerService,
12
    EnergyStorageContainerDCDCService,
13
    EnergyStorageContainerDataSourceService,
14
	PointService,
15
    toaster,
16
    SweetAlert
17
  ) {
18
    $scope.energystoragecontainers = [];
19
    $scope.energystoragecontainerdcdcs = [];
20
    $scope.points = [];
21
    $scope.currentEnergyStorageContainer = null;
22
    $scope.cur_user = JSON.parse(
23
      $window.localStorage.getItem("myems_admin_ui_current_user")
24
    );
25
    $scope.getAllEnergyStorageContainers = function () {
26
      let headers = {
27
        "User-UUID": $scope.cur_user.uuid,
28
        Token: $scope.cur_user.token,
29
      };
30
      EnergyStorageContainerService.getAllEnergyStorageContainers(
31
        headers,
32
        function (response) {
33
          if (angular.isDefined(response.status) && response.status === 200) {
34
            $scope.energystoragecontainers = response.data;
35
          } else {
36
            $scope.energystoragecontainers = [];
37
          }
38
        }
39
      );
40
    };
41
42
    $scope.getDataSourcesByEnergyStorageContainerID = function (id) {
43
		let headers = {
44
		  "User-UUID": $scope.cur_user.uuid,
45
		  Token: $scope.cur_user.token,
46
		};
47
		EnergyStorageContainerDataSourceService.getDataSourcesByEnergyStorageContainerID(
48
		  id,
49
		  headers,
50
		  function (response) {
51
			if (angular.isDefined(response.status) && response.status === 200) {
52
			  $scope.datasources = response.data;
53
			} else {
54
			  $scope.datasources = [];
55
			}
56
		  }
57
		);
58
	  };
59
60
    $scope.getDataSourcePointsByEnergyStorageContainerID = function (id) {
61
      let headers = {
62
        "User-UUID": $scope.cur_user.uuid,
63
        Token: $scope.cur_user.token,
64
      };
65
      EnergyStorageContainerDataSourceService.getDataSourcePointsByEnergyStorageContainerID(
66
        id,
67
        headers,
68
        function (response) {
69
          if (angular.isDefined(response.status) && response.status === 200) {
70
            $scope.points = response.data;
71
          } else {
72
            $scope.points = [];
73
          }
74
        }
75
      );
76
    };
77
78
    $scope.getEnergyStorageContainerDCDCsByEnergyStorageContainerID = function (
79
      id
80
    ) {
81
      let headers = {
82
        "User-UUID": $scope.cur_user.uuid,
83
        Token: $scope.cur_user.token,
84
      };
85
      EnergyStorageContainerDCDCService.getEnergyStorageContainerDCDCsByEnergyStorageContainerID(
86
        id,
87
        headers,
88
        function (response) {
89
          if (angular.isDefined(response.status) && response.status === 200) {
90
            $scope.energystoragecontainerdcdcs = response.data;
91
          } else {
92
            $scope.energystoragecontainerdcdcs = [];
93
          }
94
        }
95
      );
96
    };
97
98
    $scope.changeEnergyStorageContainer = function (item, model) {
99
      $scope.currentEnergyStorageContainer = item;
100
      $scope.currentEnergyStorageContainer.selected = model;
101
      $scope.is_show_add_energystoragecontainer_dcdc = true;
102
      $scope.getEnergyStorageContainerDCDCsByEnergyStorageContainerID(
103
        $scope.currentEnergyStorageContainer.id
104
      );
105
	  $scope.getDataSourcesByEnergyStorageContainerID(
106
        $scope.currentEnergyStorageContainer.id
107
      );
108
	  $scope.getDataSourcePointsByEnergyStorageContainerID(
109
        $scope.currentEnergyStorageContainer.id
110
      );
111
    };
112
113
    $scope.addEnergyStorageContainerDCDC = function () {
114
      var modalInstance = $uibModal.open({
115
        templateUrl:
116
          "views/settings/energystoragecontainer/energystoragecontainerdcdc.model.html",
117
        controller: "ModalAddEnergyStorageContainerDCDCCtrl",
118
        windowClass: "animated fadeIn",
119
        resolve: {
120
          params: function () {
121
            return {
122
              points: angular.copy($scope.points),
123
            };
124
          },
125
        },
126
      });
127
      modalInstance.result.then(
128
        function (energystoragecontainerdcdc) {
129
          let headers = {
130
            "User-UUID": $scope.cur_user.uuid,
131
            Token: $scope.cur_user.token,
132
          };
133
          EnergyStorageContainerDCDCService.addEnergyStorageContainerDCDC(
134
            $scope.currentEnergyStorageContainer.id,
135
            energystoragecontainerdcdc,
136
            headers,
137
            function (response) {
138
              if (
139
                angular.isDefined(response.status) &&
140
                response.status === 201
141
              ) {
142
                toaster.pop({
143
                  type: "success",
144
                  title: $translate.instant("TOASTER.SUCCESS_TITLE"),
145
                  body: $translate.instant("TOASTER.SUCCESS_ADD_BODY", {
146
                    template: $translate.instant(
147
                      "ENERGY_STORAGE_CONTAINER.ENERGY_STORAGE_CONTAINER_DCDC"
148
                    ),
149
                  }),
150
                  showCloseButton: true,
151
                });
152
                $scope.getEnergyStorageContainerDCDCsByEnergyStorageContainerID(
153
                  $scope.currentEnergyStorageContainer.id
154
                );
155
				$scope.getDataSourcesByEnergyStorageContainerID(
156
				  $scope.currentEnergyStorageContainer.id
157
				);
158
				$scope.getDataSourcePointsByEnergyStorageContainerID(
159
				  $scope.currentEnergyStorageContainer.id
160
				);
161
                $scope.$emit("handleEmitEnergyStorageContainerDCDCChanged");
162
              } else {
163
                toaster.pop({
164
                  type: "error",
165
                  title: $translate.instant("TOASTER.ERROR_ADD_BODY", {
166
                    template: $translate.instant(
167
                      "ENERGY_STORAGE_CONTAINER.ENERGY_STORAGE_CONTAINER_DCDC"
168
                    ),
169
                  }),
170
                  body: $translate.instant(response.data.description),
171
                  showCloseButton: true,
172
                });
173
              }
174
            }
175
          );
176
        },
177
        function () {}
178
      );
179
      $rootScope.modalInstance = modalInstance;
180
    };
181
182
    $scope.editEnergyStorageContainerDCDC = function (
183
      energystoragecontainerdcdc
184
    ) {
185
      var modalInstance = $uibModal.open({
186
        templateUrl:
187
          "views/settings/energystoragecontainer/energystoragecontainerdcdc.model.html",
188
        controller: "ModalEditEnergyStorageContainerDCDCCtrl",
189
        windowClass: "animated fadeIn",
190
        resolve: {
191
          params: function () {
192
            return {
193
              energystoragecontainerdcdc: angular.copy(
194
                energystoragecontainerdcdc
195
              ),
196
              points: angular.copy($scope.points),
197
            };
198
          },
199
        },
200
      });
201
202
      modalInstance.result.then(
203
        function (modifiedEnergyStorageContainerDCDC) {
204
          let headers = {
205
            "User-UUID": $scope.cur_user.uuid,
206
            Token: $scope.cur_user.token,
207
          };
208
          EnergyStorageContainerDCDCService.editEnergyStorageContainerDCDC(
209
            $scope.currentEnergyStorageContainer.id,
210
            modifiedEnergyStorageContainerDCDC,
211
            headers,
212
            function (response) {
213
              if (
214
                angular.isDefined(response.status) &&
215
                response.status === 200
216
              ) {
217
                toaster.pop({
218
                  type: "success",
219
                  title: $translate.instant("TOASTER.SUCCESS_TITLE"),
220
                  body: $translate.instant("TOASTER.SUCCESS_UPDATE_BODY", {
221
                    template: $translate.instant(
222
                      "ENERGY_STORAGE_CONTAINER.ENERGY_STORAGE_CONTAINER_DCDC"
223
                    ),
224
                  }),
225
                  showCloseButton: true,
226
                });
227
                $scope.getEnergyStorageContainerDCDCsByEnergyStorageContainerID(
228
                  $scope.currentEnergyStorageContainer.id
229
                );
230
				$scope.getDataSourcesByEnergyStorageContainerID(
231
				  $scope.currentEnergyStorageContainer.id
232
				);
233
				$scope.getDataSourcePointsByEnergyStorageContainerID(
234
				  $scope.currentEnergyStorageContainer.id
235
				);
236
                $scope.$emit("handleEmitEnergyStorageContainerDCDCChanged");
237
              } else {
238
                toaster.pop({
239
                  type: "error",
240
                  title: $translate.instant("TOASTER.ERROR_UPDATE_BODY", {
241
                    template: $translate.instant(
242
                      "ENERGY_STORAGE_CONTAINER.ENERGY_STORAGE_CONTAINER_DCDC"
243
                    ),
244
                  }),
245
                  body: $translate.instant(response.data.description),
246
                  showCloseButton: true,
247
                });
248
              }
249
            }
250
          );
251
        },
252
        function () {
253
          //do nothing;
254
        }
255
      );
256
      $rootScope.modalInstance = modalInstance;
257
    };
258
    $scope.bindEnergyStorageContainerDCDCPoint = function (
259
      energystoragecontainerdcdc
260
    ) {
261
      var modalInstance = $uibModal.open({
262
        templateUrl:
263
          "views/settings/energystoragecontainer/energystoragecontainerdcdcpoint.model.html",
264
        controller: "ModalBindEnergyStorageContainerDCDCCtrl",
265
        windowClass: "animated fadeIn",
266
        resolve: {
267
          params: function () {
268
            return {
269
              user_uuid: $scope.cur_user.uuid,
270
              token: $scope.cur_user.token,
271
              energystoragecontainerid: $scope.currentEnergyStorageContainer.id,
272
              energystoragecontainerdcdc: angular.copy(
273
                energystoragecontainerdcdc
274
              ),
275
              meters: angular.copy($scope.meters),
276
              datasources: angular.copy($scope.datasources),
277
              points: angular.copy($scope.points),
278
            };
279
          },
280
        },
281
      });
282
      $rootScope.modalInstance = modalInstance;
283
    };
284
285
    $scope.deleteEnergyStorageContainerDCDC = function (
286
      energystoragecontainerdcdc
287
    ) {
288
      SweetAlert.swal(
289
        {
290
          title: $translate.instant("SWEET.TITLE"),
291
          text: $translate.instant("SWEET.TEXT"),
292
          type: "warning",
293
          showCancelButton: true,
294
          confirmButtonColor: "#DD6B55",
295
          confirmButtonText: $translate.instant("SWEET.CONFIRM_BUTTON_TEXT"),
296
          cancelButtonText: $translate.instant("SWEET.CANCEL_BUTTON_TEXT"),
297
          closeOnConfirm: true,
298
          closeOnCancel: true,
299
        },
300
        function (isConfirm) {
301
          if (isConfirm) {
302
            let headers = {
303
              "User-UUID": $scope.cur_user.uuid,
304
              Token: $scope.cur_user.token,
305
            };
306
            EnergyStorageContainerDCDCService.deleteEnergyStorageContainerDCDC(
307
              $scope.currentEnergyStorageContainer.id,
308
              energystoragecontainerdcdc.id,
309
              headers,
310
              function (response) {
311
                if (
312
                  angular.isDefined(response.status) &&
313
                  response.status === 204
314
                ) {
315
                  toaster.pop({
316
                    type: "success",
317
                    title: $translate.instant("TOASTER.SUCCESS_TITLE"),
318
                    body: $translate.instant("TOASTER.SUCCESS_DELETE_BODY", {
319
                      template: $translate.instant(
320
                        "ENERGY_STORAGE_CONTAINER.ENERGY_STORAGE_CONTAINER_DCDC"
321
                      ),
322
                    }),
323
                    showCloseButton: true,
324
                  });
325
                  $scope.getEnergyStorageContainerDCDCsByEnergyStorageContainerID(
326
                    $scope.currentEnergyStorageContainer.id
327
                  );
328
				  $scope.getDataSourcesByEnergyStorageContainerID(
329
					$scope.currentEnergyStorageContainer.id
330
				  );
331
				  $scope.getDataSourcePointsByEnergyStorageContainerID(
332
					$scope.currentEnergyStorageContainer.id
333
				  );
334
                  $scope.$emit("handleEmitEnergyStorageContainerDCDCChanged");
335
                } else {
336
                  toaster.pop({
337
                    type: "error",
338
                    title: $translate.instant("TOASTER.ERROR_DELETE_BODY", {
339
                      template: $translate.instant(
340
                        "ENERGY_STORAGE_CONTAINER.ENERGY_STORAGE_CONTAINER_DCDC"
341
                      ),
342
                    }),
343
                    body: $translate.instant(response.data.description),
344
                    showCloseButton: true,
345
                  });
346
                }
347
              }
348
            );
349
          }
350
        }
351
      );
352
    };
353
354
    $scope.getAllEnergyStorageContainers();
355
    $scope.$on(
356
      "handleBroadcastEnergyStorageContainerChanged",
357
      function (event) {
358
        $scope.getAllEnergyStorageContainers();
359
      }
360
    );
361
  }
362
);
363
364
app.controller(
365
  "ModalAddEnergyStorageContainerDCDCCtrl",
366
  function ($scope, $uibModalInstance, params) {
367
    $scope.operation =
368
      "ENERGY_STORAGE_CONTAINER.ADD_ENERGY_STORAGE_CONTAINER_DCDC";
369
    $scope.points = params.points;
370
    $scope.ok = function () {
371
      $uibModalInstance.close($scope.energystoragecontainerdcdc);
372
    };
373
374
    $scope.cancel = function () {
375
      $uibModalInstance.dismiss("cancel");
376
    };
377
  }
378
);
379
380
app.controller(
381
  "ModalEditEnergyStorageContainerDCDCCtrl",
382
  function ($scope, $uibModalInstance, params) {
383
    $scope.operation =
384
      "ENERGY_STORAGE_CONTAINER.EDIT_ENERGY_STORAGE_CONTAINER_DCDC";
385
    $scope.energystoragecontainerdcdc = params.energystoragecontainerdcdc;
386
    $scope.points = params.points;
387
    $scope.ok = function () {
388
      $uibModalInstance.close($scope.energystoragecontainerdcdc);
389
    };
390
391
    $scope.cancel = function () {
392
      $uibModalInstance.dismiss("cancel");
393
    };
394
  }
395
);
396
397
app.controller(
398
  "ModalBindEnergyStorageContainerDCDCCtrl",
399
  function (
400
    $scope,
401
    $uibModalInstance,
402
    toaster,
403
    $translate,
404
    EnergyStorageContainerDCDCService,
405
    PointService,
406
    params
407
  ) {
408
    $scope.operation =
409
      "ENERGY_STORAGE_CONTAINER.EDIT_ENERGY_STORAGE_CONTAINER_DCDC";
410
    $scope.energystoragecontainerid = params.energystoragecontainerid;
411
    $scope.energystoragecontainerdcdc = params.energystoragecontainerdcdc;
412
    $scope.datasources = params.datasources;
413
    $scope.boundpoints = params.boundpoints;
414
415
    let headers = { "User-UUID": params.user_uuid, Token: params.token };
416
    EnergyStorageContainerDCDCService.getPointsByDCDCID(
417
      $scope.energystoragecontainerid,
418
      $scope.energystoragecontainerdcdc.id,
419
      headers,
420
      function (response) {
421
        if (angular.isDefined(response.status) && response.status === 200) {
422
          $scope.boundpoints = response.data;
423
        } else {
424
          $scope.boundpoints = [];
425
        }
426
      }
427
    );
428
429
    $scope.cancel = function () {
430
      $uibModalInstance.dismiss("cancel");
431
    };
432
433
    $scope.changeDataSource = function (item, model) {
434
      console.log("changeDataSource");
0 ignored issues
show
Debugging Code introduced by
console.log looks like debug code. Are you sure you do not want to remove it?
Loading history...
435
      $scope.currentDataSource = model;
436
      console.log($scope.currentDataSource);
437
      $scope.getPointsByDataSourceID($scope.currentDataSource);
438
    };
439
440
    $scope.getPointsByDataSourceID = function (id) {
441
      console.log("getPointsByDataSourceID");
0 ignored issues
show
Debugging Code introduced by
console.log looks like debug code. Are you sure you do not want to remove it?
Loading history...
442
      let headers = { "User-UUID": params.user_uuid, Token: params.token };
443
      PointService.getPointsByDataSourceID(id, headers, function (response) {
444
        if (angular.isDefined(response.status) && response.status === 200) {
445
          $scope.points = response.data;
446
        } else {
447
          $scope.points = [];
448
        }
449
      });
450
    };
451
452
    $scope.pairPoint = function (dragEl, dropEl) {
453
      var pointid = angular.element("#" + dragEl).scope().point.id;
454
      let headers = { "User-UUID": params.user_uuid, Token: params.token };
455
      EnergyStorageContainerDCDCService.addPair(
456
        params.energystoragecontainerid,
457
        params.energystoragecontainerdcdc.id,
458
        pointid,
459
        headers,
460
        function (response) {
461
          if (angular.isDefined(response.status) && response.status === 201) {
462
            toaster.pop({
463
              type: "success",
464
              title: $translate.instant("TOASTER.SUCCESS_TITLE"),
465
              body: $translate.instant("TOASTER.BIND_POINT_SUCCESS"),
466
              showCloseButton: true,
467
            });
468
            let headers = {
469
              "User-UUID": params.user_uuid,
470
              Token: params.token,
471
            };
472
            EnergyStorageContainerDCDCService.getPointsByDCDCID(
473
              params.energystoragecontainerid,
474
              params.energystoragecontainerdcdc.id,
475
              headers,
476
              function (response) {
477
                if (
478
                  angular.isDefined(response.status) &&
479
                  response.status === 200
480
                ) {
481
                  $scope.boundpoints = response.data;
482
                } else {
483
                  $scope.boundpoints = [];
484
                }
485
              }
486
            );
487
          } else {
488
            toaster.pop({
489
              type: "error",
490
              title: $translate.instant(response.data.title),
491
              body: $translate.instant(response.data.description),
492
              showCloseButton: true,
493
            });
494
          }
495
        }
496
      );
497
    };
498
499
    $scope.deletePointPair = function (dragEl, dropEl) {
500
      if (angular.element("#" + dragEl).hasClass("source")) {
501
        return;
502
      }
503
504
      var pointid = angular.element("#" + dragEl).scope().boundpoint.id;
505
      let headers = { "User-UUID": params.user_uuid, Token: params.token };
506
      EnergyStorageContainerDCDCService.deletePair(
507
        params.energystoragecontainerid,
508
        params.energystoragecontainerdcdc.id,
509
        pointid,
510
        headers,
511
        function (response) {
512
          if (angular.isDefined(response.status) && response.status === 204) {
513
            toaster.pop({
514
              type: "success",
515
              title: $translate.instant("TOASTER.SUCCESS_TITLE"),
516
              body: $translate.instant("TOASTER.UNBIND_POINT_SUCCESS"),
517
              showCloseButton: true,
518
            });
519
            let headers = {
520
              "User-UUID": params.user_uuid,
521
              Token: params.token,
522
            };
523
            EnergyStorageContainerDCDCService.getPointsByDCDCID(
524
              params.energystoragecontainerid,
525
              params.energystoragecontainerdcdc.id,
526
              headers,
527
              function (response) {
528
                if (
529
                  angular.isDefined(response.status) &&
530
                  response.status === 200
531
                ) {
532
                  $scope.boundpoints = response.data;
533
                } else {
534
                  $scope.boundpoints = [];
535
                }
536
              }
537
            );
538
          } else {
539
            toaster.pop({
540
              type: "error",
541
              title: $translate.instant(response.data.title),
542
              body: $translate.instant(response.data.description),
543
              showCloseButton: true,
544
            });
545
          }
546
        }
547
      );
548
    };
549
  }
550
);
551