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

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

Complexity

Total Complexity 69
Complexity/F 1.38

Size

Lines of Code 414
Function Count 50

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 69
eloc 293
mnd 19
bc 19
fnc 50
dl 0
loc 414
rs 2.88
bpm 0.38
cpm 1.3798
noi 2
c 0
b 0
f 0

How to fix   Complexity   

Complexity

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