Passed
Push — master ( b2499a...646676 )
by
unknown
10:58 queued 01:05
created

myems-admin/app/controllers/settings/energystoragecontainer/energystoragecontainerhvac.controller.js   F

Complexity

Total Complexity 63
Complexity/F 1.37

Size

Lines of Code 374
Function Count 46

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 63
eloc 263
mnd 17
bc 17
fnc 46
dl 0
loc 374
rs 3.36
bpm 0.3695
cpm 1.3695
noi 2
c 0
b 0
f 0

How to fix   Complexity   

Complexity

Complex classes like myems-admin/app/controllers/settings/energystoragecontainer/energystoragecontainerhvac.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('EnergyStorageContainerHVACController', function(
4
	$scope,
5
	$rootScope,
6
	$window,
7
	$translate,
8
	$uibModal,
9
	EnergyStorageContainerService,
10
	EnergyStorageContainerHVACService,
11
	DataSourceService,
12
	PointService,
13
	toaster,
14
	SweetAlert) {
15
      $scope.energystoragecontainers = [];
16
      $scope.energystoragecontainerhvacs = [];
17
	  $scope.points = [];
18
      $scope.currentEnergyStorageContainer = null;
19
	  $scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user"));
20
      $scope.getAllEnergyStorageContainers = function() {
21
		let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
22
  		EnergyStorageContainerService.getAllEnergyStorageContainers(headers, function (response) {
23
  			if (angular.isDefined(response.status) && response.status === 200) {
24
  				$scope.energystoragecontainers = response.data;
25
  			} else {
26
  				$scope.energystoragecontainers = [];
27
  			}
28
  		});
29
  	};
30
31
	$scope.getAllDataSources = function() {
32
		let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
33
		DataSourceService.getAllDataSources(headers, function (response) {
34
			if (angular.isDefined(response.status) && response.status === 200) {
35
				$scope.datasources = response.data;
36
				if ($scope.datasources.length > 0) {
37
					$scope.currentDataSource = $scope.datasources[0].id;
38
					$scope.getPointsByDataSourceID($scope.currentDataSource);
39
				}
40
			} else {
41
				$scope.datasources = [];
42
			}
43
		});
44
	};
45
46
	$scope.getAllPoints = function() {
47
		let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
48
		PointService.getAllPoints(headers, function (response) {
49
			if (angular.isDefined(response.status) && response.status === 200) {
50
				$scope.points = response.data;
51
			} else {
52
				$scope.points = [];
53
			}
54
		});
55
	};
56
57
	$scope.getPointsByDataSourceID = function(id) {
58
		let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
59
		PointService.getPointsByDataSourceID(id, headers, function (response) {
60
			if (angular.isDefined(response.status) && response.status === 200) {
61
				$scope.points = response.data;
62
			} else {
63
				$scope.points = [];
64
			}
65
		});
66
	};
67
68
  	$scope.getEnergyStorageContainerHVACsByEnergyStorageContainerID = function(id) {
69
		let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
70
  		EnergyStorageContainerHVACService.getEnergyStorageContainerHVACsByEnergyStorageContainerID(id, headers, function (response) {
71
			if (angular.isDefined(response.status) && response.status === 200) {
72
				$scope.energystoragecontainerhvacs = response.data;
73
			} else {
74
          	    $scope.energystoragecontainerhvacs=[];
75
            }
76
		});
77
  	};
78
79
  	$scope.changeEnergyStorageContainer=function(item,model){
80
    	$scope.currentEnergyStorageContainer=item;
81
    	$scope.currentEnergyStorageContainer.selected=model;
82
        $scope.is_show_add_energystoragecontainer_hvac = true;
83
    	$scope.getEnergyStorageContainerHVACsByEnergyStorageContainerID($scope.currentEnergyStorageContainer.id);
84
  	};
85
86
  	$scope.addEnergyStorageContainerHVAC = function() {
87
88
  		var modalInstance = $uibModal.open({
89
  			templateUrl: 'views/settings/energystoragecontainer/energystoragecontainerhvac.model.html',
90
  			controller: 'ModalAddEnergyStorageContainerHVACCtrl',
91
  			windowClass: "animated fadeIn",
92
  			resolve: {
93
  				params: function() {
94
  					return {
95
						points: angular.copy($scope.points),
96
  					};
97
  				}
98
  			}
99
  		});
100
  		modalInstance.result.then(function(energystoragecontainerhvac) {
101
			let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
102
  			EnergyStorageContainerHVACService.addEnergyStorageContainerHVAC($scope.currentEnergyStorageContainer.id, energystoragecontainerhvac, headers, function (response) {
103
  				if (angular.isDefined(response.status) && response.status === 201) {
104
  					toaster.pop({
105
  						type: "success",
106
  						title: $translate.instant("TOASTER.SUCCESS_TITLE"),
107
  						body: $translate.instant("TOASTER.SUCCESS_ADD_BODY", {template: $translate.instant("ENERGY_STORAGE_CONTAINER.ENERGY_STORAGE_CONTAINER_HVAC")}),
108
  						showCloseButton: true,
109
  					});
110
  					$scope.getEnergyStorageContainerHVACsByEnergyStorageContainerID($scope.currentEnergyStorageContainer.id);
111
            		$scope.$emit('handleEmitEnergyStorageContainerHVACChanged');
112
  				} else {
113
  					toaster.pop({
114
  						type: "error",
115
  						title: $translate.instant("TOASTER.ERROR_ADD_BODY", {template: $translate.instant("ENERGY_STORAGE_CONTAINER.ENERGY_STORAGE_CONTAINER_HVAC")}),
116
  						body: $translate.instant(response.data.description),
117
  						showCloseButton: true,
118
  					});
119
  				}
120
  			});
121
  		}, function() {
122
123
  		});
124
		$rootScope.modalInstance = modalInstance;
125
  	};
126
127
  	$scope.editEnergyStorageContainerHVAC = function(energystoragecontainerhvac) {
128
  		var modalInstance = $uibModal.open({
129
  			templateUrl: 'views/settings/energystoragecontainer/energystoragecontainerhvac.model.html',
130
  			controller: 'ModalEditEnergyStorageContainerHVACCtrl',
131
    		windowClass: "animated fadeIn",
132
  			resolve: {
133
  				params: function() {
134
  					return {
135
  						energystoragecontainerhvac: angular.copy(energystoragecontainerhvac),
136
						points: angular.copy($scope.points),
137
  					};
138
  				}
139
  			}
140
  		});
141
142
  		modalInstance.result.then(function(modifiedEnergyStorageContainerHVAC) {
143
			let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
144
  			EnergyStorageContainerHVACService.editEnergyStorageContainerHVAC($scope.currentEnergyStorageContainer.id, modifiedEnergyStorageContainerHVAC, headers, function (response) {
145
  				if (angular.isDefined(response.status) && response.status === 200) {
146
  					toaster.pop({
147
  						type: "success",
148
  						title: $translate.instant("TOASTER.SUCCESS_TITLE"),
149
  						body: $translate.instant("TOASTER.SUCCESS_UPDATE_BODY", {template: $translate.instant("ENERGY_STORAGE_CONTAINER.ENERGY_STORAGE_CONTAINER_HVAC")}),
150
  						showCloseButton: true,
151
  					});
152
  					$scope.getEnergyStorageContainerHVACsByEnergyStorageContainerID($scope.currentEnergyStorageContainer.id);
153
            		$scope.$emit('handleEmitEnergyStorageContainerHVACChanged');
154
  				} else {
155
  					toaster.pop({
156
  						type: "error",
157
  						title: $translate.instant("TOASTER.ERROR_UPDATE_BODY", {template: $translate.instant("ENERGY_STORAGE_CONTAINER.ENERGY_STORAGE_CONTAINER_HVAC")}),
158
  						body: $translate.instant(response.data.description),
159
  						showCloseButton: true,
160
  					});
161
  				}
162
  			});
163
  		}, function() {
164
  			//do nothing;
165
  		});
166
		$rootScope.modalInstance = modalInstance;
167
  	};
168
169
	$scope.bindEnergyStorageContainerHVACPoint = function(energystoragecontainerhvac) {
170
	var modalInstance = $uibModal.open({
171
		templateUrl: 'views/settings/energystoragecontainer/energystoragecontainerhvacpoint.model.html',
172
		controller: 'ModalBindEnergyStorageContainerHVACCtrl',
173
		windowClass: "animated fadeIn",
174
			resolve: {
175
				params: function() {
176
					return {
177
						user_uuid: $scope.cur_user.uuid,
178
						token: $scope.cur_user.token,
179
						energystoragecontainerid: $scope.currentEnergyStorageContainer.id,
180
						energystoragecontainerhvac: angular.copy(energystoragecontainerhvac),
181
						meters: angular.copy($scope.meters),
182
						datasources: angular.copy($scope.datasources),
183
						points: angular.copy($scope.points),
184
					};
185
				}
186
			}
187
		});
188
		$rootScope.modalInstance = modalInstance;
189
	};
190
  	$scope.deleteEnergyStorageContainerHVAC = function(energystoragecontainerhvac) {
191
  		SweetAlert.swal({
192
  				title: $translate.instant("SWEET.TITLE"),
193
  				text: $translate.instant("SWEET.TEXT"),
194
  				type: "warning",
195
  				showCancelButton: true,
196
  				confirmButtonColor: "#DD6B55",
197
  				confirmButtonText: $translate.instant("SWEET.CONFIRM_BUTTON_TEXT"),
198
  				cancelButtonText: $translate.instant("SWEET.CANCEL_BUTTON_TEXT"),
199
  				closeOnConfirm: true,
200
  				closeOnCancel: true
201
  			},
202
  			function(isConfirm) {
203
  				if (isConfirm) {
204
					let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
205
  					EnergyStorageContainerHVACService.deleteEnergyStorageContainerHVAC($scope.currentEnergyStorageContainer.id, energystoragecontainerhvac.id, headers, function (response) {
206
  						if (angular.isDefined(response.status) && response.status === 204) {
207
							toaster.pop({
208
								type: "success",
209
								title: $translate.instant("TOASTER.SUCCESS_TITLE"),
210
								body: $translate.instant("TOASTER.SUCCESS_DELETE_BODY", {template: $translate.instant("ENERGY_STORAGE_CONTAINER.ENERGY_STORAGE_CONTAINER_HVAC")}),
211
								showCloseButton: true,
212
							});
213
							$scope.getEnergyStorageContainerHVACsByEnergyStorageContainerID($scope.currentEnergyStorageContainer.id);
214
							$scope.$emit('handleEmitEnergyStorageContainerHVACChanged');
215
  						} else {
216
							toaster.pop({
217
								type: "error",
218
								title: $translate.instant("TOASTER.ERROR_DELETE_BODY", {template: $translate.instant("ENERGY_STORAGE_CONTAINER.ENERGY_STORAGE_CONTAINER_HVAC")}),
219
								body: $translate.instant(response.data.description),
220
								showCloseButton: true,
221
							});
222
  				   		}
223
  					});
224
  				}
225
  			});
226
  	};
227
228
  	$scope.getAllEnergyStorageContainers();
229
	$scope.getAllDataSources();
230
	$scope.getAllPoints();
231
    $scope.$on('handleBroadcastEnergyStorageContainerChanged', function(event) {
232
      $scope.getAllEnergyStorageContainers();
233
  	});
234
235
  });
