PageSourceSearch

https://app.nefiks.si/angular/scripts/controllers/recommendation/RecomEditCtrl.js?v=20201107

js nefiks.si collected 2026-10-01 13:05:40 UTC 10,249 bytes, 226 lines download raw bytes

1'use strict';
2
3angular.module('nefiksApp')
4	.controller('RecomEditCtrl', function ($rootScope, $scope, $routeParams, $location, $window, $filter, RecomFactory, UserFactory) {
5		$scope.companyMode = $rootScope.Auth.isCompany();
6		
7		$rootScope.titles = {
8	        pageTitle: Utf8._(!!$routeParams.id?'Urejanje priporo{ch}ila':'Dodajanje priporo{ch}ila')
9	    };
10		$rootScope.sideSelected = 'rec';
11	    $rootScope.bodyClass = '';
12	    $rootScope.contentClass = 'edit-state';
13	    $scope.rs = $rootScope;
14
15	    var requiredFields = {'companyName': true, 'contactName': true, 'contactEmail':true};
16	    if(!!$scope.companyMode) {
17	    	requiredFields['enterToName'] = true;
18	    	requiredFields['enterToMail'] = true;
19	    }
20	    
21	    $scope.obj = null;
22	    if(!!$scope.companyMode) {
23	    	$scope.reenterMode = !!$location.url().startsWith('/reenterrecommendation');
24	    	if(!!$scope.reenterMode) {
25	    		$rootScope.titles.pageTitle = Utf8._('Ponoven vpis priporo{ch}ila');
26	    	}
27	    } else {
28	    	$scope.msg = Utf8._('Izpolni{sh} lahko vsa prazna polja, delodajalec bo tvoje podatke popravil in dopolnil po potrebi.');
29	    	$scope.msg += '<br/><br/>';
30	    	$scope.msg += Utf8._('Postopek:');
31	    	$scope.msg += '<br/>';
32	    	$scope.msg += Utf8._('1. izpolni polje naslov priporo{ch}ila,');
33	    	$scope.msg += '<br/>';
34	    	$scope.msg += Utf8._('2. vpi{sh}i osebno sporo{ch}ilo delodajalcu, ki ne bo del priporo{ch}ila,');
35	    	$scope.msg += '<br/>';
36	    	$scope.msg += Utf8._('3. klikni na gumb shrani in po{sh}lji v potrditev.');
37	    }
38	    
39	    var _loadCompanyData = function(forReenter) {
40	    	UserFactory.getMe(true)
41				.success(function(data) {
42					if(!!data && data.status==200) { //Fill confirmators data
43						if(!forReenter) {
44							$scope.obj.companyName = data.user.cmp.name;
45							$scope.obj.contactName = data.user.firstname + ' ' + data.user.lastname;
46							$scope.obj.contactEmail = data.user.email; 
47							$scope.obj.contactPhone = data.user.phone;
48						}
49						
50						$scope.projectLogos = [{id: -2, name:'Brez logotipa'}, {name:'--------'}];
51						if(!!data.user.image) {
52							if(!forReenter || (!!forReenter && $scope.obj.logoId==data.user.imageId)) { //If reentering and profile picture is selected
53								$scope.obj.logoId = -1;
54							}
55							$scope.projectLogos.push({id: -1, name:'Logotip iz profila'});
56							$scope.projectLogos.push({name:'--------'});
57						}
58						if(!!data.user.cmp.projectLogos) {
59							for(var i=0; i<data.user.cmp.projectLogos.length; i++) {
60								var pl = data.user.cmp.projectLogos[i];
61								$scope.projectLogos.push({id: pl.imgId, name: pl.name});
62								if($scope.obj.logoId == null) {
63									$scope.obj.logoId = pl.imgId;
64								}
65							}
66						}
67					}
68				})
69				.error(function(){});
70	    };
71	    
72	    if(!!$routeParams.id) {
73	    	$scope.isNew = false;
74	    	RecomFactory.getRecom($routeParams.id, true)
75		    	.success(function(data) {
76		    		if(!data || data.status!=200) {
77		    			$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri pridobivanju podatkov.')), data);
78		    		} else {
79		    			$scope.obj = Nefhance.recommendation(data.obj);
80
81		    			if(!!$scope.companyMode && (!$scope.reenterMode && $scope.obj.status!='draft')) {
82		    	    		$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('Neveljavna akcija.')));
83		    	    		$window.history.back();
84		    	    		return;
85		    	    	} else if(!!$scope.reenterMode || (!!$scope.companyMode && $scope.obj.status=='draft')) {
86		    				$scope.obj.enterToName = $scope.obj.enteredToName;
87		    				$scope.obj.enterToMail = $scope.obj.mailSendTo;
88		    				if($scope.obj.confs!=null && $scope.obj.confs.length>0) {
89		    					$scope.obj.logoId = $scope.obj.confs[0].logoId;
90		    				}
91		    				_loadCompanyData(true);
92						}
93						if($scope.obj.status === "confirmed") {
94							$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('Urejate {zh}e potrjeno priporo{ch}ilo. Ob vsaki shranjeni spremembi podatkov priporo{ch}ilo ne bo ve{ch} potrjeno.')), null);
95						}
96		    			$scope.focusTitle = true;
97		    		}
98		    	}).error(function() {
99		    		$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri pridobivanju podatkov.')));
100		    	});
101	    } else {
102	    	if(!!$scope.reenterMode) {
103	    		$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('Neveljavna akcija.')));
104	    		$window.history.back();
105	    		return;
106	    	}
107	    	
108	    	$scope.isNew = true;
109	    	$scope.obj = {};
110	    	$scope.focusTitle = true;
111	    	
112	    	if(!!$scope.companyMode) {
113	    		_loadCompanyData(false);
114	    	}
115	    }
116	    
117	    $scope.onCancelClick = function() {
118	    	$window.history.back();
119	    };
120	    
121	    var validateFields = function() {
122	    	$scope.errors = {};
123	    	var allOK = true;
124	    	
125	    	if(!!$scope.companyMode) {
126		    	allOK = PPValidate.stringE($scope.obj.enterToName, {emp: 'Prosimo, vpi{sh}ite ime in priimek osebe, ki ji vpisujete priporo{ch}ilo.'}, requiredFields, $scope.errors, 'enterToName') && allOK;
127		    	allOK = PPValidate.mailE($scope.obj.enterToMail, {emp: 'Prosimo, vpi{sh}ite elektronski naslov osebe, ki ji vpisujete priporo{ch}ilo.', wf: 'Prosimo, vpi{sh}ite elektronski naslov v pravilni obliki.'}, requiredFields, $scope.errors, 'enterToMail') && allOK;
128	    	}
129	    	
130	    	allOK = PPValidate.stringE($scope.obj.companyName, {emp: !!$scope.companyMode?'Prosimo, vpi{sh}ite ime va{sh}e organizacije.':'Prosimo, vpi{sh}i ime organizacije.'}, requiredFields, $scope.errors, 'companyName') && allOK;
131	    	allOK = PPValidate.stringE($scope.obj.contactName, {emp: !!$scope.companyMode?'Prosimo, vpi{sh}ite ime in priimek kontaktne osebe.':'Prosimo, vpi{sh}i ime in priimek kontaktne osebe.'}, requiredFields, $scope.errors, 'contactName') && allOK;
132	    	allOK = PPValidate.mailE($scope.obj.contactEmail, {emp: !!$scope.companyMode?'Prosimo, vpi{sh}ite elektronski naslov kontaktne osebe.':'Prosimo, vpi{sh}i elektronski naslov kontaktne osebe.', wf: !!$scope.companyMode?'Prosimo, vpi{sh}ite elektronski naslov kontaktne osebe v pravilni obliki.':'Prosimo, vpi{sh}i elektronski naslov kontaktne osebe v pravilni obliki.'}, requiredFields, $scope.errors, 'contactEmail') && allOK;
133	    	allOK = PPValidate.stringE($scope.obj.contactPhone, {emp: !!$scope.companyMode?'Prosimo, vpi{sh}ite telefonsko {sh}tevilko kontaktne osebe.':'Prosimo, vpi{sh}i telefonsko {sh}tevilko kontaktne osebe.'}, requiredFields, $scope.errors, 'contactPhone') && allOK;
134	    	
135	    	if(!allOK) {
136	    		$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('Prosimo, preveri pravilnost vpisanih podatkov.')));
137	    		Common.scrollToTop();
138	    	}
139	    	
140	    	return allOK;
141	    };
142	    
143	    $scope.onSaveClick = function(sendAlso) {
144	    	//Validate fields
145	    	if(!validateFields()) return;
146	    	
147	    	var json = {
148	    		obj: {
149		    		id: $scope.obj.id,
150		    		title: $scope.obj.title,
151		    		showOnPublic: $scope.obj.showOnPublic,
152		    		enterToName: $scope.obj.enterToName,
153		    		enterToMail: $scope.obj.enterToMail,
154		    		workDescription: $scope.obj.workDescription,
155		    		provedBy: $scope.obj.provedBy,
156		    		specialCharacteristics: $scope.obj.specialCharacteristics,
157		    		recommendationGround: $scope.obj.recommendationGround,
158		    		contactName: $scope.obj.contactName,
159		    		contactEmail: $scope.obj.contactEmail,
160		    		contactPhone: $scope.obj.contactPhone,
161		    		companyName: $scope.obj.companyName,
162		    		logoId: $scope.obj.logoId, 
163		    		personalMessage: $scope.obj.personalMessage
164	    		},
165	    		sendmail: !!sendAlso,
166	    		reenter: !!$scope.reenterMode
167	    	};
168	    	
169	    	RecomFactory.updateRecom(json)
170	    		.success(function(data) {
171	    			if(data == null || (data.status!=200 && data.status!=201)) {
172	    				$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri shranjevanju priporo{ch}ila.')), data);
173	    			} else if(data.status == 201) {
174	    				//Report back errors
175	    				if(!!data.ers) {
176	    					for(var key in data.ers) {
177	    						$scope.errors[key] = data.ers[key];
178	    					}
179	    				}
180	    				$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('Prosimo, preveri pravilnost vpisanih podatkov.')));
181	    	    		Common.scrollToTop();
182	    			} else {
183	    				var msg = 'Priporo{ch}ilo ';
184	    				if(!!$scope.companyMode) {
185	    					msg += 'osebi ' + $scope.obj.enterToName;
186	    				} else {
187	    					msg += $scope.obj.title;
188	    				}
189	    				msg += ' je bilo shranjeno';
190	    				if(!!sendAlso) {
191	    					msg += ' in poslano v potrditev'
192	    				}
193	    				msg += '.';
194	    				$rootScope.Msgs.addNext(MESSAGE_TYPE.SUCCESS, Common.createResponseMessage(Utf8._(msg)));
195	    				$window.history.back();
196	    			}
197	    		}).error(function() {
198	    			$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri shranjevanju priporo{ch}ila.')));
199	    		});
200	    };
201	    
202	    $scope.removeObjClick = function(event) {
203			if(!!event.ctrlKey) { //Direct remove
204				$scope.removeObj();
205			} else { 
206				$scope.removeObjWarn = true;
207				$scope.removeData = {
208					warnMsg: Utf8._('Si prepri{ch}an, da {zh}eli{sh} izbrisati priporo{ch}ilo:<br/>' + $scope.obj.title),
209					tagData: {}
210				};
211			}
212		};
213		$scope.removeObj = function() {
214			RecomFactory.deleteRecom($scope.obj.id, null)
215				.success(function(data) {
216					if(data.status == 200) {
217						$window.history.back();
218						$rootScope.Msgs.addNext(MESSAGE_TYPE.SUCCESS, Common.createResponseMessage(Utf8._('Priporo{ch}ilo '+$scope.obj.title+' je bilo izbrisano.')));
219					} else {
220						$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri brisanju priporo{ch}ila.')), data);
221					}
222				}).error(function() {
223					$rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri brisanju priporo{ch}ila.')));
224				});
225		};
226	});

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.