From d0964ea1d7e2c5a7022b1d2c2e4ed8cdfdd4e9cb Mon Sep 17 00:00:00 2001 From: Jose Pinto Date: Fri, 8 Feb 2019 11:21:40 -0300 Subject: [PATCH] paginador --- src/js/controller.js | 91 +++++++++++++++++++++++++++++++++++++++-- src/views/foca-crear-login.html | 34 ++++++++++++++- 2 files changed, 119 insertions(+), 6 deletions(-) diff --git a/src/js/controller.js b/src/js/controller.js index fdb853f..290cffb 100644 --- a/src/js/controller.js +++ b/src/js/controller.js @@ -4,10 +4,9 @@ angular.module('focaCrearLogin') function($scope, $timeout, $uibModal, focaCrearLoginService, focaBotoneraLateralService) { config(); - - //METODOS function init() { + $scope.numPerPage = 9; $scope.now = new Date(); $scope.seleccionado = ''; $scope.cuentas = []; @@ -65,7 +64,7 @@ angular.module('focaCrearLogin') var parametros = { cuenta: cuenta, tipo: $scope.seleccionado - } + }; var modalInstance = $uibModal.open( { @@ -86,11 +85,31 @@ angular.module('focaCrearLogin') init(); }, function() {} ); - } + }; + + $scope.selectPage = function(page) { + var start = (page - 1) * $scope.numPerPage; + var end = start + $scope.numPerPage; + $scope.paginas = []; + $scope.paginas = calcularPages(page); + $scope.currentPageUsuarios = + $scope.cuentas.slice(start, end); + $scope.currentPage = page; + }; + + $scope.resetPage = function() { + $scope.currentPage = 1; + $scope.selectPage(1); + }; function setearTabla(datos) { $scope.cuentas = datos.data; + $scope.lastPage = Math.ceil( + $scope.cuentas.length / $scope.numPerPage + ); + $scope.resetPage(); + if ($scope.seleccionado == 'Cobradores' || $scope.seleccionado == 'Vendedores' ) { @@ -107,5 +126,69 @@ angular.module('focaCrearLogin') valor: $scope.seleccionado }); } + + function calcularPages(paginaActual) { + var paginas = []; + paginas.push(paginaActual); + + if(paginaActual - 1 > 1) { + + paginas.unshift(paginaActual - 1); + if(paginaActual - 2 > 1) { + paginas.unshift(paginaActual - 2); + } + } + + if(paginaActual + 1 < $scope.lastPage) { + paginas.push(paginaActual + 1); + if(paginaActual + 2 < $scope.lastPage) { + paginas.push(paginaActual + 2); + } + } + + if(paginaActual !== 1) { + paginas.unshift(1); + } + + if(paginaActual !== $scope.lastPage) { + paginas.push($scope.lastPage); + } + + return paginas; + } + + function primera() { + $scope.selectedUsuarios = 0; + } + + function anterior() { + if ($scope.selectedUsuarios === 0 && $scope.currentPage > 1) { + retrocederPagina(); + } else { + $scope.selectedUsuarios--; + } + } + + function siguiente() { + if ($scope.selectedUsuarios < $scope.currentPageUsuarios.length - 1 ) { + $scope.selectedUsuarios++; + } else { + avanzarPagina(); + } + } + + function retrocederPagina() { + if ($scope.currentPage > 1) { + $scope.selectPage($scope.currentPage - 1); + $scope.selectedUsuarios = $scope.numPerPage - 1; + } + } + + function avanzarPagina() { + if ($scope.currentPage < $scope.lastPage) { + $scope.selectPage($scope.currentPage + 1); + $scope.selectedUsuarios = 0; + } + } } ]); diff --git a/src/views/foca-crear-login.html b/src/views/foca-crear-login.html index 1c5bc11..65800c9 100644 --- a/src/views/foca-crear-login.html +++ b/src/views/foca-crear-login.html @@ -9,7 +9,7 @@
- +
@@ -24,7 +24,7 @@ - + @@ -43,3 +43,33 @@
+
+ +
\ No newline at end of file -- 1.9.1