236
237
238
  app.controller('ModalAddEnergyStorageContainerHVACCtrl', function($scope, $uibModalInstance, params) {
239
240
  	$scope.operation = "ENERGY_STORAGE_CONTAINER.ADD_ENERGY_STORAGE_CONTAINER_HVAC";
241
	$scope.points=params.points;
242
  	$scope.ok = function() {
243
  		$uibModalInstance.close($scope.energystoragecontainerhvac);
244
  	};
245
246
  	$scope.cancel = function() {
247
  		$uibModalInstance.dismiss('cancel');
248
  	};
249
  });
250
251
  app.controller('ModalEditEnergyStorageContainerHVACCtrl', function($scope, $uibModalInstance, params) {
252
  	$scope.operation = "ENERGY_STORAGE_CONTAINER.EDIT_ENERGY_STORAGE_CONTAINER_HVAC";
253
  	$scope.energystoragecontainerhvac = params.energystoragecontainerhvac;
254
	$scope.points=params.points;
255
  	$scope.ok = function() {
256
  		$uibModalInstance.close($scope.energystoragecontainerhvac);
257
  	};
258
259
  	$scope.cancel = function() {
260
  		$uibModalInstance.dismiss('cancel');
261
  	};
262
  });
263
264
  app.controller('ModalBindEnergyStorageContainerHVACCtrl', function(
265
	$scope,
266
	$uibModalInstance,
267
	toaster,
268
	$translate,
269
	EnergyStorageContainerHVACService,
270
	PointService,
271
	params) {
272
	$scope.operation = "ENERGY_STORAGE_CONTAINER.EDIT_ENERGY_STORAGE_CONTAINER_HVAC";
273
	$scope.energystoragecontainerid = params.energystoragecontainerid;
274
	$scope.energystoragecontainerhvac = params.energystoragecontainerhvac;
275
	$scope.datasources=params.datasources;
276
	$scope.boundpoints=params.boundpoints;
277
278
	let headers = { "User-UUID": params.user_uuid, "Token": params.token };
279
	EnergyStorageContainerHVACService.getPointsByHVACID($scope.energystoragecontainerid, $scope.energystoragecontainerhvac.id, headers, function (response) {
280
		if (angular.isDefined(response.status) && response.status === 200) {
281
			$scope.boundpoints = response.data;
282
		} else {
283
			$scope.boundpoints = [];
284
		}
285
	});
286
287
	$scope.cancel = function() {
288
		$uibModalInstance.dismiss('cancel');
289
	};
290
291
    $scope.changeDataSource = function (item, model) {
292
		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...
293
        $scope.currentDataSource = model;
294
		console.log($scope.currentDataSource);
295
        $scope.getPointsByDataSourceID($scope.currentDataSource);
296
    };
297
298
    $scope.getPointsByDataSourceID = function(id) {
299
		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...
300
		let headers = { "User-UUID": params.user_uuid, "Token": params.token };
301
        PointService.getPointsByDataSourceID(id, headers, function (response) {
302
            if (angular.isDefined(response.status) && response.status === 200) {
303
                $scope.points = response.data;
304
            } else {
305
                $scope.points = [];
306
            }
307
        });
308
    };
309
310
    $scope.pairPoint = function (dragEl, dropEl) {
311
        var pointid = angular.element('#' + dragEl).scope().point.id;
312
		let headers = { "User-UUID": params.user_uuid, "Token": params.token };
313
        EnergyStorageContainerHVACService.addPair(params.energystoragecontainerid, params.energystoragecontainerhvac.id, pointid, headers, function (response) {
314
            if (angular.isDefined(response.status) && response.status === 201) {
315
                toaster.pop({
316
                    type: "success",
317
                    title: $translate.instant("TOASTER.SUCCESS_TITLE"),
318
                    body: $translate.instant("TOASTER.BIND_POINT_SUCCESS"),
319
                    showCloseButton: true,
320
                });
321
                let headers = { "User-UUID": params.user_uuid, "Token": params.token };
322
				EnergyStorageContainerHVACService.getPointsByHVACID(params.energystoragecontainerid, params.energystoragecontainerhvac.id, headers, function (response) {
323
					if (angular.isDefined(response.status) && response.status === 200) {
324
						$scope.boundpoints = response.data;
325
					} else {
326
						$scope.boundpoints = [];
327
					}
328
				});
329
            } else {
330
                toaster.pop({
331
                    type: "error",
332
                    title: $translate.instant(response.data.title),
333
                    body: $translate.instant(response.data.description),
334
                    showCloseButton: true,
335
                });
336
            }
337
        });
338
    };
339
340
    $scope.deletePointPair = function (dragEl, dropEl) {
341
        if (angular.element('#' + dragEl).hasClass('source')) {
342
            return;
343
        }
344
345
		var pointid  = angular.element('#' + dragEl).scope().boundpoint.id;
346
		let headers = { "User-UUID": params.user_uuid, "Token": params.token };
347
        EnergyStorageContainerHVACService.deletePair(params.energystoragecontainerid, params.energystoragecontainerhvac.id, pointid, headers, function (response) {
348
            if (angular.isDefined(response.status) && response.status === 204) {
349
                toaster.pop({
350
                    type: "success",
351
                    title: $translate.instant("TOASTER.SUCCESS_TITLE"),
352
                    body: $translate.instant("TOASTER.UNBIND_POINT_SUCCESS"),
353
                    showCloseButton: true,
354
                });
355
                let headers = { "User-UUID": params.user_uuid, "Token": params.token };
356
				EnergyStorageContainerHVACService.getPointsByHVACID(params.energystoragecontainerid, params.energystoragecontainerhvac.id, headers, function (response) {
357
					if (angular.isDefined(response.status) && response.status === 200) {
358
						$scope.boundpoints = response.data;
359
					} else {
360
						$scope.boundpoints = [];
361
					}
362
				});
363
            } else {
364
                toaster.pop({
365
                    type: "error",
366
                    title: $translate.instant(response.data.title),
367
                    body: $translate.instant(response.data.description),
368
                    showCloseButton: true,
369
                });
370
            }
371
        });
372
    };
373
374
  });