app.controller('utentiCtrl', function($scope,$http,$cookies,$window, $location,$timeout, $mdDialog, $q, $routeParams, $mdBottomSheet, $mdMedia, UserManager, FunzioniOrdinanti, utilsSvc) { var vm=this; vm.maxItems = 0; vm.itemsPerPage = 100; vm.selectedIndex=-1; vm.records=[]; vm.allUsers=[]; vm.funzioniOrdinanti=[]; vm.filter={ filterText: '', orderField:'userId' } vm.setSelected=function(idx) { vm.selectedIndex = idx; } vm.columnWidths=[ 100, //0 150, //1 120, //2 120, //3 110, //4 150, //5 120, //6 120, //7 120, //8 120, //9 120, //10 140, //11 160, //12 160, //13 160, //14 180, //15 160, //16 160, //17 160, //18 160, //19 160, //20 160 //21 ]; vm.getListHeight = function() { containerHeight = ($window.innerHeight - $('#container').position().top - $('#view').position().top); return {'height': containerHeight + 'px'}; }; $window.addEventListener('resize', onResize); function onResize() { $scope.$digest(); } $scope.$on('$destroy', function() { $window.removeEventListener('resize', onResize); }); vm.getColumnWidth = // } // this.lastStartIdx = index; function(idx) { return { 'width': vm.columnWidths[idx] + 'px', 'min-width':vm.columnWidths[idx] + 'px', 'margin-left':'8px', 'margin-right':'8px' }; } vm.getMaxListWidth = function() { var res=0; for (var i=0;ivm.maxItems) return null; if (!vm.infiniteItems.loading_) if (index > vm.records.length) { this.fetchMoreItems_(index); return null; } return vm.records [index]; }, // Required. // For infinite scroll behavior, we always return a slightly // higher // number than the previously loaded items. getLength: function() { return vm.maxItems;// FunzioniOrdinanti.List().$promise.then( // function(data){ // vm.funzioniOrdinanti=data; // }, // function(err){ // utilsSvc.handleHttpError(err); // }); }, fetchMoreItems_: function(index) { if (this.toLoad_ < index) { this.toLoad_ += vm.itemsPerPage; utilsSvc.showWaitMessage('Ricerca in corso...'); vm.infiniteItems.loading_ = true; this.listPromise = UserManager.List({start: vm.records.length,size:Math.max(vm.records.length+index,vm.itemsPerPage),filter: vm.filter.filterText, orderField:vm.filter.orderField}).$promise; var mod=this; this.listPromise.then( function(data){ vm.infiniteItems.loading_ = false; vm.infiniteItems.toLoad_=0; utilsSvc.cancelWaitMessage(); vm.records = vm.records.concat(data); mod.numLoaded_ = vm.records.length; mod.lastStartIdx = vm.records.length; }, function(error) { vm.infiniteItems.loading_ = false; vm.infiniteItems.toLoad_=0; utilsSvc.handleHttpError(error); } ) } } } vm.getUtenti = function(){ UserManager.Count({filter: vm.filter.filterText}).$promise.then( function(data){ vm.records=[]; vm.maxItems = data.value; vm.infiniteItems.numLoaded_ = 0; vm.infiniteItems.toLoad_ = 0; }, function(err){ utilsSvc.handleHttpError(err); } ); } vm.getAllUtenti = function(){ UserManager.List({start: 0,size:99999,filter: '', orderField:'userId'}).$promise .then(function(data){ vm.allUsers = data; }) } vm.init = function() { vm.getUtenti(); vm.getAllUtenti(); FunzioniOrdinanti.List().$promise.then( function(data){ vm.funzioniOrdinanti=data; }, function(err){ utilsSvc.handleHttpError(err); }); } vm.init(); }) .controller("utenteCtrl",function($scope, $mdDialog, utilsSvc, locals){ $scope.utente = angular.copy(locals.utente); $scope.funzioniOrdinanti = locals.funzioniOrdinanti; $scope.utenti = locals.utenti; if ($scope.utente.importoLimiteFirma==null) $scope.importoLimiteFirma = "0,00"; else $scope.importoLimiteFirma = $scope.utente.importoLimiteFirma.formatAsCurrency(); $scope.checkDigit=function(event, len){ if (event.key=="Backspace" || event.key=="ArrowLeft" || event.key=="ArrowRight" || event.key=="Tab") return; if ("0123456789,.".indexOf(event.key)==-1 || event.target.value.length>=len) event.preventDefault(); } $scope.checkImporto = function($event) { var importo = $scope.importoLimiteFirma.toCurrency(); if (importo==null) { utilsSvc.showMessage('Importo non valido'); $scope.importoLimiteFirma = 0; return; } else { $scope.importoLimiteFirma = importo.formatAsCurrency(); } $scope.exitField($event); } $scope.confirmDialog = function(){ if (!$scope.form.$valid) utilsSvc.showMessage("Verificare i dati inseriti") else { if ($scope.datiValidi()) { $scope.utente.importoLimiteFirma=$scope.importoLimiteFirma.toCurrency(); $mdDialog.hide($scope.utente); } } } $scope.cancelDialog=function(){ $mdDialog.cancel(); } $scope.datiValidi=function(){ // verifica che l'utente sia univoco for (var i=0;i<$scope.utenti.length;i++) { if ($scope.utente.id!=$scope.utenti[i].id) if ($scope.utente.userId==$scope.utenti[i].userId && $scope.utente.profiloLocale==$scope.utenti[i].profiloLocale) { utilsSvc.show('Utente già presente '); return false; } } if ($scope.utente.abilitazioneBonifici || $scope.utente.abilitazioneAea || $scope.utente.abilitazioneRid) { if ($scope.utente.profiloLocale!="UO" && $scope.utente.profiloLocale!="UR" && $scope.utente.profiloLocale!="VI") { utilsSvc.show("L'abilitazione alle tipologie è impostabile solo i profili utente Operatore/Responsabile e Visualizzatore"); return false; } } if ($scope.utente.visualizzazioneGlobaleDisposizioni) { if ($scope.utente.profiloLocale!="UO" && $scope.utente.profiloLocale!="UR" && $scope.utente.profiloLocale!="VI") { utilsSvc.show("L'abilitazione alla visualizzazione di tutte le disposizioni è impostabile solo i profili utente Operatore/Responsabile e Visualizzatore"); return false; } } if ($scope.utente.abilitaAccessoAnagrafica) { if ($scope.utente.profiloLocale!="UO" && $scope.utente.profiloLocale!="UR" && $scope.utente.profiloLocale!="TO" && $scope.utente.profiloLocale!="TR" && $scope.utente.profiloLocale!="VI") { utilsSvc.show("L'accesso alla gestione anagrafica è impostabile solo i profili Utente Operatore/Responsabile, di Tesoreria e Visualizzatore"); return false; } } if ($scope.utente.abilitaForzaturaSospeso) { if ($scope.utente.profiloLocale!="UO" && $scope.utente.profiloLocale!="UR" && $scope.utente.profiloLocale!="TO" && $scope.utente.profiloLocale!="TR") { utilsSvc.show("L'accesso alla forzatura sospeso è impostabile solo i profili Utente Operatore/Responsabile e di Tesoreria"); return false; } } if ($scope.utente.abilitaApprovazioneMassiva) { if ($scope.utente.profiloLocale!="UO" && $scope.utente.profiloLocale!="UR") { utilsSvc.show("L'approvazione massiva delle disposizioni è impostabile solo per il profilo 'Utente Responsabile"); return false; } } if ($scope.utente.bloccoModificaDisposizioni) { if ($scope.utente.profiloLocale!="UO" && $scope.utente.profiloLocale!="UR") { utilsSvc.show("L'abilitazione al blocco della modifica disposizioni è impostabile solo i profili Utente Operatore/Responsabile"); return false; } } return true; } }) ;