// javascript que se ejecutara en la carga de todas las páginas // ############################################################################ $(function() { $('#selectall').bind('click', function(event) { var isChecked = this.checked; $('input[id^="check_"]').each(function(index) { this.checked = isChecked; }); }); $('.deleteFromGrid').bind('click', function(event) { if(!customConfirm('Se va a borrar, \u00bfContinuar?')){ event.preventDefault(); } }); $('#btn-mostrar-filtro').bind('click', function(event) { mostrarFiltro(); }); $('#btn-ocultar-filtro').bind('click', function(event) { ocultarFiltro(); }); $('.filterable .btn-filter').click(function(){ var $panel = $(this).parents('.filterable'), $filters = $panel.find('.filters input'), $tbody = $panel.find('.table tbody'); if ($filters.prop('disabled') == true) { $filters.prop('disabled', false); $filters.first().focus(); } else { $filters.val('').prop('disabled', true); $tbody.find('.no-result').remove(); $tbody.find('tr').show(); } }); $('.filterable .filters input').keyup(function(e){ /* Ignore tab key */ var code = e.keyCode || e.which; if (code == '9') return; /* Useful DOM data and selectors */ var $input = $(this), inputContent = $input.val().toLowerCase(), $panel = $input.parents('.filterable'), column = $panel.find('.filters th').index($input.parents('th')), $table = $panel.find('.table'), $rows = $table.find('tbody tr'); /* Dirtiest filter function ever ;) */ var $filteredRows = $rows.filter(function(){ var value = $(this).find('td').eq(column).text().toLowerCase(); return value.indexOf(inputContent) === -1; }); /* Clean previous no-result if exist */ $table.find('tbody .no-result').remove(); /* Show all rows, hide filtered ones (never do that outside of a demo ! xD) */ $rows.show(); $filteredRows.hide(); }); $('#btn-crear').bind('click', function(event) { $('#form').attr('action', 'inicioCrear'); bloquearElemento(); $('#form').submit(); }); $('a[id^="btn-borrar_"]') .each( function(index) { $(this) .bind( 'click', function(event) { return confirm(''); }); }); $("#btn-multiborrar").click(function(e) { e.preventDefault(); bootbox.confirm('Se va a borrar, \u00bfContinuar?', function(confirmed) { if(confirmed) { $('#form').attr('action', 'borrarMultiple'); bloquearElemento(); $('#form').submit(); } }); }); $(".campoFecha").each(function(){ $(this).datepicker( { format: "dd/mm/yyyy", weekStart: 1, todayBtn: "linked", clearBtn: true, language: "es" } ); }); }); // ############################################################################ function customConfirm(mensaje){ var ret = confirm(mensaje); return ret; } function customAlert(mensaje){ bootbox.alert({ size: 'large', message: mensaje }); } function customAlertTitle(title, mensaje){ bootbox.alert({ size: 'large', title: title, message: mensaje, closeButton: false, buttons: { ok: { className: 'btn btn-sm btn-swsce' } }, callback: function() { } }); } function mostrarFiltro(){ $('.filter').show(); $('#btn-mostrar-filtro').hide(); $('#btn-ocultar-filtro').show(); } function ocultarFiltro(){ $('.filter').hide(); $('#btn-ocultar-filtro').hide(); $('#btn-mostrar-filtro').show(); } function resetFormField(groupName){ if(groupName!==undefined){ $("[name^='"+groupName+"']").each(function() { if( $(this).is('select') ) { $(this).selectOptions(''); }else{ $(this).val(''); } }) } } var hrefToPrint=''; function setHrefToPrint(nameHref){ hrefToPrint = $("[name='"+nameHref+"']").attr("href"); return hrefToPrint; } function bloquearElemento(elementId){ if (elementId === undefined || elementId.legth==0){ $.blockUI({ message: null, css: { opacity: .4, color: '#fff' } }); }else{ $('#'+elementId+'').block({ message: null, css: { opacity: .4, color: '#fff' } }); } } function desBloquearElemento(elementId){ if (elementId === undefined || elementId.legth==0){ $.unblockUI(); }else{ $('#'+elementId+'').unblock(); } } function customGrowlUI(titulo,mensaje){ $.blockUI({ message: mensaje, fadeIn: 700, fadeOut: 700, timeout: 2000, showOverlay: false, centerY: false, css: { width: '350px', top: '10px', left: '', right: '10px', border: 'none', padding: '5px', backgroundColor: '#000', '-webkit-border-radius': '10px', '-moz-border-radius': '10px', opacity: .6, color: '#fff' } }); } function loadCategoriasByOcupacion(idContenedorTexto, idSelectDestino, url, idOcup, valor){ $.getJSON( url, { idOcupacion: idOcup }, function(data) { $("#"+idSelectDestino).empty(); $("[id^='"+idContenedorTexto+"']")[0].innerText=""; $("#"+idSelectDestino).append(new Option('Seleccione', '')); $.each( data, function(i, item) { $("#"+idSelectDestino).append(new Option(item.label, item.value)); }); if(valor){ $("#"+idSelectDestino).val(valor); } } ); } function loadMunicipios(idSelectDestino, url, idProv, valor){ $.getJSON( url, { idProvincia: idProv }, function(data) { $("#"+idSelectDestino).empty(); $("#"+idSelectDestino).append(new Option('--Seleccione municipio--', '')); $.each( data.municipios, function(i, item) { $("#"+idSelectDestino).append(new Option(item.label, item.value)); }); if(valor){ $("#"+idSelectDestino).val(valor); } } ); } function loadLocalidades(idSelectDestino, url, idProv, idMun, valor){ $.getJSON( url, { idProvincia: idProv, idMunicipio: idMun }, function(data) { $("#"+idSelectDestino).empty(); $("#"+idSelectDestino).append(new Option('--Seleccione localidad--', '')); $.each( data.localidades, function(i, item) { $("#"+idSelectDestino).append(new Option(item.label, item.value)); }); if(valor){ $("#"+idSelectDestino).val(valor); } } ); } function descargaFicheroAjax(url, idForm, mostrarMensajeError) { showDownloadMessage("Generando Documento..."); if (idForm) { $.fileDownload(url, { httpMethod: "POST", data: $("#" + idForm).serialize() }).done(function (data) { customAlert('Fichero descargado correctamente.'); }) .fail(function (e) { if (mostrarMensajeError) { customAlert(e); ocultar_mensaje_de_carga(); }else{ customAlert('La descarga del fichero ha fallado.'); ocultar_mensaje_de_carga(); } }); } else { descargarDocumento(url); } return false; } function descargarDocumento(url) { showDownloadMessage("Generando Documento..."); var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.responseType = 'arraybuffer'; xhr.onload = function () { console.log("State: "+this.readyState+" Status: "+ this.status+" StatusText "+xhr.statusText); if (xhr.readyState == 4) { if (xhr.status == '200') { var filename = ''; //get the filename from the header. var disposition = xhr.getResponseHeader('Content-Disposition'); if (disposition && disposition.indexOf('attachment') !== -1) { var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/; var matches = filenameRegex.exec(disposition); if (matches !== null && matches[1]) filename = matches[1].replace(/['"]/g, ''); } var type = xhr.getResponseHeader('Content-Type'); var blob = new Blob([this.response], { type: type }); //workaround for IE if (typeof window.navigator.msSaveBlob != 'undefined') { window.navigator.msSaveBlob(blob, filename); } else { var URL = window.URL || window.webkitURL; var download_URL = URL.createObjectURL(blob); if (filename) { var a_link = document.createElement('a'); if (typeof a_link.download == 'undefined') { window.location = download_URL; } else { a_link.href = download_URL; a_link.download = filename; document.body.appendChild(a_link); a_link.click(); } } else { window.location = download_URL; } setTimeout(function () { URL.revokeObjectURL(download_URL); }, 100000); } } else { if ("darde?er=true" === url) { $.ajax({ url: "getDardeError", success: function (data) { if (data) { handlebarsCompile("errorDarde", "errorDarde-template", data); ocultar_mensaje_de_carga(); } }, error: function (xhr, status, error) { ocultar_mensaje_de_carga(); } }); } else { ocultar_mensaje_de_carga(); customAlert("No se ha podido descargar el documento, para más información contacte con su oficina de empleo."); } } } }; xhr.setRequestHeader('Content-type', 'application/*'); xhr.send(); } function comprobarSeguridadPassword(pass){ var source = $("#textoBarraProgreso-template").html(); var template = Handlebars.compile(source); var context = null; var html = null; if(pass.length){ var nivelSeguridad = comprobarNivelSeguridad(pass); $("#barraprogreso").css("width", (nivelSeguridad*25)+"%"); $("#barraprogreso").attr("aria-valuenow", (nivelSeguridad*25)); $("#barraprogreso").removeClass("progress-bar-success").removeClass("progress-bar-info") .removeClass("progress-bar-warning").removeClass("progress-bar-danger"); $("#panelBarraProgreso").removeClass("alert-default").removeClass("alert-danger") .removeClass("alert-warning").removeClass("alert-info").removeClass("alert-success"); switch(nivelSeguridad) { case 1: $("#barraprogreso").addClass("progress-bar-danger"); $("#panelBarraProgreso").addClass("alert-danger"); context = {"textoProgreso": "Contrase\u00f1a muy insegura"}; $("#textoBarraProgreso").html(template(context)); break; case 2: $("#barraprogreso").addClass("progress-bar-warning"); $("#panelBarraProgreso").addClass("alert-warning"); context = {"textoProgreso": "Contrase\u00f1a insegura"}; $("#textoBarraProgreso").html(template(context)); break; case 3: $("#barraprogreso").addClass("progress-bar-info"); $("#panelBarraProgreso").addClass("alert-info"); context = {"textoProgreso": "Contrase\u00f1a segura"}; $("#textoBarraProgreso").html(template(context)); break; case 4: $("#barraprogreso").addClass("progress-bar-success"); $("#panelBarraProgreso").addClass("alert-success"); context = {"textoProgreso": "Contrase\u00f1a muy segura"}; $("#textoBarraProgreso").html(template(context)); break; default: } $("#capaBarraProgreso").removeClass("invisible"); } else{ $("#capaBarraProgreso").addClass("invisible"); $("#barraprogreso").css("width", "0%"); $("#barraprogreso").attr("aria-valuenow", "0"); context = {"textoProgreso": "-"}; $("#textoBarraProgreso").html(template(context)); } } function comprobarNivelSeguridad(pass){ var nivelSeguridad = 0; if(/[a-záéíóúñçü]/.test(pass)){ nivelSeguridad++; } if(/[A-ZÁÉÍÓÚÑÇÜ]/.test(pass)){ nivelSeguridad++; } if(/[0-9]/.test(pass)){ nivelSeguridad++; } if(/^[a-zA-Z0-9áéíóúñçüÁÉÍÓÚÑÇÜ]*$/.test(pass) == false) { nivelSeguridad++; } return nivelSeguridad; } function actualizarTabla(prefix, data){ var source = $("#grid-"+prefix+"-template").html(); var template = Handlebars.compile(source); var context = {"resultadoBusqueda": data}; $("#grid-"+prefix).html(template(context)); } function handlebarsCompile(elementId, templateId, data){ var source = $("#"+templateId).html(); var template = Handlebars.compile(source); var context = {"resultado": data}; $("#"+elementId).html(template(context)); } function asignarMenuActivo(idMenu) { document.getElementsByClassName("menu-open").className =""; document.getElementById(idMenu).className ="menu-open"; } function trabajadorById(identificador) { $.ajax({ url: "confirmarConsultarTrabajadorDetalle", data: { "identificador": identificador }, success: function(data) { if(data == "ok"){ } else{ } }, error: function (xhr, status, error) { customAlert("Error al buscar trabajador: "+error); } }); } function mostrar_mensaje_de_carga(msg){ $('body').removeClass('loaded'); $("#loader-wrapper").attr("aria-hidden", "false"); $("#loader-wrapper").attr("role", "dialog"); $("#loader-wrapper-mensaje span").text(msg); } function ocultar_mensaje_de_carga(){ $('body').addClass('loaded'); $("#loader-wrapper").attr("aria-hidden", "true"); $("#loader-wrapper").attr("role", ""); } function showDownloadMessage(){ mostrar_mensaje_de_carga("Generando Documento..."); window.addEventListener('focus', hideDownloadMessage, false); } function hideDownloadMessage(){ window.removeEventListener('focus', hideDownloadMessage, false); ocultar_mensaje_de_carga(); } function isEmpty(str) { return (!str || str.length === 0 ); }