1'use strict'; 2 3angular.module('nefiksApp') 4 .controller('QuestioneerEditCtrl', function ($rootScope, $scope, $routeParams, $filter, $location, QuestioneerFactory, ActivityFactory, QuestioneerCdlFactory, LinkManager) { 5 if(!$rootScope.Auth.isCompany()) { 6 $rootScope.Msgs.addNext(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('Neveljavna akcija.'))); 7 $window.history.back(); 8 return; 9 } 10 11 $scope.modeActivity = $routeParams.actid; 12 13 $rootScope.titles = { 14 pageTitle: $scope.modeActivity ? Utf8._(!!$routeParams.id?'Urejanje ankete':'Dodajanje ankete') : Utf8._(!!$routeParams.id?'Urejanje prijavnice':'Dodajanje prijavnice') 15 }; 16 $rootScope.sideSelected = 'quest'; 17 $rootScope.bodyClass = ''; 18 $rootScope.contentClass = 'edit-state'; 19 $scope.rs = $rootScope; 20 $scope.Common = Common; 21 22 if(!!$scope.modeActivity) { 23 $scope.msg = Utf8._('V kolikor {zh}elite dodati k anketi {sh}e kak{sh}en {sh}ifrant, lahko to uredite <a href="/questioneercdls">tukaj</a>. <b>POZOR:</b> klik vas bo samodejno preusmeril, zato pred klikom shranite trenutno anketo.'); 24 } 25 26 $scope.elementTypes = [ 27 //{idname:'ktext', name:'Kratek tekstovni odgovor'}, 28 //{idname:'stext', name:'Srednji tekstovni odgovor'}, 29 {idname:'dtext', name:'Tekstovni odgovor'}, 30 {idname:'spis', name:'Tekstovni odgovor kot spis'}, 31 {idname:'drop', name:'Dropdown'}, 32 {idname:'radio', name:'Ena izbira'}, 33 {idname:'check', name:'Ve{ch} izbir'}, 34 {idname:'mail', name:'E-mail'}, 35 {idname:'davcn', name:Utf8._('Dav{ch}na {sh}tevilka')}, 36 {idname:'matic', name:Utf8._('Mati{ch}na {sh}tevilka')}, 37 {idname:'stv', name:Utf8._('{Sh}tevilka')}, 38 {idname:'stv2d', name:Utf8._('{Sh}tevilka na 2 decimalki')}, 39 {idname:'emso', name:Utf8._('EM{Sh}O')}, 40 {idname:'datum', name:'Datum'}, 41 {idname:'file', name:'Datoteka'} 42 ]; 43 44 // Can be an independent questioneer or an activity survey 45 $scope.objActivity = null; 46 47 $scope.sortableOpts = { 48 axis: 'y', 49 handle: '.sort-handle' 50 }; 51 52 var requiredFields = {'title': true}; 53 54 $scope.obj = null; 55 var sourceQuestioneerId = LinkManager.parseHash().sourceQuestioneer; 56 57 if(!!$routeParams.id || !!sourceQuestioneerId) { 58 $scope.isNew = !$routeParams.id; 59 QuestioneerFactory.getQuestioneer($routeParams.id || sourceQuestioneerId, 'edit') 60 .success(function(data) { 61 if(!data || data.status!=200) { 62 $rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri pridobivanju podatkov.')), data); 63 } else {
64 $scope.obj = Nefhance.questioneer(data.obj); 65 $scope.focusTitle = true; 66 67 //Leave all fields, except id 68 if(!!sourceQuestioneerId) { 69 delete $scope.obj.id; 70 71 if(!!$scope.elements) { 72 for(var i=0; i<$scope.elements.length; i++) { 73 delete $scope.elements[i].id; 74 } 75 } 76 } 77 } 78 }).error(function() { 79 $rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri pridobivanju podatkov.'))); 80 }); 81 } else { 82 $scope.isNew = true; 83 $scope.focusTitle = true; 84 $scope.obj = { 85 elements: [] 86 }; 87 } 88 89 $scope.fetchActivity = function() { 90 ActivityFactory.getActivity($routeParams.actid) 91 .success(function(data) { 92 if(!data || data.status!=200) { 93 $rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri pridobivanju podatk
93ov o aktivnosti.')), data); 94 } else { 95 $scope.objActivity = Nefhance.activity(data.obj); 96 } 97 }).error(function() { 98 $rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri pridobivanju podatkov o aktivnosti.'))); 99 }); 100 101 } 102 $scope.modeActivity ? $scope.fetchActivity() : null; 103 104 var cdlParams = new CommonQueryParams(); 105 cdlParams.other['all'] = '1'; 106 QuestioneerCdlFactory.getCodelists(cdlParams) 107 .success(function(data) { 108 if(!data || data.status!=200) { 109 $scope.codelists=[]; 110 } else { 111 $scope.codelists=data.res; 112 } 113 }).error(function() { 114 $scope.codelists=[]; //Do nothing 115 }); 116 117 $scope.onCancelClick = function() { 118 if($scope.modeActivity) { 119 LinkManager.setPathAndHashFromFullLink('/activity-surveys/' + $scope.objActivity.id); 120 } else { 121 LinkManager.setPathAndHashFromFullLink('/myquestioneers'); 122 } 123 }; 124 125 var validateFields = function() { 126 $scope.errors = {}; 127 var allOK = true; 128 129 allOK = PPValidate.stringE($scope.obj.title, {emp: 'Prosimo, vpi{sh}ite naziv prijavnice.'}, requiredFields, $scope.errors, 'title') && allOK; 130 131 return allOK; 132 }; 133 134 $scope.onSaveClick = function(sendAlso) { 135 //Validate fields 136 if(!validateFields()) { 137 Common.scrollToTop(); 138 return; 139 } 140 141 var json = { 142 obj: { 143 id: $scope.obj.id, 144 title: $scope.obj.title, 145 desc: $scope.obj.desc, 146 phoneField: $scope.obj.phoneField, 147 cityField: $scope.obj.cityField, 148 yobField: $scope.obj.yobField, 149 elements: $scope.obj.elements, 150 actId: $scope.modeActivity ? $scope.objActivity.id : null 151 } 152 }; 153 154 QuestioneerFactory.updateQuestioneer(json) 155 .success(function(data) { 156 if(data == null || (data.status!=200 && data.status!=201)) { 157 $rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri shranjevanju prijavnice.')), data); 158 Common.scrollToTop(); 159 } else if(data.status == 201) { 160 //Report back errors 161 if(!!data.ers) { 162 for(var key in data.ers) { 163 if(key == 'els') { 164 Common.setErrorTableByHKey(data.ers[key], $scope.obj.elements); 165 } else { 166 $scope.errors[key] = data.ers[key]; 167 } 168 } 169 } 170 } else { 171 var msg = 'Prijavnica '; 172 msg += $scope.obj.title; 173 msg += ' je bila shranjena.'; 174 $rootScope.Msgs.addNext(MESSAGE_TYPE.SUCCESS, Common.createResponseMessage(Utf8._(msg))); 175 176 if($scope.modeActivity) { 177 LinkManager.setPathAndHashFromFullLink('/activity-surveys/' + $scope.objActivity.id); 178 } else { 179 LinkManager.setPathAndHashFromFullLink('/myquestioneers'); 180 } 181 182 } 183 }).error(function() { 184 $rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri shranjevanju prijavnice.'))); 185 Common.scrollToTop(); 186 }); 187 }; 188 189 $scope.removeObjClick = function(event) { 190 if(!!event.ctrlKey) { //Direct remove 191 $scope.removeObj(); 192 } else { 193 $scope.removeObjWarn = true; 194 $scope.removeData = { 195 warnMsg: Utf8._('Ste prepri{ch}ani, da {zh}elite izbrisati prijavnico?'), 196 tagData: {} 197 }; 198 } 199 }; 200 $scope.removeObj = function() { 201 QuestioneerFactory.deleteQuestioneer($scope.obj.id, null) 202 .success(function(data) { 203 if(data.status == 200) { 204 $window.history.back(); 205 $rootScope.Msgs.addNext(MESSAGE_TYPE.SUCCESS, Common.createResponseMessage(Utf8._('Prijavnica '+$scope.obj.title+' je bila izbrisana.'))); 206 } else { 207 $rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri brisanju prijavnice.')), data); 208 Common.scrollToTop(); 209 } 210 }).error(function() { 211 $rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri brisanju prijavnice.'))); 212 Common.scrollToTop(); 213 }); 214 }; 215
216 $scope.onNewQuestionClick = function() { 217 $scope.obj.elements.push(Nefhance.HKey({})); 218 }; 219 220 $scope.onDeleteQuestionClick = function(ind) { 221 if($scope.obj.elements.length <= ind) { 222 return; 223 } 224 $scope.obj.elements.splice(ind, 1); 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.