app.controller('tabellaFunzioniCtrl', function($scope,$http,$cookies,$window, $location,$timeout, $mdDialog, $q, $routeParams, $mdBottomSheet, $mdMedia, FunzioniOrdinanti, utilsSvc) { var vm=this; vm.maxItems = 0; vm.itemsPerPage = 100; vm.selectedIndex=-1; vm.records=[]; vm.filter={ filterText: '', orderField:null } vm.setSelected=function(idx) { vm.selectedIndex = idx; } vm.columnWidths=[ 110, //0 150, //1 110, //2 120, //3FunzioneOrdinanFunzioneOrdinantete 120, //4 120, //5 140, //6 180 //7 ]; vm.largeScreen =function(){ return utilsSvc.largeScreen(); } vm.getListHeight = function() { containerHeight = ($window.innerHeight - $('#container').position().top - $('#view').position().top); return {'height': containerHeight + 'px'}; }; vm.getGridItemHeight = function() { return utilsSvc.getGridWithButtonHeight(); } $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;i0) $('#container').css('width',($('#header').width()+96)+'px'); else $('#container').css('width','100%'); return {'width': res+ 'px!important;'} } vm.setOrderField = function(field) { if (vm.filter.orderField!=field) vm.filter.orderField = field; else vm.filter.orderField = "-" +field; vm.getTblFunzioni(); } vm.cancellaFunzione=function(idx,event) { event.preventDefault(); event.stopPropagation(); utilsSvc.showConfirm("Conferma", "Confermi la cancellazione dell'elemento selezionato?") .then(function(res){ FunzioniOrdinanti.Delete({id:vm.records[idx].id}) .$promise.then(function(data){ vm.getTblFunzioni(); }) }) } vm.nuovaFunzione=function(event) { FunzioniOrdinanti.New() .$promise.then(function(data){ vm.records.push(data); vm.editFunzione(vm.records.length-1,event); }) } vm.editFunzione = function(idx, ev) { $mdDialog.show({ targetEvent:ev, templateUrl: 'templates/funzioneOrdinante.html', controller: 'funzioneOrdinanteCtrl', locals: {funzione: vm.records[idx]}, multiple: true }).then(function(res){ FunzioniOrdinanti.save(res).$promise.then( function(res){ if (res==null ||res.value==null || res.value == '') { vm.getTblFunzioni(); utilsSvc.showMessage('Salvataggio modifiche effettuato'); } else { utilsSvc.show(res.value); } }, function(err){ utilsSvc.handleHttpError(err); } ); }); } vm.infiniteItems = { numLoaded_: 0, toLoad_: 0, loading_:false, lastStartIdx:-1, listPromise:null, canceler: $q.defer(), // Required. getItemAtIndex: function(index) { if (vm.maxItems==0 || index>vm.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; }, fetchMoreItems_: function(index) { if (this.toLoad_ < index) { this.toLoad_ += vm.itemsPerPage; utilsSvc.showWaitMessage('Ricerca in corso...'); vm.infiniteItems.loading_ = true; this.listPromise = FunzioniOrdinanti.ListItems({start: vm.records.length,size:Math.max(vm.records.length+index,vm.itemsPerPage),filter: vm.filter.filterText, orderBy: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.getTblFunzioni = function(){ FunzioniOrdinanti.Count({filter:vm.filter.filterText}).$promise.then( function(data){ vm.records=[]; vm.maxItems = data.value; vm.infiniteItems.numLoaded_ = 0; vm.infiniteItems.toLoad_ = 0; } ); } vm.init = function() { vm.getTblFunzioni(); } vm.init(); }) .controller("funzioneOrdinanteCtrl",function($scope, $mdDialog,locals){ $scope.funzione = angular.copy(locals.funzione); if ($scope.funzione.funzioneOrdinante!=null) $scope.funzione.funzioneOrdinante = $scope.funzione.funzioneOrdinante.trim(); if ($scope.funzione.descrizione!=null) $scope.funzione.descrizione = $scope.funzione.descrizione.trim(); $scope.confirmDialog = function(){ $mdDialog.hide($scope.funzione); } $scope.cancelDialog=function(){ $mdDialog.cancel(); } }) ;