Commit 66cc512fefbfc77ef600cd3850d3741feadeb548

Authored by Eric Fernandez
Exists in master

Merge branch 'master' into 'master'

Master

See merge request !6
src/js/controller.js
1 angular.module('focaAbmVendedorCobrador') 1 angular.module('focaAbmVendedorCobrador')
2 .controller('focaAbmVendedoresCobradoresController', [ 2 .controller('focaAbmVendedoresCobradoresController', [
3 '$scope', 'focaAbmVendedorCobradorService', '$location', '$filter', 3 '$scope', 'focaAbmVendedorCobradorService', '$location', '$filter',
4 'focaBotoneraLateralService', 'focaModalService', 4 'focaBotoneraLateralService', 'focaModalService',
5 function($scope, focaAbmVendedorCobradorService, $location, $filter, 5 function($scope, focaAbmVendedorCobradorService, $location, $filter,
6 focaBotoneraLateralService, focaModalService) { 6 focaBotoneraLateralService, focaModalService) {
7 7
8 $scope.now = new Date(); 8 $scope.now = new Date();
9 $scope.vendedoresCobradores = []; 9 $scope.vendedoresCobradores = [];
10 $scope.filters = ''; 10 $scope.filters = '';
11 $scope.numPerPage = 10; 11 $scope.numPerPage = 10;
12 $scope.currentPageVendedoresCobradores = []; 12 $scope.currentPageVendedoresCobradores = [];
13 $scope.filteredVendedoresCobradores = []; 13 $scope.vendedoresCobradores = [];
14 14
15 //SETEO BOTONERA LATERAL 15 //SETEO BOTONERA LATERAL
16 focaBotoneraLateralService.showSalir(true); 16 focaBotoneraLateralService.showSalir(true);
17 focaBotoneraLateralService.showPausar(false); 17 focaBotoneraLateralService.showPausar(false);
18 focaBotoneraLateralService.showCancelar(false); 18 focaBotoneraLateralService.showCancelar(false);
19 focaBotoneraLateralService.showGuardar(false); 19 focaBotoneraLateralService.showGuardar(false);
20 20
21 actualizarTabla();
22
23 $scope.editar = function(id) { 21 $scope.editar = function(id) {
24 $location.path('/vendedor-cobrador/' + id); 22 $location.path('/vendedor-cobrador/' + id);
25 }; 23 };
26 24
27 $scope.eliminar = function(vendedorCobrador) { 25 $scope.eliminar = function(vendedorCobrador) {
28 var tipo = vendedorCobrador.ES_COBRADOR ? 'cobrador' : 'vendedor'; 26 var tipo = vendedorCobrador.ES_COBRADOR ? 'cobrador' : 'vendedor';
29 focaModalService.confirm('¿Está seguro que desea borrar el ' + tipo + 27 focaModalService.confirm('¿Está seguro que desea borrar el ' + tipo +
30 ' ' + vendedorCobrador.NomVen + '?') 28 ' ' + vendedorCobrador.NomVen + '?')
31 .then(function(data) { 29 .then(function(data) {
32 if(data) { 30 if(data) {
33 focaAbmVendedorCobradorService 31 focaAbmVendedorCobradorService
34 .eliminarVendedorCobrador(vendedorCobrador.CodVen) 32 .eliminarVendedorCobrador(vendedorCobrador.CodVen)
35 .then(function() { 33 .then(function() {
36 actualizarTabla(); 34 $scope.search(13);
37 }); 35 });
38 } 36 }
39 }); 37 });
40 }; 38 };
41 39
42 $scope.selectPage = function(page) { 40 $scope.selectPage = function(page) {
43 var start = (page - 1) * $scope.numPerPage; 41 var start = (page - 1) * $scope.numPerPage;
44 var end = start + $scope.numPerPage; 42 var end = start + $scope.numPerPage;
45 $scope.paginas = []; 43 $scope.paginas = [];
46 $scope.paginas = calcularPages(page); 44 $scope.paginas = calcularPages(page);
47 $scope.currentPageVendedoresCobradores = 45 $scope.currentPageVendedoresCobradores =
48 $scope.filteredVendedoresCobradores.slice(start, end); 46 $scope.vendedoresCobradores.slice(start, end);
49 $scope.currentPage = page; 47 $scope.currentPage = page;
50 }; 48 };
51 49
52 $scope.resetPage = function() { 50 $scope.resetPage = function() {
53 $scope.currentPage = 1; 51 $scope.currentPage = 1;
54 $scope.selectPage(1); 52 $scope.selectPage(1);
55 }; 53 };
56 54
57 $scope.search = function() { 55 $scope.search = function(key) {
58 $scope.filteredVendedoresCobradores = $filter('filter')( 56 if(key !== 13) return;
59 $scope.vendedoresCobradores, {$: $scope.filters}
60 );
61 57
62 $scope.lastPage = Math.ceil( 58 focaAbmVendedorCobradorService
63 $scope.filteredVendedoresCobradores.length / $scope.numPerPage 59 .getVendedoresCobradores($scope.filters)
64 ); 60 .then(function(res) {
61 $scope.vendedoresCobradores = res.data;
65 62
66 $scope.resetPage(); 63 $scope.lastPage = Math.ceil(
64 $scope.vendedoresCobradores.length / $scope.numPerPage
65 );
66
67 $scope.resetPage();
68 });
67 }; 69 };
68 70
69 function calcularPages(paginaActual) { 71 function calcularPages(paginaActual) {
70 var paginas = []; 72 var paginas = [];
71 paginas.push(paginaActual); 73 paginas.push(paginaActual);
72 74
73 if(paginaActual - 1 > 1) { 75 if(paginaActual - 1 > 1) {
74 76
75 paginas.unshift(paginaActual - 1); 77 paginas.unshift(paginaActual - 1);
76 if(paginaActual - 2 > 1) { 78 if(paginaActual - 2 > 1) {
77 paginas.unshift(paginaActual - 2); 79 paginas.unshift(paginaActual - 2);
78 } 80 }
79 } 81 }
80 82
81 if(paginaActual + 1 < $scope.lastPage) { 83 if(paginaActual + 1 < $scope.lastPage) {
82 paginas.push(paginaActual + 1); 84 paginas.push(paginaActual + 1);
83 if(paginaActual + 2 < $scope.lastPage) { 85 if(paginaActual + 2 < $scope.lastPage) {
84 paginas.push(paginaActual + 2); 86 paginas.push(paginaActual + 2);
85 } 87 }
86 } 88 }
87 89
88 if(paginaActual !== 1) { 90 if(paginaActual !== 1) {
89 paginas.unshift(1); 91 paginas.unshift(1);
90 } 92 }
91 93
92 if(paginaActual !== $scope.lastPage) { 94 if(paginaActual !== $scope.lastPage) {
93 paginas.push($scope.lastPage); 95 paginas.push($scope.lastPage);
94 } 96 }
95 97
96 return paginas; 98 return paginas;
97 } 99 }
98 100
99 function primera() { 101 function primera() {
100 $scope.selectedClientes = 0; 102 $scope.selectedClientes = 0;
101 } 103 }
102 104
103 function anterior() { 105 function anterior() {
104 if ($scope.selectedClientes === 0 && $scope.currentPage > 1) { 106 if ($scope.selectedClientes === 0 && $scope.currentPage > 1) {
105 retrocederPagina(); 107 retrocederPagina();
106 } else { 108 } else {
107 $scope.selectedClientes--; 109 $scope.selectedClientes--;
108 } 110 }
109 } 111 }
110 112
111 function siguiente() { 113 function siguiente() {
112 if ($scope.selectedClientes < $scope.currentPageVendedoresCobradores.length - 1 ) { 114 if ($scope.selectedClientes < $scope.currentPageVendedoresCobradores.length - 1 ) {
113 $scope.selectedClientes++; 115 $scope.selectedClientes++;
114 } else { 116 } else {
115 avanzarPagina(); 117 avanzarPagina();
116 } 118 }
117 } 119 }
118 120
119 function retrocederPagina() { 121 function retrocederPagina() {
120 if ($scope.currentPage > 1) { 122 if ($scope.currentPage > 1) {
121 $scope.selectPage($scope.currentPage - 1); 123 $scope.selectPage($scope.currentPage - 1);
122 $scope.selectedClientes = $scope.numPerPage - 1; 124 $scope.selectedClientes = $scope.numPerPage - 1;
123 } 125 }
124 } 126 }
125 127
126 function avanzarPagina() { 128 function avanzarPagina() {
127 if ($scope.currentPage < $scope.lastPage) { 129 if ($scope.currentPage < $scope.lastPage) {
128 $scope.selectPage($scope.currentPage + 1); 130 $scope.selectPage($scope.currentPage + 1);
129 $scope.selectedClientes = 0; 131 $scope.selectedClientes = 0;
130 } 132 }
131 } 133 }
132
133 function actualizarTabla() {
134 focaAbmVendedorCobradorService.getVendedoresCobradores().then(function(res) {
135 $scope.vendedoresCobradores = res.data;
136 $scope.search();
137 });
138 }
139 } 134 }
140 ]) 135 ])
141 .controller('focaAbmVendedorCobradorController', [ 136 .controller('focaAbmVendedorCobradorController', [
142 '$scope', 'focaAbmVendedorCobradorService', '$routeParams', 'focaBotoneraLateralService', 137 '$scope', 'focaAbmVendedorCobradorService', '$routeParams', 'focaBotoneraLateralService',
143 '$timeout', '$uibModal', '$location', 'focaModalService', 138 '$timeout', '$uibModal', '$location', 'focaModalService',
144 function($scope, focaAbmVendedorCobradorService, $routeParams, focaBotoneraLateralService, 139 function($scope, focaAbmVendedorCobradorService, $routeParams, focaBotoneraLateralService,
145 $timeout, $uibModal, $location, focaModalService) { 140 $timeout, $uibModal, $location, focaModalService) {
146 141
147 $scope.now = new Date(); 142 $scope.now = new Date();
148 $scope.focused = 0; 143 $scope.focused = 0;
149 $scope.vendedorCobrador = { 144 $scope.vendedorCobrador = {
150 CodVen: 0, 145 CodVen: 0,
151 ES_COBRADOR: false, 146 ES_COBRADOR: false,
152 DNI: ' ', 147 DNI: ' ',
153 ClaVen: '', 148 ClaVen: '',
154 ComVen: '0.00', 149 ComVen: '0.00',
155 provincia: { 150 provincia: {
156 NOMBRE: '' 151 NOMBRE: ''
157 }, 152 },
158 localidad: { 153 localidad: {
159 NOMBRE: ' ' 154 NOMBRE: ' '
160 } 155 }
161 }; 156 };
162 $scope.options = [ 157 $scope.options = [
163 { 158 {
164 label: 'Vendedor', 159 label: 'Vendedor',
165 value: null 160 value: null
166 }, 161 },
167 { 162 {
168 label: 'Cobrador', 163 label: 'Cobrador',
169 value: true 164 value: true
170 } 165 }
171 ]; 166 ];
172 //SETEO BOTONERA LATERAL 167 //SETEO BOTONERA LATERAL
173 $timeout(function() { 168 $timeout(function() {
174 focaBotoneraLateralService.showSalir(false); 169 focaBotoneraLateralService.showSalir(false);
175 focaBotoneraLateralService.showPausar(true); 170 focaBotoneraLateralService.showPausar(true);
176 focaBotoneraLateralService.showCancelar(false); 171 focaBotoneraLateralService.showCancelar(false);
177 focaBotoneraLateralService.showGuardar(true, $scope.guardar); 172 focaBotoneraLateralService.showGuardar(true, $scope.guardar);
178 focaBotoneraLateralService.addCustomButton('Salir', $scope.cancelar); 173 focaBotoneraLateralService.addCustomButton('Salir', $scope.cancelar);
179 }); 174 });
180 175
181 focaAbmVendedorCobradorService 176 focaAbmVendedorCobradorService
182 .getVendedorCobradorById($routeParams.id) 177 .getVendedorCobradorById($routeParams.id)
183 .then(function(res) { 178 .then(function(res) {
184 if(res.data){ 179 if(res.data){
185 $scope.vendedorCobrador = res.data; 180 $scope.vendedorCobrador = res.data;
186 delete $scope.vendedorCobrador.FCVEN; 181 delete $scope.vendedorCobrador.FCVEN;
187 delete $scope.vendedorCobrador.FEC; 182 delete $scope.vendedorCobrador.FEC;
188 } 183 }
189 }); 184 });
190 185
191 $scope.guardar = function() { 186 $scope.guardar = function() {
192 if($scope.vendedorCobrador.ClaVen !== $scope.vendedorCobrador.ClaVen2) { 187 if($scope.vendedorCobrador.ClaVen !== $scope.vendedorCobrador.ClaVen2) {
193 focaModalService.alert('Las contraseñas deben coincidir'); 188 focaModalService.alert('Las contraseñas deben coincidir');
194 return; 189 return;
195 } 190 }
196 $scope.vendedorCobrador.PciVen = $scope.vendedorCobrador.provincia.ID; 191 $scope.vendedorCobrador.PciVen = $scope.vendedorCobrador.provincia.ID;
197 $scope.vendedorCobrador.LocVen = $scope.vendedorCobrador.localidad.ID; 192 $scope.vendedorCobrador.LocVen = $scope.vendedorCobrador.localidad.ID;
198 193
199 delete $scope.vendedorCobrador.provincia; 194 delete $scope.vendedorCobrador.provincia;
200 delete $scope.vendedorCobrador.localidad; 195 delete $scope.vendedorCobrador.localidad;
201 delete $scope.vendedorCobrador.ClaVen2; 196 delete $scope.vendedorCobrador.ClaVen2;
202 197
203 focaAbmVendedorCobradorService 198 focaAbmVendedorCobradorService
204 .guardarVendedorCobrador($scope.vendedorCobrador) 199 .guardarVendedorCobrador($scope.vendedorCobrador)
205 .then(function() { 200 .then(function() {
206 $location.path('/vendedor-cobrador'); 201 $location.path('/vendedor-cobrador');
207 }); 202 });
208 }; 203 };
209 204
210 $scope.seleccionarProvincia = function(key) { 205 $scope.seleccionarProvincia = function(key) {
211 if(key === 13) { 206 if(key === 13) {
212 var modalInstance = $uibModal.open( 207 var modalInstance = $uibModal.open(
213 { 208 {
214 ariaLabelledBy: 'Búsqueda de provincias', 209 ariaLabelledBy: 'Búsqueda de provincias',
215 templateUrl: 'modal-provincias.html', 210 templateUrl: 'modal-provincias.html',
216 controller: 'focaModalProvinciaController', 211 controller: 'focaModalProvinciaController',
217 size: 'md', 212 size: 'md',
218 resolve: { 213 resolve: {
219 filters: function() { 214 filters: function() {
220 return $scope.vendedorCobrador.provincia.NOMBRE; 215 return $scope.vendedorCobrador.provincia.NOMBRE;
221 } 216 }
222 } 217 }
223 } 218 }
224 ); 219 );
225 modalInstance.result.then(function(provincia) { 220 modalInstance.result.then(function(provincia) {
226 $scope.vendedorCobrador.provincia = provincia; 221 $scope.vendedorCobrador.provincia = provincia;
227 $timeout(function() { 222 $timeout(function() {
228 $scope.focused = 5; 223 $scope.focused = 5;
229 }); 224 });
230 }, function() { 225 }, function() {
231 //TODO: función llamada cuando cancela el modal 226 //TODO: función llamada cuando cancela el modal
232 }); 227 });
233 } 228 }
234 }; 229 };
235 $scope.seleccionarLocalidad = function(key) { 230 $scope.seleccionarLocalidad = function(key) {
236 if(!$scope.vendedorCobrador.provincia.ID) { 231 if(!$scope.vendedorCobrador.provincia.ID) {
237 focaModalService.alert('Seleccione una provincia'); 232 focaModalService.alert('Seleccione una provincia');
238 return; 233 return;
239 } 234 }
240 if(key === 13) { 235 if(key === 13) {
241 var modalInstance = $uibModal.open( 236 var modalInstance = $uibModal.open(
242 { 237 {
243 ariaLabelledBy: 'Búsqueda de localidades', 238 ariaLabelledBy: 'Búsqueda de localidades',
244 templateUrl: 'modal-localidades.html', 239 templateUrl: 'modal-localidades.html',
245 controller: 'focaModalLocalidadController', 240 controller: 'focaModalLocalidadController',
246 size: 'md', 241 size: 'md',
247 resolve: { 242 resolve: {
248 filters: { 243 filters: {
249 idProvincia: $scope.vendedorCobrador.provincia.ID, 244 idProvincia: $scope.vendedorCobrador.provincia.ID,
250 busqueda: $scope.vendedorCobrador.localidad.NOMBRE 245 busqueda: $scope.vendedorCobrador.localidad.NOMBRE
251 } 246 }
252 } 247 }
253 } 248 }
254 ); 249 );
255 modalInstance.result.then(function(localidad) { 250 modalInstance.result.then(function(localidad) {
256 $scope.vendedorCobrador.localidad = localidad; 251 $scope.vendedorCobrador.localidad = localidad;
257 $timeout(function() { 252 $timeout(function() {
258 $scope.focused = 6; 253 $scope.focused = 6;
259 }); 254 });
260 }, function() { 255 }, function() {
261 //TODO: función llamada cuando cancela el modal 256 //TODO: función llamada cuando cancela el modal
262 }); 257 });
263 } 258 }
264 }; 259 };
265 260
266 $scope.cancelar = function() { 261 $scope.cancelar = function() {
267 $location.path('/vendedor-cobrador'); 262 $location.path('/vendedor-cobrador');
268 }; 263 };
269 264
1 angular.module('focaAbmVendedorCobrador') 1 angular.module('focaAbmVendedorCobrador')
2 .factory('focaAbmVendedorCobradorService', ['$http', 'API_ENDPOINT', function($http, API_ENDPOINT) { 2 .factory('focaAbmVendedorCobradorService', ['$http', 'API_ENDPOINT', function($http, API_ENDPOINT) {
3 return { 3 return {
4 getVendedoresCobradores: function() { 4 getVendedoresCobradores: function(nombre) {
5 return $http.get(API_ENDPOINT.URL + '/vendedor-cobrador'); 5 return $http.post(API_ENDPOINT.URL + '/vendedor-cobrador/list', {nombre: nombre});
6 }, 6 },
7 getVendedorCobradorById: function(id) { 7 getVendedorCobradorById: function(id) {
8 return $http.get(API_ENDPOINT.URL + '/vendedor-cobrador/' + id); 8 return $http.get(API_ENDPOINT.URL + '/vendedor-cobrador/' + id);
9 }, 9 },
10 guardarVendedorCobrador: function(vendedorCobrador) { 10 guardarVendedorCobrador: function(vendedorCobrador) {
11 return $http.post(API_ENDPOINT.URL + '/vendedor-cobrador', 11 return $http.post(API_ENDPOINT.URL + '/vendedor-cobrador',
12 {vendedorCobrador: vendedorCobrador}); 12 {vendedorCobrador: vendedorCobrador});
13 }, 13 },
14 eliminarVendedorCobrador: function(id) { 14 eliminarVendedorCobrador: function(id) {
15 return $http.delete(API_ENDPOINT.URL + '/vendedor-cobrador/' + id); 15 return $http.delete(API_ENDPOINT.URL + '/vendedor-cobrador/' + id);
16 } 16 }
17 }; 17 };
18 }]); 18 }]);
19 19
src/views/foca-abm-vendedor-cobrador-listado.html
1 <div class="row"> 1 <div class="row">
2 <foca-cabecera-facturador 2 <foca-cabecera-facturador
3 titulo="'Vendedores / Cobradores'" 3 titulo="'Vendedores / Cobradores'"
4 fecha="now" 4 fecha="now"
5 class="mb-0 col-lg-12" 5 class="mb-0 col-lg-12"
6 ></foca-cabecera-facturador> 6 ></foca-cabecera-facturador>
7 </div> 7 </div>
8 <div class="row"> 8 <div class="row">
9 <div class="col-12 col-md-10 p-0 mt-4 border border-white rounded"> 9 <div class="col-12 col-md-10 p-0 mt-4 border border-white rounded">
10 <div class="form-group input-group mt-3 px-5"> 10 <div class="form-group input-group mt-3 px-5">
11 <input 11 <input
12 type="text" 12 type="text"
13 class="form-control form-control-sm" 13 class="form-control form-control-sm"
14 id="search" 14 id="search"
15 placeholder="Búsqueda" 15 placeholder="Búsqueda"
16 teclado-virtual 16 teclado-virtual
17 ng-change="search()" 17 ng-keypress="search($event.keyCode)"
18 ng-model="filters" 18 ng-model="filters"
19 /> 19 />
20 <div class="input-group-append"> 20 <div class="input-group-append">
21 <button 21 <button
22 ladda="searchLoading" 22 ladda="searchLoading"
23 class="btn btn-outline-secondary" 23 class="btn btn-outline-secondary"
24 type="button" 24 type="button"
25 ng-click="busquedaPress(13)" 25 ng-click="search(13)"
26 > 26 >
27 <i class="fa fa-search" aria-hidden="true"></i> 27 <i class="fa fa-search" aria-hidden="true"></i>
28 </button> 28 </button>
29 </div> 29 </div>
30 </div> 30 </div>
31 <table class="table table-default table-hover table-sm table-abm table-striped mb-0"> 31 <table class="table table-default table-hover table-sm table-abm table-striped mb-0">
32 <thead> 32 <thead>
33 <tr> 33 <tr>
34 <th class="text-center">Código</th> 34 <th class="text-center">Código</th>
35 <th>Nombre</th> 35 <th>Nombre</th>
36 <th>Tipo</th> 36 <th>Tipo</th>
37 <th class="text-center"> 37 <th class="text-center">
38 <button 38 <button
39 class="btn btn-outline-debo boton-accion" 39 class="btn btn-outline-debo boton-accion"
40 title="Agregar" 40 title="Agregar"
41 ng-click="editar(0)" 41 ng-click="editar(0)"
42 ><i class="fa fa-plus"></i> 42 ><i class="fa fa-plus"></i>
43 </button> 43 </button>
44 </th> 44 </th>
45 </tr> 45 </tr>
46 </thead> 46 </thead>
47 <tbody> 47 <tbody>
48 <tr ng-repeat="vendedorCobrador in currentPageVendedoresCobradores"> 48 <tr ng-repeat="vendedorCobrador in currentPageVendedoresCobradores">
49 <td ng-bind="vendedorCobrador.CodVen" class="text-center"></td> 49 <td ng-bind="vendedorCobrador.CodVen" class="text-center"></td>
50 <td ng-bind="vendedorCobrador.NomVen"></td> 50 <td ng-bind="vendedorCobrador.NomVen"></td>
51 <td ng-bind="vendedorCobrador.ES_COBRADOR ? 'Cobrador' : 'Vendedor'"></td> 51 <td ng-bind="vendedorCobrador.ES_COBRADOR ? 'Cobrador' : 'Vendedor'"></td>
52 <td class="text-center"> 52 <td class="text-center">
53 <button 53 <button
54 class="btn btn-outline-dark boton-accion" 54 class="btn btn-outline-dark boton-accion"
55 title="Editar" 55 title="Editar"
56 ng-click="editar(vendedorCobrador.CodVen)" 56 ng-click="editar(vendedorCobrador.CodVen)"
57 > 57 >
58 <i class="fa fa-pencil"></i> 58 <i class="fa fa-pencil"></i>
59 </button> 59 </button>
60 <button 60 <button
61 class="btn btn-outline-dark boton-accion" 61 class="btn btn-outline-dark boton-accion"
62 title="Eliminar" 62 title="Eliminar"
63 ng-click="eliminar(vendedorCobrador)" 63 ng-click="eliminar(vendedorCobrador)"
64 > 64 >
65 <i class="fa fa-trash"></i> 65 <i class="fa fa-trash"></i>
66 </button> 66 </button>
67 </td> 67 </td>
68 </tr> 68 </tr>
69 </body> 69 </body>
70 </table> 70 </table>
71 </div> 71 </div>
72 </div> 72 </div>
73 <div class="row"> 73 <div class="row">
74 <nav ng-show="currentPageVendedoresCobradores.length > 0" class="mr-auto"> 74 <nav ng-show="currentPageVendedoresCobradores.length > 0" class="mr-auto">
75 <ul class="pagination pagination-sm mb-0"> 75 <ul class="pagination pagination-sm mb-0">
76 <li class="page-item" ng-class="{'disabled': currentPage == 1}"> 76 <li class="page-item" ng-class="{'disabled': currentPage == 1}">
77 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage - 1)"> 77 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage - 1)">
78 <span aria-hidden="true">&laquo;</span> 78 <span aria-hidden="true">&laquo;</span>
79 <span class="sr-only">Anterior</span> 79 <span class="sr-only">Anterior</span>
80 </a> 80 </a>
81 </li> 81 </li>
82 <li 82 <li
83 class="page-item" 83 class="page-item"
84 ng-repeat="pagina in paginas" 84 ng-repeat="pagina in paginas"
85 ng-class="{'active': pagina == currentPage}" 85 ng-class="{'active': pagina == currentPage}"
86 > 86 >
87 <a 87 <a
88 class="page-link" 88 class="page-link"
89 href="javascript:void()" 89 href="javascript:void()"
90 ng-click="selectPage(pagina)" 90 ng-click="selectPage(pagina)"
91 ng-bind="pagina" 91 ng-bind="pagina"
92 ></a> 92 ></a>
93 </li> 93 </li>
94 <li class="page-item" ng-class="{'disabled': currentPage == lastPage}"> 94 <li class="page-item" ng-class="{'disabled': currentPage == lastPage}">
95 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage + 1)"> 95 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage + 1)">
96 <span aria-hidden="true">&raquo;</span> 96 <span aria-hidden="true">&raquo;</span>
97 <span class="sr-only">Siguiente</span> 97 <span class="sr-only">Siguiente</span>
98 </a> 98 </a>
99 </li> 99 </li>
100 </ul> 100 </ul>
101 </nav> 101 </nav>
102 </div> 102 </div>
103 103