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.