diff --git a/src/js/controller.js b/src/js/controller.js index d6a36dc..97f19ff 100644 --- a/src/js/controller.js +++ b/src/js/controller.js @@ -1,5 +1,5 @@ angular.module('focaBusquedaProductos') - .controller('modalBusquedaProductosCtrl', + .controller('modalBusquedaProductosCtrl', [ '$timeout', '$filter', @@ -7,7 +7,7 @@ angular.module('focaBusquedaProductos') '$uibModalInstance', 'parametroProducto', 'focaBusquedaProductosService', - function($timeout, $filter, $scope, $uibModalInstance, parametroProducto, + function ($timeout, $filter, $scope, $uibModalInstance, parametroProducto, focaBusquedaProductosService ) { @@ -16,32 +16,31 @@ angular.module('focaBusquedaProductos') $scope.productos = []; $scope.primerBusqueda = false; $scope.searchLoading = false; - // pagination + $scope.soloMostrar = parametroProducto.soloMostrar; + //#region pagination variables $scope.numPerPage = 10; $scope.currentPage = 1; $scope.filteredProductos = []; $scope.currentPageProductos = []; $scope.selectedProducto = -1; + //#endregion - $scope.soloMostrar = parametroProducto.soloMostrar; - //METODOS - $scope.busquedaPress = function(key) { + $scope.busquedaPress = function (key) { if (key === 13) { $scope.searchLoading = true; - if(parametroProducto.idLista > 0) { - focaBusquedaProductosService - .getProductosByIdLista(parametroProducto.idLista, $scope.filters) + if (parametroProducto.idLista > 0) { + focaBusquedaProductosService.getProductosByIdLista(parametroProducto.idLista, $scope.filters) .then(llenarDatos); - } else if(parametroProducto.idLista === -1) { + } else if (parametroProducto.idLista === -1) { focaBusquedaProductosService.getProductos() - .then(llenarDatos); + .then(llenarDatos); } } }; function llenarDatos(res) { - for(var i = 0; i < res.data.length; i++) { - res.data[i].precio = res.data[i].precio / parametroProducto.cotizacion; + for (var i = 0; i < res.data.length; i++) { + res.data[i].precio = res.data[i].precio / parametroProducto.cotizacion; } $scope.searchLoading = false; $scope.primerBusqueda = true; @@ -49,11 +48,11 @@ angular.module('focaBusquedaProductos') $scope.search(true); primera(); } - $scope.search = function(pressed) { - if($scope.productos.length > 0) { + $scope.search = function (pressed) { + if ($scope.productos.length > 0) { $scope.filteredProductos = $filter('filter')( $scope.productos, - {$: $scope.filters} + { $: $scope.filters } ); $scope.lastPage = Math.ceil( @@ -61,20 +60,18 @@ angular.module('focaBusquedaProductos') ); $scope.resetPage(); - }else if(pressed) { - $timeout(function() { + } else if (pressed) { + $timeout(function () { angular.element('#search')[0].focus(); $scope.filters = ''; }); } }; - - $scope.resetPage = function() { + $scope.resetPage = function () { $scope.currentPage = 1; $scope.selectPage(1); }; - - $scope.selectPage = function(page) { + $scope.selectPage = function (page) { var start = (page - 1) * $scope.numPerPage; var end = start + $scope.numPerPage; $scope.paginas = []; @@ -82,22 +79,18 @@ angular.module('focaBusquedaProductos') $scope.currentPageProductos = $scope.filteredProductos.slice(start, end); $scope.currentPage = page; }; - - $scope.select = function(producto) { + $scope.select = function (producto) { $uibModalInstance.close(producto); }; - - $scope.cancel = function() { + $scope.cancel = function () { $uibModalInstance.dismiss('cancel'); }; - - $scope.busquedaDown = function(key) { + $scope.busquedaDown = function (key) { if (key === 40) { primera(key); } }; - - $scope.itemProducto = function(key) { + $scope.itemProducto = function (key) { if (key === 38) { anterior(key); } @@ -115,12 +108,13 @@ angular.module('focaBusquedaProductos') } }; + //#region Paginador function calcularPages(paginaActual) { var paginas = []; paginas.push(paginaActual); if (paginaActual - 1 > 1) { - + paginas.unshift(paginaActual - 1); if (paginaActual - 2 > 1) { paginas.unshift(paginaActual - 2); @@ -143,41 +137,37 @@ angular.module('focaBusquedaProductos') } return paginas; - } - + }; function primera() { $scope.selectedProducto = 0; - } - + }; function anterior() { if ($scope.selectedProducto === 0 && $scope.currentPage > 1) { retrocederPagina(); } else { $scope.selectedProducto--; } - } - + }; function siguiente() { - if ($scope.selectedProducto < $scope.currentPageProductos.length - 1 ) { + if ($scope.selectedProducto < $scope.currentPageProductos.length - 1) { $scope.selectedProducto++; } else { - avanzarPagina(); + avanzarPagina(); } - } - + }; function retrocederPagina() { if ($scope.currentPage > 1) { $scope.selectPage($scope.currentPage - 1); $scope.selectedProducto = $scope.numPerPage - 1; } - } - + }; function avanzarPagina() { if ($scope.currentPage < $scope.lastPage) { $scope.selectPage($scope.currentPage + 1); $scope.selectedProducto = 0; } - } + }; + //#endregion $scope.busquedaPress(13); }