Passed
Push — master ( d4f9b5...ba834d )
by Guangyu
20:25 queued 12s
created

admin/app/controllers/settings/meter/offlinemeterfile.controller.js   A

Complexity

Total Complexity 18
Complexity/F 1.5

Size

Lines of Code 187
Function Count 12

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 18
eloc 131
mnd 6
bc 6
fnc 12
dl 0
loc 187
rs 10
bpm 0.5
cpm 1.5
noi 0
c 0
b 0
f 0
1
'use strict';
2
3
app.controller('OfflineMeterFileController', function(
4
	$scope, 
5
	$window,
6
	$common, 
7
	$translate,
8
	$uibModal,
9
	$interval, 
10
	OfflineMeterFileService, 
11
	toaster, 
12
	SweetAlert) {
13
14
	$scope.cur_user = JSON.parse($window.localStorage.getItem("currentUser"));
15
16
	$scope.getAllOfflineMeterFiles = function() {
17
		OfflineMeterFileService.getAllOfflineMeterFiles(function(error, data) {
18
			if (!error) {
19
				$scope.offlinemeterfiles = data;
20
			} else {
21
				$scope.offlinemeterfiles = [];
22
			}
23
		});
24
25
	};
26
27
	$scope.dzOptions = {
28
		url: getAPI() + 'offlinemeterfiles',
29
		acceptedFiles: '.xlsx',
30
		dictDefaultMessage: 'Click(or Drop) to add files',
31
		maxFilesize: '100',
32
		headers: { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token }
33
	};
34
35
	$scope.dzCallbacks = {
36
		'addedfile': function(file) {
37
			console.info('File added.', file);
38
		},
39
		'success': function(file, xhr) {
40
			//console.log('File success to upload from dropzone', file, xhr);
41
			var templateName = file.name;
42
43
			var popType = 'TOASTER.SUCCESS';
44
			var popTitle = $common.toaster.success_title;
45
			var popBody = $common.toaster.success_add_body;
46
47
			popType = $translate.instant(popType);
48
			popTitle = $translate.instant(popTitle);
49
			popBody = $translate.instant(popBody,{template: templateName});
50
51
			toaster.pop({
52
				type: popType,
53
				title: popTitle,
54
				body: popBody,
55
				showCloseButton: true,
56
			});
57
			$scope.getAllOfflineMeterFiles();
58
		},
59
        'error': function (file, xhr) {
60
            var templateName = file.name;
61
62
            var popType = 'TOASTER.ERROR';
63
            var popTitle = $common.toaster.error_title;
64
            var popBody = $common.toaster.error_add_body;
65
66
            popType = $translate.instant(popType);
67
            popTitle = $translate.instant(popTitle);
68
            popBody = $translate.instant(popBody, {template: templateName});
69
70
            toaster.pop({
71
                type: popType,
72
                title: popTitle,
73
                body: popBody,
74
                showCloseButton: true,
75
            });
76
        }
77
    };
78
79
    $scope.restoreOfflineMeterFile = function (offlinemeterfile) {
80
        OfflineMeterFileService.restoreOfflineMeterFile(offlinemeterfile, function (error, data) {
81
            if (!error) {
82
                toaster.pop({
83
                    type: $translate.instant('TOASTER.SUCCESS'),
84
                    title: $translate.instant('TOASTER.SUCCESS_TITLE'),
85
                    body: $translate.instant('SETTING.RESTORE_SUCCESS'),
86
                    showCloseButton: true,
87
                });
88
                $scope.getAllOfflineMeterFiles();
89
            } else {
90
                toaster.pop({
91
                    type: $translate.instant('TOASTER.ERROR'),
92
                    title: $translate.instant(error.title),
93
                    body: $translate.instant(error.description),
94
                    showCloseButton: true,
95
                });
96
            }
97
        });
98
    };
99
100
	$scope.deleteOfflineMeterFile = function(offlinemeterfile) {
101
		SweetAlert.swal({
102
			title: $translate.instant($common.sweet.title),
103
			text: $translate.instant($common.sweet.text),
104
			type: "warning",
105
			showCancelButton: true,
106
			confirmButtonColor: "#DD6B55",
107
			confirmButtonText: $translate.instant($common.sweet.confirmButtonText),
108
			cancelButtonText: $translate.instant($common.sweet.cancelButtonText),
109
			closeOnConfirm: true,
110
			closeOnCancel: true
111
			},
112
			function(isConfirm) {
113
				if (isConfirm) {
114
					OfflineMeterFileService.deleteOfflineMeterFile(offlinemeterfile, function(error, status) {
115
						if (angular.isDefined(status) && status == 204) {
116
						    var templateName = "SETTING.OFFLINE_METER_FILE";
117
                            templateName = $translate.instant(templateName);
118
119
                            var popType = 'TOASTER.SUCCESS';
120
                            var popTitle = $common.toaster.success_title;
121
                            var popBody = $common.toaster.success_delete_body;
122
123
                            popType = $translate.instant(popType);
124
                            popTitle = $translate.instant(popTitle);
125
                            popBody = $translate.instant(popBody, {template: templateName});
126
127
                            toaster.pop({
128
                                type: popType,
129
                                title: popTitle,
130
                                body: popBody,
131
                                showCloseButton: true,
132
                            });
133
134
							$scope.getAllOfflineMeterFiles();
135
						} else if (angular.isDefined(status) && status == 400) {
136
							var popType = 'TOASTER.ERROR';
137
                            var popTitle = error.title;
138
                            var popBody = error.description;
139
140
                            popType = $translate.instant(popType);
141
                            popTitle = $translate.instant(popTitle);
142
                            popBody = $translate.instant(popBody);
143
144
145
                            toaster.pop({
146
                                type: popType,
147
                                title: popTitle,
148
                                body: popBody,
149
                                showCloseButton: true,
150
                            });
151
						} else {
152
							var templateName = "SETTING.OFFLINE_METER_FILE";
153
                            templateName = $translate.instant(templateName);
154
155
                            var popType = 'TOASTER.ERROR';
156
                            var popTitle = $common.toaster.error_title;
157
                            var popBody = $common.toaster.error_delete_body;
158
159
                            popType = $translate.instant(popType);
160
                            popTitle = $translate.instant(popTitle);
161
                            popBody = $translate.instant(popBody, {template: templateName});
162
163
                            toaster.pop({
164
                                type: popType,
165
                                title: popTitle,
166
                                body: popBody,
167
                                showCloseButton: true,
168
                            });
169
						}
170
					});
171
				}
172
			});
173
	};
174
175
	$scope.getAllOfflineMeterFiles();
176
	$interval.cancel();
177
178
	$scope.$on('$destroy', function() {
179
	     // Make sure that the interval is destroyed too
180
	     if (angular.isDefined($scope.refeshfiles)) {
181
	         $interval.cancel($scope.refeshfiles);
182
	         $scope.refeshfiles = undefined;
183
	     }
184
	});
185
	$scope.refeshfiles=$interval($scope.getAllOfflineMeterFiles,1000*8);
186
187
});
188