"use strict";
(function (ruv, $, undefined) {
//Namespaces
if (!ruv.paginador) {
ruv.paginador = {};
}
ruv.baseUrl = $('base').attr('href');
ruv.paginador.seccionPaginas = '#paginas';
ruv.paginador.seccionMostrados = '#registrosMostrados';
ruv.paginador.seccionTotales = '#registrosTotales';
ruv.paginador.seccionfilasPorPagina = '#filasPorPagina';
ruv.paginador.numeroBotones = 5;
ruv.paginador.tituloCeroRegistros = 'Mostrando 0 registros';
ruv.paginador.actualizarRegistrosTotales = function (contenedor, resultado) {
var mensaje = " [total: " + resultado.objeto + "]";
$(contenedor).find(ruv.paginador.seccionTotales).text(mensaje);
};
ruv.paginador.variables = {};
ruv.paginador.variables.urlRequest = {
obtenerListaFilasPorPagina: ''
};
ruv.paginador.actualizarRegistrosMostrados = function (contenedor, paginador) {
var numeropaginas = paginador.totalPaginas;
var pagina = paginador.pagina;
var totalregistro = paginador.totalRegistros;
var numeroregistros = paginador.numeroRegistros;
if (numeropaginas > 1) {
numeropaginas = Math.ceil(numeropaginas);
}
var inicioPagina = ((pagina * numeroregistros) - numeroregistros) + 1;
var finPagina;
if (numeropaginas == pagina) {
finPagina = totalregistro;
}
else {
finPagina = (pagina * numeroregistros);
}
var mostrando = "";
if (totalregistro != 0) {
if (totalregistro > finPagina) {
mostrando = 'Mostrando ' + inicioPagina + ' a ' + finPagina + ' de ' + totalregistro;
}
else {
mostrando = 'Mostrando ' + inicioPagina + ' a ' + totalregistro + ' de ' + totalregistro;
}
}
$(contenedor).find(ruv.paginador.seccionMostrados).text(mostrando);
};
ruv.paginador.actualizarPaginador = function (contenedor, totales, nombreFuncion) {
var botonesGenerables;
var primerPaginaGenerable = 0;
ruv.paginador.establecerResultados(contenedor, totales);
var paginador = ruv.paginador.obtenerValores(contenedor);
ruv.paginador.limpiarPaginador(contenedor);
ruv.paginador.actualizarRegistrosMostrados(contenedor, paginador);
if (paginador.totalRegistros > 0)
ruv.paginador.actualizarPaginas(contenedor, paginador, nombreFuncion, ruv.paginador.numeroBotones);
};
ruv.paginador.actualizarPaginas = function (contenedor, paginador, nombreFuncion, numeroBotones) {
var numeropaginas = paginador.totalPaginas;
var pagina = paginador.pagina;
var totalregistro = paginador.totalRegistros;
var numeroregistros = paginador.numeroRegistros;
var paginashtml = "";
if (numeropaginas > 1) {
//genera el numero completo de elementos para la lista de paginas
paginashtml += "
pag.
";
//Aqui empieza las paginas a la derecha
paginashtml += '';
if (pagina > 1) {
paginashtml += "- Anterior
";
}
if (numeropaginas < 8) {
for (var i = 1; i <= numeropaginas; i++) {
if (i == pagina) {
paginashtml += "- " + i + "
";
}
else {
paginashtml += "- " + i + "
";
}
}
}
else {
var paginafinal = 0;
var paginainicial = 0;
if ((+pagina + +7) < numeropaginas) {
paginainicial = pagina;
paginafinal = +pagina + +7;
}
else {
paginainicial = numeropaginas - 7;
paginafinal = numeropaginas;
}
for (var i = paginainicial ; i <= paginafinal; i++) {
if (i == pagina) {
paginashtml += "- " + i + "
";
}
else {
paginashtml += "- " + i + "
";
}
}
}
if (+pagina < +numeropaginas) {
paginashtml += "- Siguiente
";
}
paginashtml += "
";
}
$(contenedor).find(ruv.paginador.seccionPaginas).append(paginashtml);
};
ruv.paginador.limpiarPaginador = function (contenedor) {
$(contenedor).find(ruv.paginador.seccionPaginas).empty();
$(contenedor).find(ruv.paginador.seccionMostrados).val(ruv.paginador.tituloCeroRegistros);
};
ruv.paginador.establecerResultados = function (seccion, paginador) {
var totalPaginas = parseInt(paginador.totalRegistros / paginador.numeroRegistros);
if (paginador.totalRegistros % paginador.numeroRegistros != 0) {
totalPaginas += 1;
}
$(seccion).find('#hPaginaActual').val(paginador.pagina);
$(seccion).find('#hTotalPaginas').val(totalPaginas);
$(seccion).find('#hTotalRegistros').val(paginador.totalRegistros);
$(seccion).find('#hFilaInicial').val(paginador.filaInicial);
$(seccion).find('#hFilaFinal').val(parseInt(paginador.filaFinal));
$(seccion).find('#hNumeroRegistros').val(parseInt(paginador.numeroRegistros));
};
ruv.paginador.obtenerValores = function (seccion) {
var valores = {
pagina: $(seccion).find('#hPaginaActual').val(),
totalPaginas: $(seccion).find('#hTotalPaginas').val(),
totalRegistros: $(seccion).find('#hTotalRegistros').val(),
filaInicial: $(seccion).find('#hFilaInicial').val(),
filaFinal: $(seccion).find('#hFilaFinal').val(),
numeroRegistros: $(seccion).find('#hNumeroRegistros').val()
};
return valores;
};
ruv.paginador.limpiarResultados = function (seccion) {
$(seccion).find('#hPaginaActual').val(0);
$(seccion).find('#hTotalPaginas').val(0);
$(seccion).find('#hTotalRegistros').val(0);
$(seccion).find('#hFilaInicial').val(0);
$(seccion).find('#hFilaFinal').val(0);
$(seccion).find('#hNumeroRegistros').val(0);
};
ruv.paginador.obtenerFilasPorPagina = function (seccion, nombreFuncion, afterEvent, dataEvent, nombreSelectFilas) {
ruv.utils.ajaxJsonRequestPost(
ruv.paginador.variables.urlRequest.obtenerListaFilasPorPagina,
JSON.stringify(),
function (resultado) {
var htmlLista = "";
if (nombreSelectFilas !== null && nombreSelectFilas !== undefined) {
htmlLista += "Mostrar