Commit 64133df734c6733ea86f067db6117bcaeb5e9f6d

Authored by Eric Fernandez
1 parent b24e6bf3c0
Exists in master

espacio

Showing 1 changed file with 1 additions and 1 deletions   Show diff stats
src/js/controller.js
1 angular.module('focaModalLocalidad') 1 angular.module('focaModalLocalidad')
2 .controller('focaModalLocalidadController', [ 2 .controller('focaModalLocalidadController', [
3 '$timeout', 3 '$timeout',
4 '$filter', 4 '$filter',
5 '$scope', 5 '$scope',
6 '$uibModalInstance', 6 '$uibModalInstance',
7 'focaModalLocalidadService', 7 'focaModalLocalidadService',
8 'filters', 8 'filters',
9 function($timeout, $filter, $scope, $uibModalInstance, focaModalLocalidadService, filters) { 9 function($timeout, $filter, $scope, $uibModalInstance, focaModalLocalidadService, filters) {
10 10
11 $scope.filters = filters.busqueda; 11 $scope.filters = filters.busqueda;
12 $scope.provincias = []; 12 $scope.provincias = [];
13 $scope.primerBusqueda = false; 13 $scope.primerBusqueda = false;
14 $scope.searchLoading = false; 14 $scope.searchLoading = false;
15 // pagination 15 // pagination
16 $scope.numPerPage = 10; 16 $scope.numPerPage = 10;
17 $scope.currentPage = 1; 17 $scope.currentPage = 1;
18 $scope.filteredLocalidades = []; 18 $scope.filteredLocalidades = [];
19 $scope.currentPageLocalidades = []; 19 $scope.currentPageLocalidades = [];
20 $scope.selectedLocalidades = -1; 20 $scope.selectedLocalidades = -1;
21 21
22 $scope.busquedaPress = function(key) { 22 $scope.busquedaPress = function(key) {
23 if (key === 13) { 23 if (key === 13) {
24 $scope.searchLoading = true; 24 $scope.searchLoading = true;
25 focaModalLocalidadService.getLocalidadesByIdProvincia(filters.idProvincia) 25 focaModalLocalidadService.getLocalidadesByIdProvincia(filters.idProvincia)
26 .then( 26 .then(
27 function(res) { 27 function(res) {
28 $scope.searchLoading = false; 28 $scope.searchLoading = false;
29 $scope.primerBusqueda = true; 29 $scope.primerBusqueda = true;
30 $scope.provincias = res.data; 30 $scope.provincias = res.data;
31 $scope.search(true); 31 $scope.search(true);
32 primera(); 32 primera();
33 } 33 }
34 ); 34 );
35 } 35 }
36 }; 36 };
37 37
38 $scope.search = function(pressed) { 38 $scope.search = function(pressed) {
39 if($scope.provincias.length > 0) { 39 if($scope.provincias.length > 0) {
40 $scope.filteredLocalidades = $filter('filter')( 40 $scope.filteredLocalidades = $filter('filter')(
41 $scope.provincias, { $: $scope.filters } 41 $scope.provincias, { $: $scope.filters }
42 ); 42 );
43 43
44 if(pressed && $scope.filteredLocalidades.length === 0){ 44 if(pressed && $scope.filteredLocalidades.length === 0) {
45 $timeout(function() { 45 $timeout(function() {
46 angular.element('#search')[0].focus(); 46 angular.element('#search')[0].focus();
47 $scope.filters = ''; 47 $scope.filters = '';
48 }); 48 });
49 } 49 }
50 50
51 $scope.lastPage = Math.ceil( 51 $scope.lastPage = Math.ceil(
52 $scope.filteredLocalidades.length / $scope.numPerPage 52 $scope.filteredLocalidades.length / $scope.numPerPage
53 ); 53 );
54 $scope.resetPage(); 54 $scope.resetPage();
55 } 55 }
56 }; 56 };
57 57
58 $scope.resetPage = function() { 58 $scope.resetPage = function() {
59 $scope.currentPage = 1; 59 $scope.currentPage = 1;
60 $scope.selectPage(1); 60 $scope.selectPage(1);
61 }; 61 };
62 62
63 $scope.selectPage = function(page) { 63 $scope.selectPage = function(page) {
64 var start = (page - 1) * $scope.numPerPage; 64 var start = (page - 1) * $scope.numPerPage;
65 var end = start + $scope.numPerPage; 65 var end = start + $scope.numPerPage;
66 $scope.paginas = []; 66 $scope.paginas = [];
67 $scope.paginas = calcularPages(page); 67 $scope.paginas = calcularPages(page);
68 $scope.currentPageLocalidades = $scope.filteredLocalidades.slice(start, end); 68 $scope.currentPageLocalidades = $scope.filteredLocalidades.slice(start, end);
69 $scope.currentPage = page; 69 $scope.currentPage = page;
70 }; 70 };
71 71
72 $scope.select = function(vendedor) { 72 $scope.select = function(vendedor) {
73 $uibModalInstance.close(vendedor); 73 $uibModalInstance.close(vendedor);
74 }; 74 };
75 75
76 $scope.cancel = function() { 76 $scope.cancel = function() {
77 $uibModalInstance.dismiss('cancel'); 77 $uibModalInstance.dismiss('cancel');
78 }; 78 };
79 79
80 $scope.busquedaDown = function(key) { 80 $scope.busquedaDown = function(key) {
81 if (key === 40) { 81 if (key === 40) {
82 primera(key); 82 primera(key);
83 } 83 }
84 }; 84 };
85 85
86 $scope.itemLocalidad = function(key) { 86 $scope.itemLocalidad = function(key) {
87 if (key === 38) { 87 if (key === 38) {
88 anterior(key); 88 anterior(key);
89 } 89 }
90 90
91 if (key === 40) { 91 if (key === 40) {
92 siguiente(key); 92 siguiente(key);
93 } 93 }
94 94
95 if (key === 37) { 95 if (key === 37) {
96 retrocederPagina(); 96 retrocederPagina();
97 } 97 }
98 98
99 if (key === 39) { 99 if (key === 39) {
100 avanzarPagina(); 100 avanzarPagina();
101 } 101 }
102 }; 102 };
103 103
104 function calcularPages(paginaActual) { 104 function calcularPages(paginaActual) {
105 var paginas = []; 105 var paginas = [];
106 paginas.push(paginaActual); 106 paginas.push(paginaActual);
107 107
108 if (paginaActual - 1 > 1) { 108 if (paginaActual - 1 > 1) {
109 109
110 paginas.unshift(paginaActual - 1); 110 paginas.unshift(paginaActual - 1);
111 if (paginaActual - 2 > 1) { 111 if (paginaActual - 2 > 1) {
112 paginas.unshift(paginaActual - 2); 112 paginas.unshift(paginaActual - 2);
113 } 113 }
114 } 114 }
115 115
116 if (paginaActual + 1 < $scope.lastPage) { 116 if (paginaActual + 1 < $scope.lastPage) {
117 paginas.push(paginaActual + 1); 117 paginas.push(paginaActual + 1);
118 if (paginaActual + 2 < $scope.lastPage) { 118 if (paginaActual + 2 < $scope.lastPage) {
119 paginas.push(paginaActual + 2); 119 paginas.push(paginaActual + 2);
120 } 120 }
121 } 121 }
122 122
123 if (paginaActual !== 1) { 123 if (paginaActual !== 1) {
124 paginas.unshift(1); 124 paginas.unshift(1);
125 } 125 }
126 126
127 if (paginaActual !== $scope.lastPage) { 127 if (paginaActual !== $scope.lastPage) {
128 paginas.push($scope.lastPage); 128 paginas.push($scope.lastPage);
129 } 129 }
130 130
131 return paginas; 131 return paginas;
132 } 132 }
133 133
134 function primera() { 134 function primera() {
135 $scope.selectedLocalidades = 0; 135 $scope.selectedLocalidades = 0;
136 } 136 }
137 137
138 function anterior() { 138 function anterior() {
139 if ($scope.selectedLocalidades === 0 && $scope.currentPage > 1) { 139 if ($scope.selectedLocalidades === 0 && $scope.currentPage > 1) {
140 retrocederPagina(); 140 retrocederPagina();
141 } else { 141 } else {
142 $scope.selectedLocalidades--; 142 $scope.selectedLocalidades--;
143 } 143 }
144 } 144 }
145 145
146 function siguiente() { 146 function siguiente() {
147 if ($scope.selectedLocalidades < $scope.currentPageLocalidades.length - 1) { 147 if ($scope.selectedLocalidades < $scope.currentPageLocalidades.length - 1) {
148 $scope.selectedLocalidades++; 148 $scope.selectedLocalidades++;
149 } else { 149 } else {
150 avanzarPagina(); 150 avanzarPagina();
151 } 151 }
152 } 152 }
153 153
154 function retrocederPagina() { 154 function retrocederPagina() {
155 if ($scope.currentPage > 1) { 155 if ($scope.currentPage > 1) {
156 $scope.selectPage($scope.currentPage - 1); 156 $scope.selectPage($scope.currentPage - 1);
157 $scope.selectedLocalidades = $scope.numPerPage - 1; 157 $scope.selectedLocalidades = $scope.numPerPage - 1;
158 } 158 }
159 } 159 }
160 160
161 function avanzarPagina() { 161 function avanzarPagina() {
162 if ($scope.currentPage < $scope.lastPage) { 162 if ($scope.currentPage < $scope.lastPage) {
163 $scope.selectPage($scope.currentPage + 1); 163 $scope.selectPage($scope.currentPage + 1);
164 $scope.selectedLocalidades = 0; 164 $scope.selectedLocalidades = 0;
165 } 165 }
166 } 166 }
167 167
168 $scope.busquedaPress(13); 168 $scope.busquedaPress(13);
169 }] 169 }]
170 ); 170 );
171 171