PageSourceSearch

https://app.nefiks.si/angular/scripts/controllers/accept/ConfirmEntryFromPersonCtrl.js?v=20201107

js nefiks.si collected 2026-10-01 13:06:01 UTC 13,104 bytes, 272 lines download raw bytes

1'use strict';
2
3angular.module('nefiksApp')
4	.controller('ConfirmEntryFromPerson', function ($rootScope, $scope, $routeParams, $location, $window, $http, CommonFactory) {
5		if(!!$rootScope.Auth.isLoggedIn() && !$rootScope.Auth.isCompany()) {
6    		$rootScope.Msgs.addNext(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('Neveljavna akcija.')));
7    		$window.history.back();
8    		return;
9    	}
10		
11		$rootScope.titles = {
12	        pageTitle: Utf8._('Potrditev')
13	    };
14		$rootScope.sideSelected = '';
15	    $rootScope.bodyClass = '';
16	    $rootScope.contentClass = 'edit-state';
17	    $scope.rs = $rootScope;
18	    $scope.now = new Date();
19	    $scope.NF = NefiksFields;
20		
21		var requiredFields = {'workDescription': true, 'provedBy': true, 'specialCharacteristics':true, 'recommendationGround': true};
22		
23	    if($location.url().startsWith('/confirm/nefiks')) {
24	    	$scope.nefiksMode = true;
25	    	$rootScope.titles.pageTitle = Utf8._('Potrditev vpisa v Nefiks');
26	    } else if($location.url().startsWith('/confirm/recom')) {
27	    	$scope.recomMode = true;
28	    	$rootScope.titles.pageTitle = Utf8._('Potrditev priporo{ch}ila');
29	    } else {
30	    	$rootScope.Msgs.addNext(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('Neveljavna akcija.')));
31    		$window.history.back();
32    		return;
33	    }
34	    
35	    if(!$routeParams.id && !$routeParams.hash) {
36	    	$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('Napa{ch}ni podatki v URL-ju.')));
37	    	return;
38	    }
39	    
40	    var _setSenderAndUserFields = function(data) {
41	    	$scope.person = {
42	    		name: data.personName,
43	    		mail: data.personMail
44	    	};
45	    	
46	    	$scope.confirmData.companyName = data.companyName;
47	    	$scope.confirmData.contactName = data.contactName;
48	    	$scope.confirmData.contactMail = data.contactEmail;
49	    	$scope.confirmData.contactPhone = data.contactPhone;
50	    	
51	    	if(!!$scope.nefiksMode) {
52	    		$scope.confirmData.gradeType = 'pc';
53			}
54			if(!!$scope.recomMode) {
55				$scope.confirmData.workDescription 			= data.workDescription;
56				$scope.confirmData.provedBy 				= data.provedBy;
57				$scope.confirmData.specialCharacteristics 	= data.specialCharacteristics;
58				$scope.confirmData.recommendationGround 	= data.recommendationGround;
59			}
60	    };
61		
62		var validateRecomFields = function(init) {
63			$scope.errors = {};
64			var allPresent = true;
65
66			allPresent = PPValidate.stringE(init ? $scope.obj.workDescription 		 : $scope.refill.workDescription, 			{emp: ''}, requiredFields, $scope.errors, 'workDescription') 		&& allPresent;
67			allPresent = PPValidate.stringE(init ? $scope.obj.provedBy 				 : $scope.refill.provedBy, 				{emp: ''}, requiredFields, $scope.errors, 'provedBy') 		 		&& allPresent;
68			allPresent = PPValidate.stringE(init ? $scope.obj.specialCharacteristics : $scope.refill.specialCharacteristics, 	{emp: ''}, requiredFields, $scope.errors, 'specialCharacteristics') && allPresent;
69			allPresent = PPValidate.stringE(init  ?$scope.obj.recommendationGround 	 : $scope.refill.recommendationGround, 	{emp: ''}, requiredFields, $scope.errors, 'recommendationGround') 	&& allPresent;
70
71			if(!allPresent) {
72				$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('Manjkajo{ch}i podatki - Prosimo izpolnite vse potrebne podatke v priporo{ch}ilu.')));
73			}
74
75			return allPresent;
76		}
77		
78	    if(!!$scope.nefiksMode) {
79	    	$http.get('/api/nefiks/m/single/id/'+$routeParams.id+'/hash/'+$routeParams.hash+'/fconf/1')
80		    	.success(function(data) {
81		    		if(!data || data.status!=200) {
82		    			$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri pridobivanju podatkov.')), data);
83		    		} else {
84		    			$scope.obj = Nefhance.nefiks(data.obj, CommonFactory);
85		    			_setSenderAndUserFields(data);
86		    		}
87		    	}).error(function() {
88		    		$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri pridobivanju podatkov.')));
89		    	});
90	    } else if(!!$scope.recomMode) {
91	    	$http.get('/api/recom/m/single/id/'+$routeParams.id+'/hash/'+$routeParams.hash+'/fconf/1')
92		    	.success(function(data) {
93		    		if(!data || data.status!=200) {
94		    			$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri pridobivanju podatkov.')), data);
95		    		} else {
96						$scope.obj = Nefhance.recommendation(data.obj);
97						if($scope.obj.status === "confirmed" || $scope.obj.status === "rejected") {
98							// This recommendation has already been confirmed - Write an error.
99							$rootScope.Msgs.addCurrent($scope.obj.status === "confirmed" ? MESSAGE_TYPE.SUCCESS : MESSAGE_TYPE.ERROR, Common.createResponseMessage($scope.obj.status === "confirmed" ? Utf8._('To priporo{ch}ilo je {zh}e potrjeno.') : Utf8._('To priporo{ch}ilo je {zh}e zavrnjeno.')), data);
100							$scope.obj = null;
101						} else {
102							$scope.refill = angular.copy($scope.obj);
103		    				_setSenderAndUserFields(data);
104						}
105
106						// Check if object has all neccessary fields defined - If not, notify the confirmator
107						validateRecomFields(true);
108
109		    		}
110		    	}).error(function() {
111		    		$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri pridobivanju podatkov.')));
112		    	});
113	    }
114	    
115	    $scope.confirmData = {
116	    	accept: 'acc',
117	    	newUser: false
118	    };
119	    
120	    var _getAcceptMode = function() {
121	    	if(!!$scope.recomMode) return 'rec';
122	    	if(!!$scope.nefiksMode) return 'nef';
123	    	return '';
124	    };
125	    
126	    $scope.onRejectClick = function() {
127	    	$scope.errors = {};
128	    	if(Common.isEmptyString($scope.confirmData.rejectionReason)) {
129	    		$scope.errors.rejectionReason = Utf8._('Prosimo, vpi{sh}ite razlog zavrnitve.');
130	    		return;
131	    	}
132	    	
133	    	var json = {
134	    		obj: {
135	    			id: parseInt($routeParams.id),
136	    			hash: $routeParams.hash,
137	    			reject: true,
138	    			rejectionReason: $scope.confirmData.rejectionReason
139	    		}	
140	    	};
141	    	
142	    	$http.post('/api/accept-entry/m/'+_getAcceptMode(), angular.toJson(json), {transformRequest: angular.identity, headers: {'Content-Type': undefined}})
143	    		.success(function(data) {
144	    			if(!data || data.status!=200) {
145		    			$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri zavrnitvi vpisa.')), data);
146		    			Common.scrollToTop();
147		    		} else {
148		    			if(!!$scope.recomMode) {
149		    				$scope.rejectionMsg = Utf8._('Priporo{ch}ilo je bilo zavrnjeno. Zahvaljujemo se vam za sodelovanje in prispevek k izoblj{sh}avi portala nefiks.si.');
150		    			} else if(!!$scope.nefiksMode) {
151		    				$scope.rejectionMsg = Utf8._('Vpis je bil zavrnjen. Zahvaljujemo se vam za sodelovanje in prispevek k izoblj{sh}avi portala nefiks.si.');
152		    			}
153		    		}
154	    		}).error(function() {
155	    			$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri zavrnitvi vpisa.')));
156	    			Common.scrollToTop();
157	    		});
158	    };
159	    
160	    var checkEmptyness = function(str, errField, emptyError) {
161    		if(Common.isEmptyString(str)) {
162    			$scope.errors[errField] = emptyError;
163    		}
164    	};
165	    
166	    var validateAcceptFields = function() {
167    		checkEmptyness($scope.confirmData.companyName, 'companyName', Utf8._('Prosimo, vpi{sh}ite ime organizacije.'));
168    		checkEmptyness($scope.confirmData.contactName, 'contactName', Utf8._('Prosimo, vpi{sh}ite ime in priimek kontaktne osebe.'));
169    		checkEmptyness($scope.confirmData.contactMail, 'contactMail', Utf8._('Prosimo, vpi{sh}ite elektronski naslov.'));
170	    		
171    		if($scope.confirmData.gradeType == 'og') {
172    			checkEmptyness($scope.confirmData.organizatiorGrade, 'organizatiorGrade', Utf8._('Prosimo, vpi{sh}ite oceno organizatorja.'));
173    		} else if($scope.confirmData.gradeType == 'fr') {
174    			checkEmptyness($scope.confirmData.workDescription, 'workDescription', Utf8._('Prosimo, izpolnite polje.'));
175    			checkEmptyness($scope.confirmData.provedBy, 'provedBy', Utf8._('Prosimo, izpolnite polje.'));
176    			checkEmptyness($scope.confirmData.specialCharacteristics, 'specialCharacteristics', Utf8._('Prosimo, izpolnite polje.'));
177    			checkEmptyness($scope.confirmData.recommendationGround, 'recommendationGround', Utf8._('Prosimo, izpolnite polje.'));
178    		}
179    		
180	    	return Common.isEmptyArray($scope.errors);
181	    };
182	    
183	    var validateRefillFields = function() {
184	    	checkEmptyness($scope.refill.workDescription, 'workDescription', Utf8._('Prosimo, izpolnite polje.'));
185			checkEmptyness($scope.refill.provedBy, 'provedBy', Utf8._('Prosimo, izpolnite polje.'));
186			checkEmptyness($scope.refill.specialCharacteristics, 'specialCharacteristics', Utf8._('Prosimo, izpolnite polje.'));
187			checkEmptyness($scope.refill.recommendationGround, 'recommendationGround', Utf8._('Prosimo, izpolnite polje.'));
188
189			return Common.isEmptyArray($scope.errors);
190	    };
191	    
192	    $scope.onAcceptClick = function(fromRefill) {
193	    	$scope.errors = {};			
194
195	    	if(!validateAcceptFields()) return;
196	    	if(!!fromRefill && !validateRefillFields()) return;
197	    	
198	    	var json = {
199	    		obj: {
200	    			id: parseInt($routeParams.id),
201	    			hash: $routeParams.hash,
202	    			reject: false,
203	    			companyName: $scope.confirmData.companyName,
204	    			contactName: $scope.confirmData.contactName,
205	    			contactMail: $scope.confirmData.contactMail,
206	    			contactPhone: $scope.confirmData.contactPhone,
207	    			active: !!$scope.confirmData.active,
208	    			volunteer: !!$scope.confirmData.volunteer,
209	    			gradeType: $scope.confirmData.gradeType,
210	    			organizatiorGrade: $scope.confirmData.organizatiorGrade,
211	    			workDescription: $scope.confirmData.workDescription,
212		    		provedBy: $scope.confirmData.provedBy,
213		    		specialCharacteristics: $scope.confirmData.specialCharacteristics,
214		    		recommendationGround: $scope.confirmData.recommendationGround
215	    		}	
216	    	};
217	    	
218	    	if(!!$scope.nefiksMode) {
219	    		json.obj.gradeType = $scope.confirmData.gradeType;
220	    		json.obj.organizatiorGrade = $scope.confirmData.organizatiorGrade;
221	    		json.obj.workDescription = $scope.confirmData.workDescription;
222	    		json.obj.provedBy = $scope.confirmData.provedBy;
223	    		json.obj.specialCharacteristics = $scope.confirmData.specialCharacteristics;
224	    		json.obj.recommendationGround = $scope.confirmData.recommendationGround;
225	    	} else if(!!$scope.recomMode && !!fromRefill) { //Recom data from refill object
226	    		json.obj.workDescription = $scope.refill.workDescription;
227	    		json.obj.provedBy = $scope.refill.provedBy;
228	    		json.obj.specialCharacteristics = $scope.refill.specialCharacteristics;
229	    		json.obj.recommendationGround = $scope.refill.recommendationGround;
230	    	} else if(!!$scope.recomMode && !fromRefill) { //Recom data from base object
231	    		json.obj.workDescription = $scope.obj.workDescription;
232	    		json.obj.provedBy = $scope.obj.provedBy;
233	    		json.obj.specialCharacteristics = $scope.obj.specialCharacteristics;
234	    		json.obj.recommendationGround = $scope.obj.recommendationGround;
235	    	}
236	    	
237	    	$http.post('/api/accept-entry/m/'+_getAcceptMode(), angular.toJson(json), {transformRequest: angular.identity, headers: {'Content-Type': undefined}})
238	    		.success(function(data) {
239	    			if(!!data && data.status==200) {
240	    				if(!!$scope.recomMode) {
241							$scope.acceptMsg = Utf8._('Priporo{ch}ilo je bilo potrjeno.');
242							$rootScope.Msgs.removeCurrent();
243		    			} else if(!!$scope.nefiksMode) {
244		    				$scope.acceptMsg = Utf8._('Vpis je bil potrjen.');
245		    			}
246		    		} else if(!!data && data.status==201) {
247		    			$scope.errors = data.ers;
248		    		} else {
249		    			$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri sprejemanju vpisa.')), data);
250		    			Common.scrollToTop();
251		    		}
252	    		}).error(function() {
253	    			$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri zavrnitvi vpisa.')));
254	    			Common.scrollToTop();
255	    		});
256	    };
257	    
258	    $scope.onFillPreviewClick = function() {
259	    	$scope.errors = {};
260	    	
261	    	if(!validateRefillFields()) return;
262	    	
263	    	$scope.obj.workDescription = $scope.refill.workDescription;
264	    	$scope.obj.provedBy = $scope.refill.provedBy;
265	    	$scope.obj.specialCharacteristics = $scope.refill.specialCharacteristics;
266	    	$scope.obj.recommendationGround = $scope.refill.recommendationGround;
267	    	
268	    	$scope.confirmData.accept = 'acc';
269	    	Common.scrollToTop();
270	    };
271	});
272

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.