Last active
March 14, 2024 19:59
-
-
Save obeduri/1107e378470dd90e8b469d137b628a27 to your computer and use it in GitHub Desktop.
Snippets Javascript
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//SLEECIONA TODOS LOS ELEMENTOS MENOS EL ULTIMOS | |
$("div.elem:not(:last)").hide(); | |
function formatTable(cnf) { | |
/* | |
{ | |
debug: true, //debugging options switch | |
element: '.table_rols_modules', //object en DOM el cual será datatable | |
empty_table: 'NO HAY DATOS', | |
scroller: true, //scrollbard? | |
fixed_header: true, //Cabecera fija | |
title_report: 'Report Title', | |
auto_print: true, | |
emptyText: 'NO HAY DATOS', | |
order: [[0, 'asc']], //columna por la cual se ordena | |
column_groupby: 0, //indice de la columna de grupo | |
empty_text: 'NO HAY DATOS', //texto para cuando la tabla está vacia | |
name_report: 'CITASMED', //nombre del reporte | |
filterdrops: {visible: false, element: ''}, //filtrado de combo por columna (en desarrollo) | |
scrolly: 'auto', // limita el scroll a los pixeles desseados Y [420px] | |
scrollx: '100%', // limita el scroll a los pixeles desseados X [100%] | |
scrollCollapse: true, // elimina la paginacion | |
paging: true, | |
page_length: 10, | |
filter: true, | |
info: true, | |
sort: true, | |
group: true, //agrupa por columnas | |
group_span: 4, //tamaño de la columna en celdas de manera horizontal | |
groupcolumn: 0, // | |
columnGroup: 0, | |
orientation_report: '', | |
groupSpan: 5, | |
column_defs: [{ visible: false, targets: 0, searchable: false }], | |
callback: () => { | |
//do stuff | |
}, | |
responsive: true, | |
} | |
*/ | |
if (cnf.isEmpty) { | |
alert('Configuration Object NOT FOUND'); | |
} | |
if (!('element' in cnf)) { | |
console.log('debe de configurar un elemento'); | |
return; | |
} | |
if (cnf.debug ?? false) { | |
console.table(cnf); | |
} | |
if ($.fn.DataTable.isDataTable(cnf.element)) { | |
$(cnf.element).DataTable().destroy(); | |
} | |
let months = ["ENE", "FEB", "MAR", "ABR", "MAY", "JUN", "JUL", "AGO", "SEP", "OCT", "NOV", "DIC"], | |
currentDate = new Date(), | |
day = currentDate.getDate(), | |
month = months[currentDate.getMonth()], | |
year = currentDate.getFullYear(), | |
d = day + "-" + month + "-" + year, | |
groupColumn = cnf.group ?? false, | |
JqueryTable = $(`${cnf.element}`).DataTable({ | |
//scrollY: `${cnf.scrolly ?? 'auto'}`, | |
//sScrollX: `${cnf.scrollx ?? '100%'}`, | |
//scrollCollapse: cnf.scrollCollapse ?? false, | |
scroller: cnf.scroller ?? false, | |
paging: cnf.paging ?? true, | |
searching: cnf.searching ?? true, | |
pageLength: cnf.page_length ?? 10, | |
filter: cnf.filter ?? true, | |
info: cnf.info ?? true, | |
sort: cnf.sort ?? true, | |
FixedHeader: cnf.fixed_header ?? true, | |
order: cnf.order ?? [[0, "desc"]], | |
columnDefs: cnf.columnDefs ?? '', | |
drawCallback: function (settings) { | |
if (cnf.group) { | |
let api = this.api(), | |
rows = api.rows({ page: 'current' }).nodes(), | |
last = null; | |
api.column(cnf.groupcolumn, { page: 'current' }).data().each(function (group, i) { | |
if (last !== group) { | |
$(rows).eq(i).before( | |
`<tr class="group bg-primary text-white"><td colspan="${cnf.group_span ?? 5}">${group}</td></tr>` | |
); | |
last = group; | |
} | |
}); | |
} | |
('function' == typeof cnf.callback) && cnf.callback(); | |
}, | |
language: { | |
emptyTable: cnf.empty_table ?? `<center>NO HAY DATOS</center>`, | |
Processing: '<i class="fa fa- spinner fa- spin fa - 3x fa - fw"></i><span class="sr - only">Cargando...</span>', | |
sZeroRecords: "No se encontraron resultados", | |
sInfo: "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros", | |
sInfoEmpty: "Mostrando registros del 0 al 0 de un total de 0 registros", | |
sInfoFiltered: "(filtrado de un total de _MAX_ registros)", | |
sInfoPostFix: "", | |
sSearch: "", | |
searchPlaceholder: "🔎 Buscar...", | |
sUrl: "", | |
sInfoThousands: ",", | |
sLoadingRecords: "Cargando...", | |
oPaginate: { | |
sFirst: "Primero", | |
sLast: "Último", | |
sNext: ">", | |
sPrevious: "<" | |
}, | |
oAria: { | |
sSortAscending: "Activar para ordenar la columna de manera ascendente", | |
sSortDescending: "Activar para ordenar la columna de manera descendente" | |
}, | |
buttons: { | |
copy: 'Copiar', | |
Colvis: 'Visibilidad' | |
} | |
}, | |
dom: cnf.dom ?? 'Bfrtip', | |
buttons: [ | |
{ | |
title: cnf.title_report ?? 'UNIBE - REPORTERIA', | |
messageTop: `${cnf.name_report ?? 'REPORTE'} Fecha: ${d}`, | |
text: "<i class='fa fa-file-pdf-o'></i> PDF", | |
className: 'btn_pdf btn btn-outline-danger', | |
extend: 'pdf', | |
orientation: cnf.orientation_report ?? 'landscape' | |
}, | |
{ | |
title: cnf.title_report ?? 'UNIBE - REPORTERIA', | |
messageTop: `${cnf.name_report ?? 'REPORTE'} Fecha: ${d}`, | |
text: "<i class='fa fa-file-excel-o'></i> Excel", | |
className: 'btn_excel btn btn-outline-success', | |
extend: 'excel', | |
orientation: cnf.orientation_report ?? 'landscape' | |
}, | |
{ | |
title: cnf.title_report ?? 'UNIBE - REPORTERIA', | |
messageTop: `${cnf.name_report ?? 'REPORTE'} Fecha: ${d}`, | |
text: "<i class='fa fa-print'></i> Imprimir", | |
className: 'btn_print btn btn-outline-info', | |
autoPrint: cnf.auto_print, | |
extend: 'print', | |
orientation: cnf.orientation_report ?? 'landscape', | |
customize: function (win) { | |
$(win.document.body).find('p').css('color', 'black') | |
} | |
}, | |
cnf.customButtons ?? undefined | |
], | |
responsive: cnf.responsive ?? true | |
}); | |
$(`${cnf.element}_filter input`).addClass('form-control m-input m-input--solid'); | |
$(`${cnf.element}`).css('width', '100%'); | |
$($.fn.dataTable.tables(true)).DataTable().columns.adjust(); | |
//SI EL PARAMETRO SELECT = TRUE ENTONBCES LAS LINEAS PUEDEN SER CLICKADAS | |
if (cnf.select ?? true) { | |
//AÑADE CLASES DE SELECTED Y DESELECTED A LOS ROWS DE TBODY DE UNA TABLA | |
$(cnf.element).on('dblclick', 'tr', function (e) { | |
if ($(this).hasClass('selected')) { | |
$(this).removeClass('selected'); | |
} else { | |
$(this).addClass('selected'); | |
} | |
}); | |
} | |
if (cnf.pdf ?? true) { | |
$('.btn_pdf').hide(); | |
} | |
if (cnf.excel ?? true) { | |
$('.btn_excel').hide(); | |
} | |
if (cnf.print ?? true) { | |
$('.btn_print').hide(); | |
} | |
} | |
$(document).ready(function(){ | |
StartWarningTimer(); | |
}); | |
// Set timeout variables. | |
let timoutWarning = 10000; // Display warning in 30 Mins. | |
let timoutNow = 10000; // Warning has been shown, give the user 1 minute to interact | |
let warningTimer; | |
// Start warning timer. | |
function StartWarningTimer() { | |
warningTimer = setTimeout("IdleWarning()", timoutWarning); | |
} | |
// Reset timers. | |
function ResetTimeOutTimer() { | |
window.clearTimeout(warningTimer); | |
timoutWarning = 10000; | |
timoutNow = 10000; | |
StartWarningTimer() | |
} | |
//On key press mouse move or click the reset timer cuz user is not idle... | |
$(window).on('click, keypress', function(){ | |
ResetTimeOutTimer(); | |
}); | |
// Show idle timeout warning dialog. | |
function IdleWarning() { | |
Swal.fire({ | |
title: '¡Atención!', | |
html: 'La sesión se cerrará en 60 segundos', | |
icon: 'warning', | |
timer: timoutNow, | |
timerProgressBar: true, | |
showCancelButton: true, | |
showConfirmButton: false, | |
cancelButtonText: '!Estoy aquí¡', | |
onClose: () => { | |
ResetTimeOutTimer(); | |
} | |
}).then((result) => { | |
/* Read more about handling dismissals below */ | |
if (result.dismiss === Swal.DismissReason.timer) { | |
log_out(); | |
}else{ | |
ResetTimeOutTimer(); | |
} | |
}) | |
} | |
//auto ejecutar lo que sea despues de un tiempo de inactividad | |
function resetTimer() { | |
window.clearTimeout(timeoutId) | |
startTimer(); | |
} | |
function setupTimers () { | |
document.addEventListener("mousemove", resetTimer, false); | |
document.addEventListener("mousedown", resetTimer, false); | |
document.addEventListener("keypress", resetTimer, false); | |
document.addEventListener("touchmove", resetTimer, false); | |
startTimer(); | |
} | |
// jQuery isn't actually required for any of this - if you aren't using jQuery just call setupTimers() | |
$(document).ready(function({ | |
// do some other initialization | |
setupTimers(); | |
}) | |
function postRequest(model, div, object, callback, loading = true, after_load = true, change = false){ | |
$.ajax({ | |
type: 'POST', | |
url: '/'+model, | |
async: true, | |
data: object, | |
beforeSend: function () { | |
if (loading){ | |
if(div !== ''){ | |
$(div).append('<div class="loading_cycle"><img style=" width: 128px; height: 128px; " src="/storage/images/loading.gif"></div>'); | |
}else{ | |
$('body').append('<div class="loading_cycle"><img style=" width: 128px; height: 128px; " src="/storage/images/loading.gif"></div>'); | |
} | |
} | |
},success: function (data) { | |
if (after_load == false){ | |
$('.loading_cycle').remove(); | |
('function' == typeof callback) && callback(data); | |
$(div).html(data); | |
} else { | |
$('.loading_cycle').remove(); | |
$(div).html(data); | |
if(change == true){ | |
$(div).change(); | |
} | |
('function' == typeof callback) && callback(data); | |
} | |
} | |
}); | |
} | |
//para cambiar el color de los elementos al check de un checkbox | |
function checkme(){ | |
$(":checkbox").on("change", function() { | |
var that = this; | |
$(this).parent().find('.alumno_label').css("background-color", function() { | |
return that.checked ? "#9fffc8" : ""; | |
}); | |
}); | |
} | |
//SENDREQUEST | |
function sendRequest(urlFile, comp, arrayData, Callback, not_load = true){ | |
arrayData['_usuario_id'] = localStorage.getItem('usuario_id'); | |
// arrayData['usuario_id'] = localStorage.getItem('usuario_id'); | |
arrayData['db'] = localStorage.getItem('db'); | |
arrayData['_usuario_id_modif'] = localStorage.getItem('usuario_id'); | |
arrayData['idioma_id'] = localStorage.getItem('idioma'); | |
arrayData['institucion_id'] = localStorage.getItem('institucion_id'); | |
$.ajax({ | |
type: 'POST', | |
url: '/' + urlFile, | |
data: arrayData, | |
beforeSend: function (xhr) { | |
if (not_load) | |
$(comp).html('<div class="text-center"><i class="fa fa-spinner fa-pulse fa-3x fa-fw"></i><span class="sr-only">Loading...</span></div>'); | |
}, | |
success: function (data, textStatus, jqXHR) { | |
// data = data.trim(); | |
try{ | |
data = data.trim(); | |
} catch { | |
data = data; | |
} | |
('function' == typeof Callback) && Callback(data); | |
if (!arrayData.mostrar) | |
$(comp).html(data); | |
} | |
}); | |
} | |
//to avoid people uploading the incorrect file | |
var file = document.getElementById('someId'); | |
file.onchange = function(e) { | |
var ext = this.value.match(/\.([^\.]+)$/)[1]; | |
switch (ext) { | |
case 'jpg': | |
case 'bmp': | |
case 'png': | |
case 'tif': | |
alert('Allowed'); | |
break; | |
default: | |
alert('Not allowed'); | |
this.value = ''; | |
} | |
}; | |
//WINDOWS OPEN WITH CONFIGURATION AND NEAT | |
var preview = window.open("", '[PAGES NAME]', "height=XXX,width=XXX,modal=yes,alwaysRaised=yes toolbar=0,location=0,menubar=0"); | |
//TODO ADVANCE DATA TABLE ROW GROUPING | |
https://datatables.net/examples/advanced_init/row_grouping.html | |
//DATATABLE LANG | |
$(document).ready(function() { | |
$('#example').DataTable( { | |
"language": { | |
"url": "//cdn.datatables.net/plug-ins/1.10.19/i18n/Spanish.json" | |
} | |
} ); | |
} ); | |
//GENERA LINKS A MP4 Y OTROS DE UN DIRECTORIO EN ESPECIAL | |
var dir = "/videos"; | |
var fileextension = ".mp4"; | |
$.ajax({ | |
//This will retrieve the contents of the folder if the folder is configured as 'browsable' | |
url: dir, | |
success: function (data) { | |
// List all mp4 file names in the page | |
$(data).find("a:contains(" + fileextension + ")").each(function () { | |
var filename = this.href.replace(window.location.host, "").replace("http:///", ""); | |
$("body").append($("<img src=" + dir + filename + "></img>")); | |
}); | |
} | |
}); | |
//TODO IAMGES CHECKER | |
$('.alu_pic').each(function(){ | |
$(this).on('error', function(e) { | |
$(this).attr('src', 'no-photo.png'); | |
}); | |
}); | |
//OFF SCREEN ACTION HANDLER | |
$(document).off('click', '.change_fecha').on('click', '.change_fecha', function (e) { | |
//DO A BARREL ROLL | |
}); | |
//loads a preview of the image being load... | |
<input type="file" accept="image/*" onchange="loadFile(event)"> | |
<img id="output"/> | |
<script> | |
var loadFile = function(event) { | |
var output = document.getElementById('output'); | |
output.src = URL.createObjectURL(event.target.files[0]); | |
}; | |
</script> | |
//select on select | |
$("#txtAutor_lib").empty().append("<option value='"+autor_id+"'>"+autor+"</option>").val(autor_id).trigger('change'); | |
//reloads dtables... | |
$('#example').DataTable().ajax.reload() | |
//RESETS ALL INPUTS WITHIN A FORM | |
function formReset(div){ | |
$(div).trigger("reset"); | |
} | |
//RESET SELECT 2 AFTER LOADING USERS VALUES | |
$(div).select2().trigger('change'); | |
//MODEL STACKS (MODAL UPON MODALS) | |
$(document).on('show.bs.modal', '.modal', function () { | |
let zIndex = 1040 + (10 * $('.modal:visible').length); | |
$(this).css('z-index', zIndex); | |
setTimeout(function() { | |
$('.modal-backdrop').not('.modal-stack').css('z-index', zIndex - 1).addClass('modal-stack'); | |
}, 0); | |
}); | |
//sweet alert function for messages | |
let msg={title:'Error',message:'La cantidad debe ser menor que la cantidad disponible',icon:'error',error:1}; | |
pop_ups((JSON.stringify(msg))); | |
return; | |
function pop_ups(data, btn_confirm = true, btn_cancel = false, confirm_txt = 'Entendido', cancel_txt = 'Volver', callback){ | |
data = JSON.parse(data); | |
let popups = Swal.mixin({ | |
customClass: { | |
confirmButton: 'btn blue-gradient', | |
cancelButton: 'btn peach-gradient' | |
}, | |
buttonsStyling: false | |
}); | |
popups.fire({ | |
icon: data.icon, | |
title: data.title, | |
text: data.message, | |
showClass: { | |
popup: 'animated fadeInDown faster' | |
}, | |
hideClass: { | |
popup: 'animated fadeOutUp faster' | |
}, | |
showConfirmButton: btn_confirm, | |
showCancelButton: btn_cancel, | |
confirmButtonText: "<i class='fa fa-thumbs-up'></i> " + confirm_txt, | |
cancelButtonText: "<i class='fa fa-reply-all'></i> " + cancel_txt | |
}).then((result) => { | |
//CALLBACK FUNCTIONS | |
('function' == typeof callback) && callback(data); | |
}); | |
} | |
//clear ajax select2 | |
$('#mySelect2').val(null).trigger('change'); | |
$('#mySelect2').trigger('change'); // Notify any JS components that the value changed | |
//add multiple options ajax select2 | |
$('#mySelect2').val(['1', '2']); | |
$('#mySelect2').trigger('change'); // Notify any JS components that the value changed | |
function FormatDate(date){ | |
date = new Date(date) | |
let day = date.getDay() < 10 ? '0'+date.getDay() : date.getDay(); | |
let month = date.getMonth() < 10 ? '0'+date.getMonth() : date.getMonth(); | |
let year = date.getFullYear(); | |
return `${year}-${month}-${day}`; | |
} | |
//DO STUFF DURING PARTIAL POSTBACKS EXTENDS VB AND ASP | |
function pageLoad(sender, args) { | |
$(".dropdownspecificclass").select2(); | |
} | |
function FadeInShow(Element, FadeTime){ | |
$(Element).fadeOut( | |
()=> setTimeout( | |
()=> $(Element).hide(), FadeTime | |
) | |
); | |
} | |
function FadeOutHide(Element, FadeTime){ | |
$(Element).fadeOut( | |
()=> setTimeout( | |
()=> $(Element).hide(), FadeTime | |
) | |
); | |
} | |
//PS WAVES | |
$(document).ready(function () { | |
let waves = new Waves('#holder', { | |
resize: true, | |
rotation: 45, | |
waves: 3, | |
width: 100, | |
hue: [180], | |
amplitude: 2, | |
background: false, | |
preload: false, | |
speed: [0.002, 0.004], | |
debug: false, | |
fps: false, | |
}); | |
waves.animate(); | |
LoadDatatable('#CertificatesTable'); | |
}); | |
(function () { | |
var pi = Math.PI; | |
var pi2 = 2 * Math.PI; | |
this.Waves = function (holder, options) { | |
var Waves = this; | |
Waves.options = extend(options || {}, { | |
resize: false, | |
rotation: 45, | |
waves: 5, | |
width: 100, | |
hue: [11, 14], | |
amplitude: 0.5, | |
background: true, | |
preload: true, | |
speed: [0.004, 0.008], | |
debug: false, | |
fps: false, | |
}); | |
Waves.waves = []; | |
Waves.holder = document.querySelector(holder); | |
Waves.canvas = document.createElement('canvas'); | |
Waves.ctx = Waves.canvas.getContext('2d'); | |
Waves.holder.appendChild(Waves.canvas); | |
Waves.hue = Waves.options.hue[0]; | |
Waves.hueFw = true; | |
Waves.stats = new Stats(); | |
Waves.resize(); | |
Waves.init(Waves.options.preload); | |
if (Waves.options.resize) | |
window.addEventListener('resize', function () { | |
Waves.resize(); | |
}, false); | |
}; | |
Waves.prototype.init = function (preload) { | |
var Waves = this; | |
var options = Waves.options; | |
for (var i = 0; i < options.waves; i++) | |
Waves.waves[i] = new Wave(Waves); | |
if (preload) Waves.preload(); | |
}; | |
Waves.prototype.preload = function () { | |
var Waves = this; | |
var options = Waves.options; | |
for (var i = 0; i < options.waves; i++) { | |
Waves.updateColor(); | |
for (var j = 0; j < options.width; j++) { | |
Waves.waves[i].update(); | |
} | |
} | |
}; | |
Waves.prototype.render = function () { | |
var Waves = this; | |
var ctx = Waves.ctx; | |
var options = Waves.options; | |
Waves.updateColor(); | |
Waves.clear(); | |
if (Waves.options.debug) { | |
ctx.beginPath(); | |
ctx.strokeStyle = '#f00'; | |
ctx.arc(Waves.centerX, Waves.centerY, Waves.radius, 0, pi2); | |
ctx.stroke(); | |
} | |
if (Waves.options.background) { | |
Waves.background(); | |
} | |
each(Waves.waves, function (wave, i) { | |
wave.update(); | |
wave.draw(); | |
}); | |
}; | |
Waves.prototype.animate = function () { | |
var Waves = this; | |
Waves.render(); | |
if (Waves.options.fps) { | |
Waves.stats.log(); | |
Waves.ctx.font = '12px Arial'; | |
Waves.ctx.fillStyle = '#fff'; | |
Waves.ctx.fillText(Waves.stats.fps() + ' FPS', 10, 22); | |
} | |
window.requestAnimationFrame(Waves.animate.bind(Waves)); | |
}; | |
Waves.prototype.clear = function () { | |
var Waves = this; | |
Waves.ctx.clearRect(0, 0, Waves.width, Waves.height); | |
}; | |
Waves.prototype.background = function () { | |
var Waves = this; | |
var ctx = Waves.ctx; | |
var gradient = Waves.ctx.createLinearGradient(0, 0, 0, Waves.height); | |
gradient.addColorStop(0, '#000'); | |
gradient.addColorStop(1, Waves.color); | |
ctx.fillStyle = gradient; | |
ctx.fillRect(0, 0, Waves.width, Waves.height); | |
}; | |
Waves.prototype.resize = function () { | |
var Waves = this; | |
var width = Waves.holder.offsetWidth; | |
var height = Waves.holder.offsetHeight; | |
Waves.scale = window.devicePixelRatio || 1; | |
Waves.width = width * Waves.scale; | |
Waves.height = height * Waves.scale; | |
Waves.canvas.width = Waves.width; | |
Waves.canvas.height = Waves.height; | |
Waves.canvas.style.width = width + 'px'; | |
Waves.canvas.style.height = height + 'px'; | |
Waves.radius = Math.sqrt(Math.pow(Waves.width, 2) + Math.pow(Waves.height, 2)) / 2; | |
Waves.centerX = Waves.width / 2; | |
Waves.centerY = Waves.height / 2; | |
//Waves.radius /= 2; // REMOVE FOR FULLSREEN | |
}; | |
Waves.prototype.updateColor = function () { | |
var Waves = this; | |
//COMETADO PARA QUE SOLO TIRE EL COLOR BLANCO | |
//Waves.hue += (Waves.hueFw) ? 0.01 : -0.01; | |
//if (Waves.hue > Waves.options.hue[1] && Waves.hueFw) { | |
// Waves.hue = Waves.options.hue[1]; | |
// Waves.Waves = false; | |
//} else if (Waves.hue < Waves.options.hue[0] && !Waves.hueFw) { | |
// Waves.hue = Waves.options.hue[0]; | |
// Waves.Waves = true; | |
//} | |
//var a = Math.floor(127 * Math.sin(0.3 * Waves.hue + 0) + 128); | |
//var b = Math.floor(127 * Math.sin(0.3 * Waves.hue + 2) + 128); | |
//var c = Math.floor(127 * Math.sin(0.3 * Waves.hue + 4) + 128); | |
//Waves.color = 'rgba(' + a + ',' + b + ',' + c + ', 0.1)'; | |
Waves.color = 'rgba(255, 255, 255, 0.1)'; | |
}; | |
function Wave(Waves) { | |
var Wave = this; | |
var speed = Waves.options.speed; | |
Wave.Waves = Waves; | |
Wave.Lines = []; | |
Wave.angle = [ | |
rnd(pi2), | |
rnd(pi2), | |
rnd(pi2), | |
rnd(pi2) | |
]; | |
Wave.speed = [ | |
rnd(speed[0], speed[1]) * rnd_sign(), | |
rnd(speed[0], speed[1]) * rnd_sign(), | |
rnd(speed[0], speed[1]) * rnd_sign(), | |
rnd(speed[0], speed[1]) * rnd_sign(), | |
]; | |
return Wave; | |
} | |
Wave.prototype.update = function () { | |
var Wave = this; | |
var Lines = Wave.Lines; | |
var color = Wave.Waves.color; | |
Lines.push(new Line(Wave, color)); | |
if (Lines.length > Wave.Waves.options.width) { | |
Lines.shift(); | |
} | |
}; | |
Wave.prototype.draw = function () { | |
var Wave = this; | |
var Waves = Wave.Waves; | |
var ctx = Waves.ctx; | |
var radius = Waves.radius; | |
var radius3 = radius / 3; | |
var x = Waves.centerX; | |
var y = Waves.centerY; | |
var rotation = dtr(Waves.options.rotation); | |
var amplitude = Waves.options.amplitude; | |
var debug = Waves.options.debug; | |
var Lines = Wave.Lines; | |
each(Lines, function (line, i) { | |
if (debug && i > 0) return; | |
var angle = line.angle; | |
var x1 = x - radius * Math.cos(angle[0] * amplitude + rotation); | |
var y1 = y - radius * Math.sin(angle[0] * amplitude + rotation); | |
var x2 = x + radius * Math.cos(angle[3] * amplitude + rotation); | |
var y2 = y + radius * Math.sin(angle[3] * amplitude + rotation); | |
var cpx1 = x - radius3 * Math.cos(angle[1] * amplitude * 2); | |
var cpy1 = y - radius3 * Math.sin(angle[1] * amplitude * 2); | |
var cpx2 = x + radius3 * Math.cos(angle[2] * amplitude * 2); | |
var cpy2 = y + radius3 * Math.sin(angle[2] * amplitude * 2); | |
ctx.strokeStyle = (debug) ? '#fff' : line.color; | |
ctx.beginPath(); | |
ctx.moveTo(x1, y1); | |
ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2); | |
ctx.stroke(); | |
if (debug) { | |
ctx.strokeStyle = '#fff'; | |
ctx.globalAlpha = 0.3; | |
ctx.beginPath(); | |
ctx.moveTo(x1, y1); | |
ctx.lineTo(cpx1, cpy1); | |
ctx.stroke(); | |
ctx.beginPath(); | |
ctx.moveTo(x2, y2); | |
ctx.lineTo(cpx2, cpy2); | |
ctx.stroke(); | |
ctx.globalAlpha = 1; | |
} | |
}); | |
}; | |
function Line(Wave, color) { | |
var Line = this; | |
var angle = Wave.angle; | |
var speed = Wave.speed; | |
Line.angle = [ | |
Math.sin(angle[0] += speed[0]), | |
Math.sin(angle[1] += speed[1]), | |
Math.sin(angle[2] += speed[2]), | |
Math.sin(angle[3] += speed[3]) | |
]; | |
Line.color = color; | |
} | |
function Stats() { | |
this.data = []; | |
} | |
Stats.prototype.time = function () { | |
return (performance || Date) | |
.now(); | |
}; | |
Stats.prototype.log = function () { | |
if (!this.last) { | |
this.last = this.time(); | |
return 0; | |
} | |
this.new = this.time(); | |
this.delta = this.new - this.last; | |
this.last = this.new; | |
this.data.push(this.delta); | |
if (this.data.length > 10) | |
this.data.shift(); | |
}; | |
Stats.prototype.fps = function () { | |
var fps = 0; | |
each(this.data, function (data, i) { | |
fps += data; | |
}); | |
return Math.round(1000 / (fps / this.data.length)); | |
}; | |
function each(items, callback) { | |
for (var i = 0; i < items.length; i++) { | |
callback(items[i], i); | |
} | |
} | |
function extend(options, defaults) { | |
for (var key in options) | |
if (defaults.hasOwnProperty(key)) | |
defaults[key] = options[key]; | |
return defaults; | |
} | |
function dtr(deg) { | |
return deg * pi / 180; | |
} | |
function rtd(rad) { | |
return rad * 180 / pi; | |
} | |
function diagonal_angle(w, h) { | |
var a = Math.atan2(h, w) * 1.27325; | |
return a; | |
} | |
function rnd(a, b) { | |
if (arguments.length == 1) | |
return Math.random() * a; | |
return a + Math.random() * (b - a); | |
} | |
function rnd_sign() { | |
return (Math.random() > 0.5) ? 1 : -1; | |
} | |
})(); | |
function getQueryParam(name, url = window.location.href) { | |
name = name.replace(/[\[\]]/g, '\\$&'); | |
let regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), | |
results = regex.exec(url); | |
if (!results) return null; | |
if (!results[2]) return ''; | |
return decodeURIComponent(results[2].replace(/\+/g, ' ')); | |
} | |
//MULTIVIEW IMPLEMENTATION -- TO BE LOCATED IN GLOBAL FILE | |
const ViewIndexesArray = { | |
push: function push(element) { | |
[].push.call(this, element) | |
} | |
}; | |
$('view').each(function (index) { | |
let ViewIndexesArrayItem = $(this).attr('data-index'); | |
ViewIndexesArray.push(ViewIndexesArrayItem, index); | |
}); | |
localStorage.setItem('VIndexes', JSON.stringify(ViewIndexesArray)); | |
function Multiview(Index, callback) { | |
//CHECKS IF THE INDEX IS A STRING OR AN INTEGER | |
if(typeof Index === 'string'){ | |
$('multiview view').css('display', 'none'); | |
$(`view[data-index='${Index}']`).css('display', 'block'); | |
}else{ | |
let Views = JSON.parse(localStorage['VIndexes']); | |
$('multiview view').css('display', 'none'); | |
$(`view[data-index='${Views[Index]}']`).css('display', 'block'); | |
('function' == typeof callback); | |
} | |
('function' == typeof callback); | |
} | |
$('#IdentificacionTypeEC').change(function (e) { | |
let TypeVal = parseInt($(this).val()), | |
TypeControl = $(this) | |
if (TypeVal == 0) { | |
TypeControl.css('border-color', 'red'); | |
} else { | |
TypeControl.css('border-color', '#cecece'); | |
} | |
$('#IdentificacionNoEC').change(); | |
}); | |
function IsValidIdField(Identification, Type) { | |
//IDENTIFICATION DASH REPLACE | |
let IdentificacionValue = Identification.val().replaceAll("-", ""), | |
IdentificacionControl = Identification, | |
TypeVal = parseInt(Type.val()), | |
TypeControl = Type; | |
//REVISA SI ESTA VACIA INDEFINIDA O ES 0 | |
if (IdentificacionValue == '' || IdentificacionValue == 'undefined' || IdentificacionValue == 0) { | |
IdentificacionControl.css('border-color', 'red'); | |
return false; | |
} else { | |
IdentificacionControl.css('border-color', 'green'); | |
} | |
if (TypeVal == 0) { | |
TypeControl.css('border-color', 'red'); | |
return false; | |
} else { | |
TypeControl.css('border-color', '#cecece'); | |
} | |
//REVISA EL LARGO DE LA IDENTIFICACION | |
switch (TypeVal) { | |
case 1: //CEDULA | |
if (IdentificacionValue.length != 11) { | |
IdentificacionControl.css('border-color', 'red'); | |
return false; | |
} | |
break; | |
case 6: //NUMERO EVENTO-ACTA | |
if (IdentificacionValue.length != 19) { | |
IdentificacionControl.css('border-color', 'red'); | |
return false; | |
} | |
} | |
//CHECK DE EXPRESION REGULAR PARA ACTA Y CEDULA | |
if (CheckIdentificacion(IdentificacionValue, TypeVal)) { | |
IdentificacionControl.css('border-color', 'green'); | |
} else { | |
IdentificacionControl.css('border-color', 'red'); | |
return false; | |
} | |
return true; | |
} | |
function formatTable(cnf) { | |
/* | |
debug: true, //debugging options switch | |
element: '.table_rols_modules', //object en DOM el cual será datatable | |
empty_table: 'NO HAY DATOS', | |
scroller: true, //scrollbard? | |
fixedheader: true, //Cabecera fija | |
title_report: 'Report Title', | |
auto_print: true, | |
emptyText: 'NO HAY DATOS', | |
order: [[0, 'asc']], //columna por la cual se ordena | |
column_groupby: 0, //indice de la columna de grupo | |
empty_text: 'NO HAY DATOS', //texto para cuando la tabla está vacia | |
name_report: 'CITASMED', //nombre del reporte | |
filterdrops: {visible: false, element: ''}, //filtrado de combo por columna (en desarrollo) | |
scrolly: '420px', | |
scrollx: '100%', | |
scrollCollapse: true, | |
paging: true, | |
page_length: 10, | |
filter: true, | |
info: true, | |
sort: true, | |
group: true, //agrupa por columnas | |
group_span: 4, //tamaño de la columna en celdas de manera horizontal | |
groupcolumn: 0, // | |
columnGroup: 0, | |
orientation_report: '', | |
groupSpan: 5, | |
columnDefs: [{ visible: false, targets: 0 }], | |
callback: () => { | |
}, | |
responsive: true, | |
*/ | |
if (cnf.isEmpty) { | |
alert('Configuration Object NOT FOUND'); | |
} | |
if(cnf.debug ?? false){ | |
console.table(cnf); | |
} | |
let months = ["ENE", "FEB", "MAR", "ABR", "MAY", "JUN", "JUL", "AGO", "SEP", "OCT", "NOV", "DIC"], | |
currentDate = new Date(), | |
day = currentDate.getDate(), | |
month = months[currentDate.getMonth()], | |
year = currentDate.getFullYear(), | |
d = day + "-" + month + "-" + year, | |
groupColumn = cnf.group ?? false, | |
JqueryTable = $(`${cnf.element}`).DataTable({ | |
scrollY: `${cnf.scrolly ?? '420px'}`, | |
sScrollX: `${cnf.scrollx ?? '100%'}`, | |
scrollCollapse: cnf.scrollCollapse ?? true, | |
scroller: cnf.scroller ?? true, | |
paging: cnf.paging ?? true, | |
pageLength: cnf.page_length ?? 10, | |
filter: cnf.filter ?? true, | |
info: cnf.info ?? true, | |
sort: cnf.sort ?? true, | |
FixedHeader: cnf.fixed_header ?? true, | |
order: cnf.order ?? [[ 0, "desc" ]], | |
columnDefs: cnf.columnDefs ?? '', | |
drawCallback: function (settings) { | |
if (cnf.group) { | |
let api = this.api(), | |
rows = api.rows({page: 'current'}).nodes(), | |
last = null; | |
api.column(cnf.groupcolumn, {page: 'current'}).data().each(function (group, i) { | |
if (last !== group) { | |
$(rows).eq(i).before( | |
`<tr class="group bg-primary text-white"><td colspan="${cnf.group_span ?? 5}">${group}</td></tr>` | |
); | |
last = group; | |
} | |
}); | |
} | |
('function' == typeof cnf.callback) && cnf.callback(); | |
}, | |
language: { | |
emptyTable: cnf.empty_table ?? `NO HAY DATOS`, | |
Processing: '<i class="fa fa- spinner fa- spin fa - 3x fa - fw"></i><span class="sr - only">Cargando...</span>', | |
sZeroRecords: "No se encontraron resultados", | |
sInfo: "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros", | |
sInfoEmpty: "Mostrando registros del 0 al 0 de un total de 0 registros", | |
sInfoFiltered: "(filtrado de un total de _MAX_ registros)", | |
sInfoPostFix: "", | |
sSearch: "", | |
searchPlaceholder: "🔎 Buscar...", | |
sUrl: "", | |
sInfoThousands: ",", | |
sLoadingRecords: "Cargando...", | |
oPaginate: { | |
sFirst: "Primero", | |
sLast: "Último", | |
sNext: "Siguiente", | |
sPrevious: "Anterior" | |
}, | |
oAria: { | |
sSortAscending: "Activar para ordenar la columna de manera ascendente", | |
sSortDescending: "Activar para ordenar la columna de manera descendente" | |
}, | |
buttons: { | |
copy: 'Copiar', | |
Colvis: 'Visibilidad' | |
} | |
}, | |
dom: cnf.dom ?? 'Bfrtip', | |
buttons: [ | |
{ | |
title: cnf.title_report ?? 'CITASMED - REPORTERIA', | |
messageTop: `${cnf.name_report ?? 'REPORTE'} Fecha: ${d}`, | |
text: "<i class='fa fa-file-pdf-o'></i> PDF", | |
className: 'btn_pdf', | |
extend: 'pdf', | |
orientation: cnf.orientation_report ?? 'landscape' | |
}, | |
{ | |
title: cnf.title_report ?? 'CITASMED - REPORTERIA', | |
messageTop: `${cnf.name_report ?? 'REPORTE'} Fecha: ${d}`, | |
text: "<i class='fa fa-file-excel-o'></i> Excel", | |
className: 'btn_excel', | |
extend: 'excel', | |
orientation: cnf.orientation_report ?? 'landscape' | |
}, | |
{ | |
title: cnf.title_report ?? 'CITASMED - REPORTERIA', | |
messageTop: `${cnf.name_report ?? 'REPORTE'} Fecha: ${d}`, | |
text: "<i class='fa fa-print'></i> Imprimir", | |
className: 'btn_print', | |
autoPrint: cnf.auto_print, | |
extend: 'print', | |
orientation: cnf.orientation_report ?? 'landscape', | |
customize: function (win) { | |
$(win.document.body).find('p').css('color', 'black') | |
} | |
}, | |
cnf.customButtons ?? undefined | |
], | |
responsive: cnf.responsive ?? true | |
}); | |
$(`${cnf.element}_filter input`).addClass('form-control m-input m-input--solid'); | |
$(`${cnf.element}`).css('width', '100%'); | |
$($.fn.dataTable.tables(true)).DataTable().columns.adjust(); | |
if (cnf.pdf ?? true) { | |
$('.btn_pdf').hide(); | |
} | |
if (cnf.excel ?? true) { | |
$('.btn_excel').hide(); | |
} | |
if (cnf.print ?? true) { | |
$('.btn_print').hide(); | |
} | |
} | |
function removeDiacritics (str) { | |
var defaultDiacriticsRemovalMap = [ | |
{'base':'A', 'letters':/[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g}, | |
{'base':'AA','letters':/[\uA732]/g}, | |
{'base':'AE','letters':/[\u00C6\u01FC\u01E2]/g}, | |
{'base':'AO','letters':/[\uA734]/g}, | |
{'base':'AU','letters':/[\uA736]/g}, | |
{'base':'AV','letters':/[\uA738\uA73A]/g}, | |
{'base':'AY','letters':/[\uA73C]/g}, | |
{'base':'B', 'letters':/[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g}, | |
{'base':'C', 'letters':/[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g}, | |
{'base':'D', 'letters':/[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g}, | |
{'base':'DZ','letters':/[\u01F1\u01C4]/g}, | |
{'base':'Dz','letters':/[\u01F2\u01C5]/g}, | |
{'base':'E', 'letters':/[\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E]/g}, | |
{'base':'F', 'letters':/[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g}, | |
{'base':'G', 'letters':/[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g}, | |
{'base':'H', 'letters':/[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g}, | |
{'base':'I', 'letters':/[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g}, | |
{'base':'J', 'letters':/[\u004A\u24BF\uFF2A\u0134\u0248]/g}, | |
{'base':'K', 'letters':/[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g}, | |
{'base':'L', 'letters':/[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g}, | |
{'base':'LJ','letters':/[\u01C7]/g}, | |
{'base':'Lj','letters':/[\u01C8]/g}, | |
{'base':'M', 'letters':/[\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C]/g}, | |
{'base':'N', 'letters':/[\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4]/g}, | |
{'base':'NJ','letters':/[\u01CA]/g}, | |
{'base':'Nj','letters':/[\u01CB]/g}, | |
{'base':'O', 'letters':/[\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C]/g}, | |
{'base':'OI','letters':/[\u01A2]/g}, | |
{'base':'OO','letters':/[\uA74E]/g}, | |
{'base':'OU','letters':/[\u0222]/g}, | |
{'base':'P', 'letters':/[\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754]/g}, | |
{'base':'Q', 'letters':/[\u0051\u24C6\uFF31\uA756\uA758\u024A]/g}, | |
{'base':'R', 'letters':/[\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782]/g}, | |
{'base':'S', 'letters':/[\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784]/g}, | |
{'base':'T', 'letters':/[\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786]/g}, | |
{'base':'TZ','letters':/[\uA728]/g}, | |
{'base':'U', 'letters':/[\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244]/g}, | |
{'base':'V', 'letters':/[\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245]/g}, | |
{'base':'VY','letters':/[\uA760]/g}, | |
{'base':'W', 'letters':/[\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72]/g}, | |
{'base':'X', 'letters':/[\u0058\u24CD\uFF38\u1E8A\u1E8C]/g}, | |
{'base':'Y', 'letters':/[\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE]/g}, | |
{'base':'Z', 'letters':/[\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762]/g}, | |
{'base':'a', 'letters':/[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g}, | |
{'base':'aa','letters':/[\uA733]/g}, | |
{'base':'ae','letters':/[\u00E6\u01FD\u01E3]/g}, | |
{'base':'ao','letters':/[\uA735]/g}, | |
{'base':'au','letters':/[\uA737]/g}, | |
{'base':'av','letters':/[\uA739\uA73B]/g}, | |
{'base':'ay','letters':/[\uA73D]/g}, | |
{'base':'b', 'letters':/[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g}, | |
{'base':'c', 'letters':/[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g}, | |
{'base':'d', 'letters':/[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g}, | |
{'base':'dz','letters':/[\u01F3\u01C6]/g}, | |
{'base':'e', 'letters':/[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g}, | |
{'base':'f', 'letters':/[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g}, | |
{'base':'g', 'letters':/[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g}, | |
{'base':'h', 'letters':/[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g}, | |
{'base':'hv','letters':/[\u0195]/g}, | |
{'base':'i', 'letters':/[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g}, | |
{'base':'j', 'letters':/[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g}, | |
{'base':'k', 'letters':/[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g}, | |
{'base':'l', 'letters':/[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g}, | |
{'base':'lj','letters':/[\u01C9]/g}, | |
{'base':'m', 'letters':/[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g}, | |
{'base':'n', 'letters':/[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g}, | |
{'base':'nj','letters':/[\u01CC]/g}, | |
{'base':'o', 'letters':/[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g}, | |
{'base':'oi','letters':/[\u01A3]/g}, | |
{'base':'ou','letters':/[\u0223]/g}, | |
{'base':'oo','letters':/[\uA74F]/g}, | |
{'base':'p','letters':/[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g}, | |
{'base':'q','letters':/[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g}, | |
{'base':'r','letters':/[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g}, | |
{'base':'s','letters':/[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g}, | |
{'base':'t','letters':/[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g}, | |
{'base':'tz','letters':/[\uA729]/g}, | |
{'base':'u','letters':/[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g}, | |
{'base':'v','letters':/[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g}, | |
{'base':'vy','letters':/[\uA761]/g}, | |
{'base':'w','letters':/[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g}, | |
{'base':'x','letters':/[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g}, | |
{'base':'y','letters':/[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g}, | |
{'base':'z','letters':/[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g} | |
]; | |
for(var i=0; i<defaultDiacriticsRemovalMap.length; i++) { | |
str = str.replace(defaultDiacriticsRemovalMap[i].letters, defaultDiacriticsRemovalMap[i].base); | |
} | |
return str; | |
} | |
function formatTable(cnf) { | |
/* | |
debug: true, //debugging options switch | |
element: '.table_rols_modules', //object en DOM el cual será datatable | |
empty_table: 'NO HAY DATOS', | |
scroller: true, //scrollbard? | |
fixedheader: true, //Cabecera fija | |
title_report: 'Report Title', | |
auto_print: true, | |
emptyText: 'NO HAY DATOS', | |
order: [[0, 'asc']], //columna por la cual se ordena | |
column_groupby: 0, //indice de la columna de grupo | |
empty_text: 'NO HAY DATOS', //texto para cuando la tabla está vacia | |
name_report: 'CITASMED', //nombre del reporte | |
filterdrops: {visible: false, element: ''}, //filtrado de combo por columna (en desarrollo) | |
scrolly: 'auto', // limita el scroll a los pixeles desseados Y [420px] | |
scrollx: '100%', // limita el scroll a los pixeles desseados X [100%] | |
scrollCollapse: true, // elimina la paginacion | |
paging: true, | |
page_length: 10, | |
filter: true, | |
info: true, | |
sort: true, | |
group: true, //agrupa por columnas | |
group_span: 4, //tamaño de la columna en celdas de manera horizontal | |
groupcolumn: 0, // | |
columnGroup: 0, | |
orientation_report: '', | |
groupSpan: 5, | |
columnDefs: [{ visible: false, targets: 0 }], | |
callback: () => { | |
}, | |
responsive: true, | |
*/ | |
if (cnf.isEmpty) { | |
alert('Configuration Object NOT FOUND'); | |
} | |
if(cnf.debug ?? false){ | |
console.table(cnf); | |
} | |
let months = ["ENE", "FEB", "MAR", "ABR", "MAY", "JUN", "JUL", "AGO", "SEP", "OCT", "NOV", "DIC"], | |
currentDate = new Date(), | |
day = currentDate.getDate(), | |
month = months[currentDate.getMonth()], | |
year = currentDate.getFullYear(), | |
d = day + "-" + month + "-" + year, | |
groupColumn = cnf.group ?? false, | |
JqueryTable = $(`${cnf.element}`).DataTable({ | |
scrollY: `${cnf.scrolly ?? 'auto'}`, | |
sScrollX: `${cnf.scrollx ?? '100%'}`, | |
scrollCollapse: cnf.scrollCollapse ?? false, | |
scroller: cnf.scroller ?? false, | |
paging: cnf.paging ?? true, | |
pageLength: cnf.page_length ?? 10, | |
filter: cnf.filter ?? true, | |
info: cnf.info ?? true, | |
sort: cnf.sort ?? true, | |
FixedHeader: cnf.fixed_header ?? true, | |
order: cnf.order ?? [[ 0, "desc" ]], | |
columnDefs: cnf.columnDefs ?? '', | |
drawCallback: function (settings) { | |
if (cnf.group) { | |
let api = this.api(), | |
rows = api.rows({page: 'current'}).nodes(), | |
last = null; | |
api.column(cnf.groupcolumn, {page: 'current'}).data().each(function (group, i) { | |
if (last !== group) { | |
$(rows).eq(i).before( | |
`<tr class="group bg-primary text-white"><td colspan="${cnf.group_span ?? 5}">${group}</td></tr>` | |
); | |
last = group; | |
} | |
}); | |
} | |
('function' == typeof cnf.callback) && cnf.callback(); | |
}, | |
language: { | |
emptyTable: cnf.empty_table ?? `NO HAY DATOS`, | |
Processing: '<i class="fa fa- spinner fa- spin fa - 3x fa - fw"></i><span class="sr - only">Cargando...</span>', | |
sZeroRecords: "No se encontraron resultados", | |
sInfo: "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros", | |
sInfoEmpty: "Mostrando registros del 0 al 0 de un total de 0 registros", | |
sInfoFiltered: "(filtrado de un total de _MAX_ registros)", | |
sInfoPostFix: "", | |
sSearch: "", | |
searchPlaceholder: "🔎 Buscar...", | |
sUrl: "", | |
sInfoThousands: ",", | |
sLoadingRecords: "Cargando...", | |
oPaginate: { | |
sFirst: "Primero", | |
sLast: "Último", | |
sNext: "Siguiente", | |
sPrevious: "Anterior" | |
}, | |
oAria: { | |
sSortAscending: "Activar para ordenar la columna de manera ascendente", | |
sSortDescending: "Activar para ordenar la columna de manera descendente" | |
}, | |
buttons: { | |
copy: 'Copiar', | |
Colvis: 'Visibilidad' | |
} | |
}, | |
dom: cnf.dom ?? 'Bfrtip', | |
buttons: [ | |
{ | |
extend: 'pageLength', | |
text: 'Mostrar', | |
className: 'btn-outline-info', | |
}, | |
{ | |
extend: 'copy', | |
text: 'Copiar', | |
className: 'btn-info btn_copy', | |
}, | |
{ | |
extend: 'colvis', | |
text: 'Columnas', | |
className: 'btn-info', | |
}, | |
{ | |
title: cnf.title_report ?? 'CITASMED - REPORTERIA', | |
messageTop: `${cnf.name_report ?? 'REPORTE'} Fecha: ${d}`, | |
text: "<i class='fa fa-file-pdf-o'></i> PDF", | |
className: 'btn_pdf', | |
extend: 'pdf', | |
orientation: cnf.orientation_report ?? 'landscape' | |
}, | |
{ | |
title: cnf.title_report ?? 'CITASMED - REPORTERIA', | |
messageTop: `${cnf.name_report ?? 'REPORTE'} Fecha: ${d}`, | |
text: "<i class='fa fa-file-excel-o'></i> Excel", | |
className: 'btn_excel btn-info', | |
extend: 'excel', | |
orientation: cnf.orientation_report ?? 'landscape' | |
}, | |
{ | |
title: cnf.title_report ?? 'CITASMED - REPORTERIA', | |
messageTop: `${cnf.name_report ?? 'REPORTE'} Fecha: ${d}`, | |
text: "<i class='fa fa-print'></i> Imprimir", | |
className: 'btn_print', | |
autoPrint: cnf.auto_print, | |
extend: 'print', | |
orientation: cnf.orientation_report ?? 'landscape', | |
customize: function (win) { | |
$(win.document.body).find('p').css('color', 'black') | |
} | |
}, | |
cnf.customButtons ?? undefined | |
], | |
responsive: cnf.responsive ?? true | |
}); | |
$(`${cnf.element}_filter input`).addClass('form-control m-input m-input--solid'); | |
$(`${cnf.element}`).css('width', '100%'); | |
$($.fn.dataTable.tables(true)).DataTable().columns.adjust(); | |
//SI EL PARAMETRO SELECT = TRUE ENTONBCES LAS LINEAS PUEDEN SER CLICKADAS | |
if (cnf.select ?? true) { | |
//AÑADE CLASES DE SELECTED Y DESELECTED A LOS ROWS DE TBODY DE UNA TABLA | |
$(cnf.element).on('dblclick', 'tr', function (e) { | |
if ($(this).hasClass('selected')) { | |
$(this).removeClass('selected'); | |
} else { | |
$(this).addClass('selected'); | |
} | |
}); | |
} | |
//Prevent selection with one clic event, but allow two clics event. | |
$(cnf.element).on('click', 'tr', function (e) { | |
e.stopPropagation(); | |
}); | |
if (cnf.pdf ?? true) { | |
$('.btn_pdf').hide(); | |
} | |
if (cnf.excel ?? false) { | |
$('.btn_excel').hide(); | |
} | |
if (cnf.print ?? true) { | |
$('.btn_print').hide(); | |
} | |
if(cnf.copy ?? false){ | |
$('.btn_copy').hide(); | |
} | |
} | |
function FormatTableServerSide(cnf) { | |
/* | |
EJEMPLO DE ARREGLOS DE LAS OBJETOS/COLUMNAS QUE VENDRAN DEL MODELO | |
[ | |
{ "data": "Id" }, | |
{ "data": "NombreCompleto" }, | |
{ "data": "Image" }, | |
{ "data": "Identification" }, | |
{ "data": "Email" }, | |
{ "data": "Phone" }, | |
{ "data": "Cellphone" }, | |
{ "data": "Status" }, | |
{ "data": "Buttons" } | |
] | |
debug: true, //debugging options switch | |
element: '.table_rols_modules', //object en DOM el cual será datatable | |
empty_table: 'NO HAY DATOS', | |
scroller: true, //scrollbard? | |
fixedheader: true, //Cabecera fija | |
title_report: 'Report Title', | |
auto_print: true, | |
emptyText: 'NO HAY DATOS', | |
order: [[0, 'asc']], //columna por la cual se ordena | |
column_groupby: 0, //indice de la columna de grupo | |
empty_text: 'NO HAY DATOS', //texto para cuando la tabla está vacia | |
name_report: 'CITASMED', //nombre del reporte | |
filterdrops: {visible: false, element: ''}, //filtrado de combo por columna (en desarrollo) | |
scrolly: 'auto', // limita el scroll a los pixeles desseados Y [420px] | |
scrollx: '100%', // limita el scroll a los pixeles desseados X [100%] | |
scrollCollapse: true, // elimina la paginacion | |
paging: true, | |
page_length: 10, | |
filter: true, | |
info: true, | |
sort: true, | |
group: true, //agrupa por columnas | |
group_span: 4, //tamaño de la columna en celdas de manera horizontal | |
groupcolumn: 0, // | |
columnGroup: 0, | |
orientation_report: '', | |
groupSpan: 5, | |
columnDefs: [{ visible: false, targets: 0 }], | |
callback: () => { | |
}, | |
responsive: true, | |
*/ | |
if (cnf.isEmpty) { | |
alert('Configuration Object NOT FOUND'); | |
} | |
if (!('element' in cnf)) { | |
console.log('debe de configurar un elemento'); | |
return; | |
} | |
if (!('columns' in cnf)) { | |
console.log('debe de configurar las columnas que desea renderizar'); | |
return; | |
} | |
if (cnf.debug ?? false) { | |
console.table(cnf); | |
} | |
if(('destroy' in cnf) && cnf.destroy){ | |
if (!$.fn.DataTable.isDataTable(cnf.element) && cnf.destroy) { | |
$(cnf.element).DataTable().destroy(); | |
} | |
} | |
let months = ["ENE", "FEB", "MAR", "ABR", "MAY", "JUN", "JUL", "AGO", "SEP", "OCT", "NOV", "DIC"], | |
currentDate = new Date(), | |
day = currentDate.getDate(), | |
month = months[currentDate.getMonth()], | |
year = currentDate.getFullYear(), | |
d = day + "-" + month + "-" + year, | |
groupColumn = cnf.group ?? false, | |
Table = $(cnf.element).DataTable({ | |
scrollY: `${cnf.scrolly ?? 'auto'}`, | |
sScrollX: `${cnf.scrollx ?? '100%'}`, | |
scrollCollapse: cnf.scrollCollapse ?? false, | |
scroller: cnf.scroller ?? false, | |
paging: cnf.paging ?? true, | |
pageLength: cnf.page_length ?? 10, | |
filter: cnf.filter ?? true, | |
info: cnf.info ?? true, | |
sort: cnf.sort ?? true, | |
FixedHeader: cnf.fixed_header ?? true, | |
order: cnf.order ?? [[0, "desc"]], | |
columnDefs: cnf.columnDefs ?? '', | |
drawCallback: function (settings) { | |
if (cnf.group) { | |
let api = this.api(), | |
rows = api.rows({page: 'current'}).nodes(), | |
last = null; | |
api.column(cnf.groupcolumn, {page: 'current'}).data().each(function (group, i) { | |
if (last !== group) { | |
$(rows).eq(i).before( | |
`<tr class="group bg-primary text-white"><td colspan="${cnf.group_span ?? 5}">${group}</td></tr>` | |
); | |
last = group; | |
} | |
}); | |
} | |
('function' == typeof cnf.callback) && cnf.callback(); | |
}, | |
language: { | |
emptyTable: cnf.empty_table ?? `NO HAY DATOS`, | |
Processing: '<i class="fa fa- spinner fa- spin fa - 3x fa - fw"></i><span class="sr - only">Cargando...</span>', | |
sZeroRecords: "No se encontraron resultados", | |
sInfo: "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros", | |
sInfoEmpty: "Mostrando registros del 0 al 0 de un total de 0 registros", | |
sInfoFiltered: "(filtrado de un total de _MAX_ registros)", | |
sInfoPostFix: "", | |
sSearch: "", | |
searchPlaceholder: "🔎 Buscar...", | |
sUrl: "", | |
sInfoThousands: ",", | |
sLoadingRecords: "Cargando...", | |
oPaginate: { | |
sFirst: "Primero", | |
sLast: "Último", | |
sNext: "Siguiente", | |
sPrevious: "Anterior" | |
}, | |
oAria: { | |
sSortAscending: "Activar para ordenar la columna de manera ascendente", | |
sSortDescending: "Activar para ordenar la columna de manera descendente" | |
}, | |
buttons: { | |
copy: 'Copiar', | |
Colvis: 'Visibilidad' | |
} | |
}, | |
dom: cnf.dom ?? 'Bfrtip', | |
buttons: [ | |
{ | |
extend: 'pageLength', | |
text: 'Mostrar', | |
className: 'btn-outline-info', | |
}, | |
{ | |
extend: 'copy', | |
text: 'Copiar', | |
className: 'btn-info btn_copy', | |
}, | |
{ | |
extend: 'colvis', | |
text: 'Columnas', | |
className: 'btn-info', | |
}, | |
{ | |
title: cnf.title_report ?? 'CITASMED - REPORTERIA', | |
messageTop: `${cnf.name_report ?? 'REPORTE'} Fecha: ${d}`, | |
text: "<i class='fa fa-file-pdf-o'></i> PDF", | |
className: 'btn_pdf', | |
extend: 'pdf', | |
orientation: cnf.orientation_report ?? 'landscape' | |
}, | |
{ | |
title: cnf.title_report ?? 'CITASMED - REPORTERIA', | |
messageTop: `${cnf.name_report ?? 'REPORTE'} Fecha: ${d}`, | |
text: "<i class='fa fa-file-excel-o'></i> Excel", | |
className: 'btn_excel btn-info', | |
extend: 'excel', | |
orientation: cnf.orientation_report ?? 'landscape' | |
}, | |
{ | |
title: cnf.title_report ?? 'CITASMED - REPORTERIA', | |
messageTop: `${cnf.name_report ?? 'REPORTE'} Fecha: ${d}`, | |
text: "<i class='fa fa-print'></i> Imprimir", | |
className: 'btn_print', | |
autoPrint: cnf.auto_print, | |
extend: 'print', | |
orientation: cnf.orientation_report ?? 'landscape', | |
customize: function (win) { | |
$(win.document.body).find('p').css('color', 'black') | |
} | |
}, | |
cnf.customButtons ?? undefined | |
], | |
responsive: cnf.responsive ?? true, | |
processing: true, | |
serverSide: true, | |
destroy: cnf.destroy ?? true, | |
ajax: { | |
url: `/core/model/ss_model/${cnf.model}?${cnf.parameters}`, | |
type: cnf.type ?? 'POST' | |
}, | |
columns: cnf.columns ?? [{}], | |
select: cnf.select ?? true, | |
}); | |
$(`${cnf.element}_filter input`).addClass('form-control m-input m-input--solid'); | |
$(`${cnf.element}`).css('width', '100%'); | |
$($.fn.dataTable.tables(true)).DataTable().columns.adjust(); | |
//SI EL PARAMETRO SELECT = TRUE ENTONBCES LAS LINEAS PUEDEN SER CLICKADAS | |
if (cnf.select ?? true) { | |
//AÑADE CLASES DE SELECTED Y DESELECTED A LOS ROWS DE TBODY DE UNA TABLA | |
$(cnf.element).on('dblclick', 'tr', function (e) { | |
if ($(this).hasClass('selected')) { | |
$(this).removeClass('selected'); | |
} else { | |
$(this).addClass('selected'); | |
} | |
}); | |
} | |
//Prevent selection with one clic event, but allow two clics event. | |
$(cnf.element).on('click', 'tr', function (e) { | |
e.stopPropagation(); | |
}); | |
if (cnf.pdf ?? true) { | |
$('.btn_pdf').hide(); | |
} | |
if (cnf.excel ?? false) { | |
$('.btn_excel').hide(); | |
} | |
if (cnf.print ?? true) { | |
$('.btn_print').hide(); | |
} | |
if (cnf.copy ?? false) { | |
$('.btn_copy').hide(); | |
} | |
} | |
function formatTable(cnf) { | |
/* | |
debug: true, //debugging options switch | |
element: '.table_rols_modules', //object en DOM el cual será datatable | |
empty_table: 'NO HAY DATOS', | |
scroller: true, //scrollbard? | |
fixed_header: true, //Cabecera fija | |
title_report: 'Report Title', | |
auto_print: true, | |
emptyText: 'NO HAY DATOS', | |
order: [[0, 'asc']], //columna por la cual se ordena | |
column_groupby: 0, //indice de la columna de grupo | |
empty_text: 'NO HAY DATOS', //texto para cuando la tabla está vacia | |
name_report: 'CITASMED', //nombre del reporte | |
filterdrops: {visible: false, element: ''}, //filtrado de combo por columna (en desarrollo) | |
scrolly: 'auto', // limita el scroll a los pixeles desseados Y [420px] | |
scrollx: '100%', // limita el scroll a los pixeles desseados X [100%] | |
scrollCollapse: true, // elimina la paginacion | |
paging: true, | |
page_length: 10, | |
filter: true, | |
info: true, | |
sort: true, | |
group: true, //agrupa por columnas | |
group_span: 4, //tamaño de la columna en celdas de manera horizontal | |
groupcolumn: 0, // | |
columnGroup: 0, | |
orientation_report: '', | |
groupSpan: 5, | |
column_defs: [{ visible: false, targets: 0, searchable: false }], | |
callback: () => { | |
}, | |
responsive: true, | |
*/ | |
if (cnf.isEmpty) { | |
alert('Configuration Object NOT FOUND'); | |
} | |
if (!('element' in cnf)) { | |
console.log('debe de configurar un elemento'); | |
return; | |
} | |
if (cnf.debug ?? false) { | |
console.table(cnf); | |
} | |
if(('destroy' in cnf) && cnf.destroy){ | |
if ($.fn.DataTable.isDataTable(cnf.element)) { | |
// $(cnf.element).DataTable().destroy(); | |
$(cnf.element).DataTable().clear().destroy();; | |
} | |
} | |
let months = ["ENE", "FEB", "MAR", "ABR", "MAY", "JUN", "JUL", "AGO", "SEP", "OCT", "NOV", "DIC"], | |
currentDate = new Date(), | |
day = currentDate.getDate(), | |
month = months[currentDate.getMonth()], | |
year = currentDate.getFullYear(), | |
d = day + "-" + month + "-" + year, | |
groupColumn = cnf.group ?? false, | |
JqueryTable = $(`${cnf.element}`).DataTable({ | |
scrollY: `${cnf.scrolly ?? 'auto'}`, | |
sScrollX: `${cnf.scrollx ?? '100%'}`, | |
scrollCollapse: cnf.scrollCollapse ?? false, | |
scroller: cnf.scroller ?? false, | |
paging: cnf.paging ?? true, | |
searching: cnf.searching ?? true, | |
pageLength: cnf.page_length ?? 10, | |
filter: cnf.filter ?? true, | |
info: cnf.info ?? true, | |
sort: cnf.sort ?? true, | |
FixedHeader: cnf.fixed_header ?? true, | |
order: cnf.order ?? [[0, "desc"]], | |
columnDefs: cnf.columnDefs ?? '', | |
drawCallback: function (settings) { | |
if (cnf.group) { | |
let api = this.api(), | |
rows = api.rows({page: 'current'}).nodes(), | |
last = null; | |
api.column(cnf.groupcolumn, {page: 'current'}).data().each(function (group, i) { | |
if (last !== group) { | |
$(rows).eq(i).before( | |
`<tr class="group bg-primary text-white"><td colspan="${cnf.group_span ?? 5}">${group}</td></tr>` | |
); | |
last = group; | |
} | |
}); | |
} | |
('function' == typeof cnf.callback) && cnf.callback(); | |
}, | |
language: { | |
emptyTable: cnf.empty_table ?? `NO HAY DATOS`, | |
Processing: '<i class="fa fa- spinner fa- spin fa - 3x fa - fw"></i><span class="sr - only">Cargando...</span>', | |
sZeroRecords: "No se encontraron resultados", | |
sInfo: "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros", | |
sInfoEmpty: "Mostrando registros del 0 al 0 de un total de 0 registros", | |
sInfoFiltered: "(filtrado de un total de _MAX_ registros)", | |
sInfoPostFix: "", | |
sSearch: "", | |
searchPlaceholder: "🔎 Buscar...", | |
sUrl: "", | |
sInfoThousands: ",", | |
sLoadingRecords: "Cargando...", | |
oPaginate: { | |
sFirst: "Primero", | |
sLast: "Último", | |
sNext: "Siguiente", | |
sPrevious: "Anterior" | |
}, | |
oAria: { | |
sSortAscending: "Activar para ordenar la columna de manera ascendente", | |
sSortDescending: "Activar para ordenar la columna de manera descendente" | |
}, | |
buttons: { | |
copy: 'Copiar', | |
Colvis: 'Visibilidad' | |
} | |
}, | |
dom: cnf.dom ?? 'Bfrtip', | |
buttons: [ | |
{ | |
extend: 'pageLength', | |
text: 'Mostrar', | |
className: 'btn-outline-info default_btn', | |
}, | |
{ | |
extend: 'copy', | |
text: 'Copiar', | |
className: 'btn-info btn_copy default_btn', | |
}, | |
{ | |
extend: 'colvis', | |
text: 'Columnas', | |
className: 'btn-info default_btn', | |
}, | |
{ | |
title: cnf.title_report ?? 'CITASMED - REPORTERIA', | |
messageTop: `${cnf.name_report ?? 'REPORTE'} Fecha: ${d}`, | |
text: "<i class='fa fa-file-pdf-o'></i> PDF", | |
className: 'btn_pdf', | |
extend: 'pdf', | |
orientation: cnf.orientation_report ?? 'landscape' | |
}, | |
{ | |
title: cnf.title_report ?? 'CITASMED - REPORTERIA', | |
messageTop: `${cnf.name_report ?? 'REPORTE'} Fecha: ${d}`, | |
text: "<i class='fa fa-file-excel-o'></i> Excel", | |
className: 'btn_excel btn-info', | |
extend: 'excel', | |
orientation: cnf.orientation_report ?? 'landscape' | |
}, | |
{ | |
title: cnf.title_report ?? 'CITASMED - REPORTERIA', | |
messageTop: `${cnf.name_report ?? 'REPORTE'} Fecha: ${d}`, | |
text: "<i class='fa fa-print'></i> Imprimir", | |
className: 'btn_print', | |
autoPrint: cnf.auto_print, | |
extend: 'print', | |
orientation: cnf.orientation_report ?? 'landscape', | |
customize: function (win) { | |
$(win.document.body).find('p').css('color', 'black') | |
} | |
}, | |
cnf.customButtons ?? undefined | |
], | |
responsive: cnf.responsive ?? true | |
}); | |
$(`${cnf.element}_filter input`).addClass('form-control m-input m-input--solid'); | |
$(`${cnf.element}`).css('width', '100%'); | |
$($.fn.dataTable.tables(true)).DataTable().columns.adjust(); | |
//SI EL PARAMETRO SELECT = TRUE ENTONBCES LAS LINEAS PUEDEN SER CLICKADAS | |
if (cnf.select ?? true) { | |
//AÑADE CLASES DE SELECTED Y DESELECTED A LOS ROWS DE TBODY DE UNA TABLA | |
$(cnf.element).on('dblclick', 'tr', function (e) { | |
if ($(this).hasClass('selected')) { | |
$(this).removeClass('selected'); | |
} else { | |
$(this).addClass('selected'); | |
} | |
}); | |
} | |
//Prevent selection with one clic event, but allow two clics event. | |
$(cnf.element).on('click', 'tr', function (e) { | |
e.stopPropagation(); | |
}); | |
if (cnf.pdf ?? true) { | |
$('.btn_pdf').hide(); | |
} | |
if (cnf.excel ?? false) { | |
$('.btn_excel').hide(); | |
} | |
if (cnf.print ?? true) { | |
$('.btn_print').hide(); | |
} | |
if (cnf.copy ?? false) { | |
$('.btn_copy').hide(); | |
} | |
if(cnf.default_btn){ | |
$('.default_btn').hide(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment