Commit d5cb584de9f84828366c9d97d0a0911b240b7847

Authored by Eric Fernandez
Exists in master and in 1 other branch develop

Merge branch 'master' into 'master'

Calendario bootstrap

See merge request !2
1 { 1 {
2 "name": "foca-modal-cobranza", 2 "name": "foca-modal-cobranza",
3 "version": "0.0.1", 3 "version": "0.0.1",
4 "description": "foca-modal-cobranza", 4 "description": "foca-modal-cobranza",
5 "main": "index.js", 5 "main": "index.js",
6 "scripts": { 6 "scripts": {
7 "test": "echo \"Error: no test specified\" && exit 1", 7 "test": "echo \"Error: no test specified\" && exit 1",
8 "gulp-pre-commit": "gulp pre-commit", 8 "gulp-pre-commit": "gulp pre-commit",
9 "compile": "gulp uglify", 9 "compile": "gulp uglify",
10 "postinstall": "npm run compile && gulp clean-post-install", 10 "postinstall": "npm run compile && gulp clean-post-install",
11 "install-dev": "npm install -D --ignore-scripts" 11 "install-dev": "npm install -D --ignore-scripts"
12 }, 12 },
13 "pre-commit": [ 13 "pre-commit": [
14 "gulp-pre-commit" 14 "gulp-pre-commit"
15 ], 15 ],
16 "repository": { 16 "repository": {
17 "type": "git", 17 "type": "git",
18 "url": "git@debonline.dyndns.org:npm/foca-modal-cobranza.git" 18 "url": "git@debonline.dyndns.org:npm/foca-modal-cobranza.git"
19 }, 19 },
20 "author": "Foca Software", 20 "author": "Foca Software",
21 "license": "ISC", 21 "license": "ISC",
22 "devDependencies": { 22 "devDependencies": {
23 "angular": "^1.7.5", 23 "angular": "^1.7.5",
24 "angular-ladda": "^0.4.3", 24 "angular-ladda": "^0.4.3",
25 "angular-route": "^1.7.5", 25 "angular-route": "^1.7.5",
26 "bootstrap": "^4.1.3", 26 "bootstrap": "^4.1.3",
27 "foca-directivas": "git+ssh://git@git.focasoftware.com:npm/foca-directivas", 27 "foca-directivas": "git+http://git.focasoftware.com/npm/foca-directivas.git",
28 "foca-filtros": "git+ssh://git@git.focasoftware.com:npm/foca-filtros", 28 "foca-filtros": "git+http://git.focasoftware.com/npm/foca-filtros.git",
29 "font-awesome": "^4.7.0", 29 "font-awesome": "^4.7.0",
30 "gulp": "^3.9.1", 30 "gulp": "^3.9.1",
31 "gulp-angular-templatecache": "^2.2.5", 31 "gulp-angular-templatecache": "^2.2.5",
32 "gulp-clean": "^0.4.0", 32 "gulp-clean": "^0.4.0",
33 "gulp-concat": "^2.6.1", 33 "gulp-concat": "^2.6.1",
34 "gulp-connect": "^5.7.0", 34 "gulp-connect": "^5.7.0",
35 "gulp-htmlmin": "^5.0.1", 35 "gulp-htmlmin": "^5.0.1",
36 "gulp-jshint": "^2.1.0", 36 "gulp-jshint": "^2.1.0",
37 "gulp-rename": "^1.4.0", 37 "gulp-rename": "^1.4.0",
38 "gulp-replace": "^1.0.0", 38 "gulp-replace": "^1.0.0",
39 "gulp-sequence": "^1.0.0", 39 "gulp-sequence": "^1.0.0",
40 "gulp-uglify": "^3.0.1", 40 "gulp-uglify": "^3.0.1",
41 "gulp-uglify-es": "^1.0.4", 41 "gulp-uglify-es": "^1.0.4",
42 "jquery": "^3.3.1", 42 "jquery": "^3.3.1",
43 "jshint": "^2.9.7", 43 "jshint": "^2.9.7",
44 "ladda": "^1.0.6", 44 "ladda": "^1.0.6",
45 "pre-commit": "^1.2.2", 45 "pre-commit": "^1.2.2",
46 "pump": "^3.0.0", 46 "pump": "^3.0.0",
47 "ui-bootstrap4": "^3.0.5" 47 "ui-bootstrap4": "^3.0.5"
48 } 48 }
49 } 49 }
50 50
src/js/controller.js
1 angular.module('focaModalCobranza') 1 angular.module('focaModalCobranza')
2 .controller('focaModalCobranzaController', 2 .controller('focaModalCobranzaController',
3 [ 3 [
4 '$timeout', 4 '$timeout',
5 '$filter', 5 '$filter',
6 '$scope', 6 '$scope',
7 '$uibModalInstance', 7 '$uibModalInstance',
8 'focaModalCobranzaService', 8 'focaModalCobranzaService',
9 function($timeout, $filter, $scope, $uibModalInstance, focaModalCobranzaService) { 9 function($timeout, $filter, $scope, $uibModalInstance, focaModalCobranzaService) {
10 var fecha = new Date(); 10 var fecha = new Date();
11 $scope.fechaHasta = new Date(); 11 $scope.fechaHasta = new Date();
12 $scope.fechaDesde = new Date(fecha.setMonth(fecha.getMonth() - 1)); 12 $scope.fechaDesde = new Date(fecha.setMonth(fecha.getMonth() - 1));
13 $scope.filters = ''; 13 $scope.filters = '';
14 $scope.cobranzas = []; 14 $scope.cobranzas = [];
15 $scope.primerBusqueda = false; 15 $scope.primerBusqueda = false;
16 $scope.searchLoading = false; 16 $scope.searchLoading = false;
17 // pagination 17 // pagination
18 $scope.numPerPage = 10; 18 $scope.numPerPage = 10;
19 $scope.currentPage = 1; 19 $scope.currentPage = 1;
20 $scope.filteredCobranzas = []; 20 $scope.filteredCobranzas = [];
21 $scope.currentPageCobranzas = []; 21 $scope.currentPageCobranzas = [];
22 $scope.selectedCobranza = -1; 22 $scope.selectedCobranza = -1;
23 $scope.dateOptions = {
24 maxDate: new Date()
25 };
23 26
24 //METODOS 27 //METODOS
25 $scope.busquedaPress = function(key) { 28 $scope.busquedaPress = function(key) {
26 if (key === 13) { 29 if (key === 13) {
27 //TODO Validaciones con alertas de foca 30 //TODO Validaciones con alertas de foca
28 if(!$scope.fechaDesde) { 31 if(!$scope.fechaDesde) {
29 alert('INGRESE FECHA DESDE'); 32 alert('INGRESE FECHA DESDE');
30 return; 33 return;
31 } 34 }
32 if(!$scope.fechaHasta) { 35 if(!$scope.fechaHasta) {
33 alert('INGRESE FECHA HASTA'); 36 alert('INGRESE FECHA HASTA');
34 return; 37 return;
35 } 38 }
36 if($scope.fechaDesde > $scope.fechaHasta) { 39 if($scope.fechaDesde > $scope.fechaHasta) {
37 alert('La fecha desde no puede ser mayor a la fecha hasta'); 40 alert('La fecha desde no puede ser mayor a la fecha hasta');
38 return; 41 return;
39 } 42 }
40 $scope.searchLoading = true; 43 $scope.searchLoading = true;
41 //TODO: usar filtros en vez de toISOString 44 //TODO: usar filtros en vez de toISOString
42 focaModalCobranzaService 45 focaModalCobranzaService
43 .getCobranzas($scope.fechaDesde.toISOString().split('.')[0], 46 .getCobranzas($scope.fechaDesde.toISOString().split('.')[0],
44 $scope.fechaHasta.toISOString().split('.')[0]) 47 $scope.fechaHasta.toISOString().split('.')[0])
45 .then(llenarDatos); 48 .then(llenarDatos);
46 } 49 }
47 }; 50 };
48 function llenarDatos(res) { 51 function llenarDatos(res) {
49 $scope.cobranzas = []; 52 $scope.cobranzas = [];
50 $scope.filteredCobranzas = []; 53 $scope.filteredCobranzas = [];
51 $scope.currentPageCobranzas = []; 54 $scope.currentPageCobranzas = [];
52 $scope.selectedCobranza = -1; 55 $scope.selectedCobranza = -1;
53 $scope.searchLoading = false; 56 $scope.searchLoading = false;
54 $scope.primerBusqueda = true; 57 $scope.primerBusqueda = true;
55 $scope.cobranzas = res.data; 58 $scope.cobranzas = res.data;
56 $scope.search(true); 59 $scope.search(true);
57 primera(); 60 primera();
58 } 61 }
59 $scope.search = function(pressed) { 62 $scope.search = function(pressed) {
60 if($scope.cobranzas.length > 0) { 63 if($scope.cobranzas.length > 0) {
61 $scope.filteredCobranzas = $filter('filter')( 64 $scope.filteredCobranzas = $filter('filter')(
62 $scope.cobranzas, 65 $scope.cobranzas,
63 {$: $scope.filters} 66 {$: $scope.filters}
64 ); 67 );
65 68
66 if(pressed && $scope.filteredCobranzas.length === 0){ 69 if(pressed && $scope.filteredCobranzas.length === 0){
67 $timeout(function() { 70 $timeout(function() {
68 angular.element('#search')[0].focus(); 71 angular.element('#search')[0].focus();
69 $scope.filters = ''; 72 $scope.filters = '';
70 }); 73 });
71 } 74 }
72 75
73 $scope.lastPage = Math.ceil( 76 $scope.lastPage = Math.ceil(
74 $scope.filteredCobranzas.length / $scope.numPerPage 77 $scope.filteredCobranzas.length / $scope.numPerPage
75 ); 78 );
76 79
77 $scope.resetPage(); 80 $scope.resetPage();
78 } 81 }
79 }; 82 };
80 83
81 $scope.resetPage = function() { 84 $scope.resetPage = function() {
82 $scope.currentPage = 1; 85 $scope.currentPage = 1;
83 $scope.selectPage(1); 86 $scope.selectPage(1);
84 }; 87 };
85 88
86 $scope.selectPage = function(page) { 89 $scope.selectPage = function(page) {
87 var start = (page - 1) * $scope.numPerPage; 90 var start = (page - 1) * $scope.numPerPage;
88 var end = start + $scope.numPerPage; 91 var end = start + $scope.numPerPage;
89 $scope.paginas = []; 92 $scope.paginas = [];
90 $scope.paginas = calcularPages(page); 93 $scope.paginas = calcularPages(page);
91 $scope.currentPageCobranzas = $scope.filteredCobranzas.slice(start, end); 94 $scope.currentPageCobranzas = $scope.filteredCobranzas.slice(start, end);
92 $scope.currentPage = page; 95 $scope.currentPage = page;
93 }; 96 };
94 97
95 $scope.select = function(cobranza) { 98 $scope.select = function(cobranza) {
96 $uibModalInstance.close(cobranza); 99 $uibModalInstance.close(cobranza);
97 }; 100 };
98 101
99 $scope.cancel = function() { 102 $scope.cancel = function() {
100 $uibModalInstance.dismiss('cancel'); 103 $uibModalInstance.dismiss('cancel');
101 }; 104 };
102 105
103 $scope.busquedaDown = function(key) { 106 $scope.busquedaDown = function(key) {
104 if (key === 40) { 107 if (key === 40) {
105 primera(key); 108 primera(key);
106 } 109 }
107 }; 110 };
108 111
109 $scope.itemCobranza = function(key) { 112 $scope.itemCobranza = function(key) {
110 if (key === 38) { 113 if (key === 38) {
111 anterior(key); 114 anterior(key);
112 } 115 }
113 116
114 if (key === 40) { 117 if (key === 40) {
115 siguiente(key); 118 siguiente(key);
116 } 119 }
117 120
118 if (key === 37) { 121 if (key === 37) {
119 retrocederPagina(); 122 retrocederPagina();
120 } 123 }
121 124
122 if (key === 39) { 125 if (key === 39) {
123 avanzarPagina(); 126 avanzarPagina();
124 } 127 }
125 }; 128 };
126 129
127 function calcularPages(paginaActual) { 130 function calcularPages(paginaActual) {
128 var paginas = []; 131 var paginas = [];
129 paginas.push(paginaActual); 132 paginas.push(paginaActual);
130 133
131 if (paginaActual - 1 > 1) { 134 if (paginaActual - 1 > 1) {
132 135
133 paginas.unshift(paginaActual - 1); 136 paginas.unshift(paginaActual - 1);
134 if (paginaActual - 2 > 1) { 137 if (paginaActual - 2 > 1) {
135 paginas.unshift(paginaActual - 2); 138 paginas.unshift(paginaActual - 2);
136 } 139 }
137 } 140 }
138 141
139 if (paginaActual + 1 < $scope.lastPage) { 142 if (paginaActual + 1 < $scope.lastPage) {
140 paginas.push(paginaActual + 1); 143 paginas.push(paginaActual + 1);
141 if (paginaActual + 2 < $scope.lastPage) { 144 if (paginaActual + 2 < $scope.lastPage) {
142 paginas.push(paginaActual + 2); 145 paginas.push(paginaActual + 2);
143 } 146 }
144 } 147 }
145 148
146 if (paginaActual !== 1) { 149 if (paginaActual !== 1) {
147 paginas.unshift(1); 150 paginas.unshift(1);
148 } 151 }
149 152
150 if (paginaActual !== $scope.lastPage) { 153 if (paginaActual !== $scope.lastPage) {
151 paginas.push($scope.lastPage); 154 paginas.push($scope.lastPage);
152 } 155 }
153 156
154 return paginas; 157 return paginas;
155 } 158 }
156 159
157 function primera() { 160 function primera() {
158 $scope.selectedCobranza = 0; 161 $scope.selectedCobranza = 0;
159 } 162 }
160 163
161 function anterior() { 164 function anterior() {
162 if ($scope.selectedCobranza === 0 && $scope.currentPage > 1) { 165 if ($scope.selectedCobranza === 0 && $scope.currentPage > 1) {
163 retrocederPagina(); 166 retrocederPagina();
164 } else { 167 } else {
165 $scope.selectedCobranza--; 168 $scope.selectedCobranza--;
166 } 169 }
167 } 170 }
168 171
169 function siguiente() { 172 function siguiente() {
170 if ($scope.selectedCobranza < $scope.currentPageCobranzas.length - 1 ) { 173 if ($scope.selectedCobranza < $scope.currentPageCobranzas.length - 1 ) {
171 $scope.selectedCobranza++; 174 $scope.selectedCobranza++;
172 } else { 175 } else {
173 avanzarPagina(); 176 avanzarPagina();
174 } 177 }
175 } 178 }
176 179
177 function retrocederPagina() { 180 function retrocederPagina() {
178 if ($scope.currentPage > 1) { 181 if ($scope.currentPage > 1) {
179 $scope.selectPage($scope.currentPage - 1); 182 $scope.selectPage($scope.currentPage - 1);
180 $scope.selectedCobranza = $scope.numPerPage - 1; 183 $scope.selectedCobranza = $scope.numPerPage - 1;
181 } 184 }
182 } 185 }
183 186
184 function avanzarPagina() { 187 function avanzarPagina() {
185 if ($scope.currentPage < $scope.lastPage) { 188 if ($scope.currentPage < $scope.lastPage) {
186 $scope.selectPage($scope.currentPage + 1); 189 $scope.selectPage($scope.currentPage + 1);
187 $scope.selectedCobranza = 0; 190 $scope.selectedCobranza = 0;
188 } 191 }
189 } 192 }
190 } 193 }
191 ] 194 ]
192 ); 195 );
193 196
src/views/foca-modal-cobranza.html
1 <div class="modal-header py-1"> 1 <div class="modal-header py-1">
2 <div class="row w-100"> 2 <div class="row w-100">
3 <div class="col-lg-6"> 3 <div class="col-lg-6">
4 <h5 class="modal-title my-1">Búsqueda de Cobranza</h5> 4 <h5 class="modal-title my-1">Búsqueda de Cobranza</h5>
5 </div> 5 </div>
6 <div class="input-group col-lg-6 pr-0 my-2"> 6 <div class="input-group col-lg-6 pr-0 my-2">
7 <input 7 <input
8 ladda="searchLoading" 8 ladda="searchLoading"
9 type="text" 9 type="text"
10 class="form-control form-control-sm" 10 class="form-control form-control-sm"
11 placeholder="Razón social" 11 placeholder="Razón social"
12 ng-model="filters" 12 ng-model="filters"
13 ng-change="search()" 13 ng-change="search()"
14 ng-keydown="busquedaDown($event.keyCode)" 14 ng-keydown="busquedaDown($event.keyCode)"
15 ng-keypress="busquedaPress($event.keyCode)" 15 ng-keypress="busquedaPress($event.keyCode)"
16 foca-focus="selectedCobranza == -1" 16 foca-focus="selectedCobranza == -1"
17 ng-focus="selectedCobranza = -1" 17 ng-focus="selectedCobranza = -1"
18 id="search" 18 id="search"
19 teclado-virtual 19 teclado-virtual
20 > 20 >
21 <div class="input-group-append"> 21 <div class="input-group-append">
22 <button 22 <button
23 ladda="searchLoading" 23 ladda="searchLoading"
24 data-spinner-color="#FF0000" 24 data-spinner-color="#FF0000"
25 class="btn btn-outline-secondary" 25 class="btn btn-outline-secondary"
26 type="button" 26 type="button"
27 ng-click="busquedaPress(13)" 27 ng-click="busquedaPress(13)"
28 > 28 >
29 <i class="fa fa-search" aria-hidden="true"></i> 29 <i class="fa fa-search" aria-hidden="true"></i>
30 </button> 30 </button>
31 </div> 31 </div>
32 </div> 32 </div>
33 </div> 33 </div>
34 34
35 </div> 35 </div>
36 <div class="modal-body" id="modal-body"> 36 <div class="modal-body" id="modal-body">
37 <div class="input-group row"> 37 <div class="input-group row">
38 <small class="col-md-2 col-4 text-left my-1">Fecha Desde</small> 38 <small class="col-md-2 col-4 text-left my-1">Fecha Desde</small>
39 <div class="col-md-4 col-8 input-group mb-2"> 39 <div class="col-md-4 col-8 input-group mb-2">
40 <div class="input-group-prepend"> 40 <div class="input-group-prepend">
41 <div class="input-group-text form-control-sm"> 41 <div class="input-group-text form-control-sm">
42 <i class="fa fa-calendar"></i> 42 <i class="fa fa-calendar"></i>
43 </div> 43 </div>
44 </div> 44 </div>
45 <input 45 <input
46 class="form-control form-control-sm" 46 class="form-control form-control-sm"
47 id="inlineFormInputGroup" 47 id="inlineFormInputGroup"
48 ladda="searchLoading" 48 ladda="searchLoading"
49 type="date" 49 type="text"
50 ng-model="fechaDesde" 50 ng-model="fechaDesde"
51 hasta-hoy
52 ng-required="true" 51 ng-required="true"
52 uib-datepicker-popup="dd/MM/yyyy"
53 show-button-bar="false"
54 is-open="datepickerOpen"
55 on-open-focus="false"
56 ng-focus="datepickerOpen = true"
57 datepicker-options="dateOptions"
53 /> 58 />
54 </div> 59 </div>
55 <small class="col-md-2 col-4 text-left my-1">Fecha Hasta</small> 60 <small class="col-md-2 col-4 text-left my-1">Fecha Hasta</small>
56 <div class="col-md-4 col-8 input-group mb-2"> 61 <div class="col-md-4 col-8 input-group mb-2">
57 <div class="input-group-prepend"> 62 <div class="input-group-prepend">
58 <div class="input-group-text form-control-sm"> 63 <div class="input-group-text form-control-sm">
59 <i class="fa fa-calendar"></i> 64 <i class="fa fa-calendar"></i>
60 </div> 65 </div>
61 </div> 66 </div>
62 <input 67 <input
63 class="form-control form-control-sm" 68 class="form-control form-control-sm"
64 id="inlineFormInputGroup" 69 id="inlineFormInputGroup"
65 ladda="searchLoading" 70 ladda="searchLoading"
66 type="date" 71 type="text"
67 ng-model="fechaHasta" 72 ng-model="fechaHasta"
68 ng-required="true" 73 ng-required="true"
69 hasta-hoy 74 uib-datepicker-popup="dd/MM/yyyy"
75 show-button-bar="false"
76 is-open="datepicker2Open"
77 on-open-focus="false"
78 ng-focus="datepicker2Open = true"
79 datepicker-options="dateOptions"
70 /> 80 />
71 </div> 81 </div>
72 </div> 82 </div>
73 <table ng-show="primerBusqueda" class="table table-striped table-sm"> 83 <table ng-show="primerBusqueda" class="table table-striped table-sm">
74 <thead> 84 <thead>
75 <tr> 85 <tr>
76 <th>Fecha</th> 86 <th>Fecha</th>
77 <th>Cliente</th> 87 <th>Cliente</th>
78 <th>Comprobante</th> 88 <th>Comprobante</th>
79 <th></th> 89 <th></th>
80 </tr> 90 </tr>
81 </thead> 91 </thead>
82 <tbody> 92 <tbody>
83 <tr ng-show="currentPageCobranzas.length == 0 && primerBusqueda"> 93 <tr ng-show="currentPageCobranzas.length == 0 && primerBusqueda">
84 <td colspan="5"> 94 <td colspan="5">
85 No se encontraron resultados. 95 No se encontraron resultados.
86 </td> 96 </td>
87 </tr> 97 </tr>
88 <tr class="selectable" 98 <tr class="selectable"
89 ng-repeat="(key, cobranza) in currentPageCobranzas" 99 ng-repeat="(key, cobranza) in currentPageCobranzas"
90 ng-click="select(cobranza)"> 100 ng-click="select(cobranza)">
91 <td ng-bind="cobranza.fecha | date : 'dd/MM/yyyy'"></td> 101 <td ng-bind="cobranza.fecha | date : 'dd/MM/yyyy'"></td>
92 <td ng-bind="cobranza.cliente.NOM"></td> 102 <td ng-bind="cobranza.cliente.NOM"></td>
93 <td ng-bind="[cobranza.puntoVenta, cobranza.numeroRecibo] | comprobante"></td> 103 <td ng-bind="[cobranza.puntoVenta, cobranza.numeroRecibo] | comprobante"></td>
94 <td> 104 <td>
95 <button 105 <button
96 type="button" 106 type="button"
97 class="btn btn-xs p-1 float-right" 107 class="btn btn-xs p-1 float-right"
98 ng-class="{ 108 ng-class="{
99 'btn-secondary': selectedCobranza != key, 109 'btn-secondary': selectedCobranza != key,
100 'btn-primary': selectedCobranza == key 110 'btn-primary': selectedCobranza == key
101 }" 111 }"
102 foca-focus="selectedCobranza == {{key}}" 112 foca-focus="selectedCobranza == {{key}}"
103 ng-keydown="itemCobranza($event.keyCode)" 113 ng-keydown="itemCobranza($event.keyCode)"
104 > 114 >
105 <i class="fa fa-circle-thin" aria-hidden="true"></i> 115 <i class="fa fa-circle-thin" aria-hidden="true"></i>
106 </button> 116 </button>
107 </td> 117 </td>
108 </tr> 118 </tr>
109 </tbody> 119 </tbody>
110 </table> 120 </table>
111 </div> 121 </div>
112 <div class="modal-footer py-1"> 122 <div class="modal-footer py-1">
113 <nav ng-show="currentPageCobranzas.length > 0 && primerBusqueda" class="mr-auto"> 123 <nav ng-show="currentPageCobranzas.length > 0 && primerBusqueda" class="mr-auto">
114 <ul class="pagination pagination-sm justify-content mb-0"> 124 <ul class="pagination pagination-sm justify-content mb-0">
115 <li class="page-item" ng-class="{'disabled': currentPage == 1}"> 125 <li class="page-item" ng-class="{'disabled': currentPage == 1}">
116 <a 126 <a
117 class="page-link" 127 class="page-link"
118 href="javascript:void();" 128 href="javascript:void();"
119 ng-click="selectPage(currentPage - 1)" 129 ng-click="selectPage(currentPage - 1)"
120 > 130 >
121 <span aria-hidden="true">&laquo;</span> 131 <span aria-hidden="true">&laquo;</span>
122 <span class="sr-only">Anterior</span> 132 <span class="sr-only">Anterior</span>
123 </a> 133 </a>
124 </li> 134 </li>
125 <li 135 <li
126 class="page-item" 136 class="page-item"
127 ng-repeat="pagina in paginas" 137 ng-repeat="pagina in paginas"
128 ng-class="{'active': pagina == currentPage}" 138 ng-class="{'active': pagina == currentPage}"
129 > 139 >
130 <a 140 <a
131 class="page-link" 141 class="page-link"
132 href="javascript:void();" 142 href="javascript:void();"
133 ng-click="selectPage(pagina)" 143 ng-click="selectPage(pagina)"
134 ng-bind="pagina" 144 ng-bind="pagina"
135 ></a> 145 ></a>
136 </li> 146 </li>
137 <li class="page-item" ng-class="{'disabled': currentPage == lastPage}"> 147 <li class="page-item" ng-class="{'disabled': currentPage == lastPage}">
138 <a 148 <a
139 class="page-link" 149 class="page-link"
140 href="javascript:void();" 150 href="javascript:void();"
141 ng-click="selectPage(currentPage + 1)" 151 ng-click="selectPage(currentPage + 1)"
142 > 152 >
143 <span aria-hidden="true">&raquo;</span> 153 <span aria-hidden="true">&raquo;</span>
144 <span class="sr-only">Siguiente</span> 154 <span class="sr-only">Siguiente</span>
145 </a> 155 </a>
146 </li> 156 </li>
147 </ul> 157 </ul>
148 </nav> 158 </nav>
149 <button class="btn btn-sm btn-secondary" type="button" ng-click="cancel()">Cancelar</button> 159 <button class="btn btn-sm btn-secondary" type="button" ng-click="cancel()">Cancelar</button>
150 </div> 160 </div>