/* ***************************************** * FUNCIONES PARA BOTONES TOOLTIP ****************************************** */ (function ($) { /* * formOnFields() * FUNCIÓN: Activar campos * PARAMS: id - del BOTÓN para el que se van a activar los campos * prefijo - si los campos se activan para inserción o modificación ('ins'/'cam') * css - estilo que se le aplicará al campo * panel - panel donde se encuentran los campos */ $.fn.formOnFields = function(options) { var defaults = $.extend({ id: '', panel: '', operacion: '', css: '', modo: 'on' },options); if (defaults.panel != '') { var prefijo = ''; var state = ''; switch(defaults.operacion) { case 'insert': prefijo = 'ins__'; state = '[data-gvhstate=new],[data-gvhstate=edit]'; $('div[id=P_'+defaults.panel+']').attr('data-gvhestadopanel','I'); $('div[data-gvhPagina='+defaults.panel+'_ins] span').map(function() { if ($('#IGEPVisible'+$(this).attr('id')).is(':visible')) { $(this).show(); } else if ((defaults.panel == 'lis') || (defaults.panel == 'lisDetalle')) { $(this).show(); } }); break; case 'update': prefijo = 'cam__'; state = '[data-gvhstate=edit]'; $('div[id=P_'+defaults.panel+']').attr('data-gvhestadopanel','W'); break; } modoPropiedad = false; if (defaults.modo == 'off') modoPropiedad = true; $(':input').filter('[data-gvhpanelon='+defaults.panel+']').filter(state).filter('[id^='+prefijo+'],[id^=c'+prefijo+']').map(function() { $(this).prop('readonly',modoPropiedad); $(this).prop('disabled',modoPropiedad); $(this).addClass(defaults.css); if (defaults.modo == 'on') { tabindex = $(this).attr('tabindex')*(-1); $(this).attr('tabindex',tabindex); } }); $('select').filter('[data-gvhpanelon='+defaults.panel+']').filter(state).filter('[id^='+prefijo+'],[id^=c'+prefijo+']').map(function() { $(this).prop('readonly',modoPropiedad); $(this).prop('disabled',modoPropiedad); $(this).addClass(defaults.css); if (defaults.modo == 'on') { tabindex = $(this).attr('tabindex')*(-1); $(this).attr('tabindex',tabindex); } }); $(':radio').filter('[data-gvhpanelon='+defaults.panel+']').filter(state).filter('[id^='+prefijo+'],[id^=c'+prefijo+']').filter(state).map(function() { $(this).prop('readonly',modoPropiedad); $(this).prop('disabled',modoPropiedad); $(this).addClass(defaults.css); if (defaults.modo == 'on') { tabindex = $(this).attr('tabindex')*(-1); $(this).attr('tabindex',tabindex); } }); $('span[id^=file_]').filter('[data-gvhpanelon='+defaults.panel+']').filter(state).map(function () { $(this).removeClass('disabled'); id = $(this).attr('id'); vId = id.split('file_'); $('span[id*='+vId[1]+']').filter('[data-gvhFunction=fileUp]').filter('[data-gvhpanelon='+defaults.panel+']').filter(state).map(function () { $(this).removeClass('disabled'); }); if (defaults.modo == 'on') { tabindex = $(this).attr('tabindex')*(-1); $(this).attr('tabindex',tabindex); } }); $('textarea[data-gvhpanelon='+defaults.panel+']').each(function (index) { var idTA = $(this).attr('id'); if ($("div[id*='editor_"+idTA+"']").length > 0) { if ( ($('textarea[id*='+idTA+']').hasClass('noEdit') == true) || ($('textarea[id*='+idTA+']').hasClass('tableNoEdit') == true) ) { $("div[id*='editor_"+idTA+"']").attr('contenteditable','false'); } else { $("div[id*='editor_"+idTA+"']").attr('contenteditable','true'); } if (defaults.modo == 'on') { tabindex = $(this).attr('tabindex')*(-1); $(this).attr('tabindex',tabindex); } } }); // Botones tooltip del panel $('button[id*='+prefijo+']').filter('[data-gvhposition=panel]').map(function() { if ($(this).attr('data-gvhpanelon') == defaults.panel) { //idBtn = $(this).attr('id'); if (defaults.operacion == 'insert') { $(this).show(); $(this).filter('[data-gvhstate=edit],[data-gvhstate=new]').removeClass('disabled'); //$(this).removeClass('disabled'); } else { if ($(this).is(':visible')) { $(this).filter('[data-gvhstate=edit]').removeClass('disabled'); } /*if ($('#IGEPVisibleBtn'+idBtn).is(':visible')) { $(this).removeClass('disabled'); }*/ } if (defaults.modo == 'on') { tabindex = $(this).attr('tabindex')*(-1); $(this).attr('tabindex',tabindex); } } }); } }; /* * formOnButtons() * FUNCIÓN: Activar botones de la barra inferior * PARAMS: id - del BOTÓN para el que se van a activar los campos * prefijo - si los campos se activan para inserción o modificación ('ins'/'cam') * css - estilo que se le aplicará al campo * panel - panel donde se encuentran los campos */ $.fn.formOnButtons = function(options) { var defaults = $.extend({ id: '', panel: '', modo: 'W' },options); $('button[id*=bttlTreeSelector_]').filter('[data-gvhstate=edit]').filter('[data-gvhposition=panel]').removeClass('disabled'); $('button[id*=btn_]').filter('[data-gvhpanelon='+defaults.panel+']').each(function() { $('div[id=P_'+defaults.panel+']').attr('data-gvhestadopanel',defaults.modo); if ($(this).is(':hidden')) $(this).show(); }); }, /* * offTooltipBasic() * FUNCIÓ“N: Desactiva el resto de botones tooltip con funciones básicas (insertar/modificar/eliminar) al pinchar en uno de ellos * PARAMS: id: BOTÓN que se mantiene activo * panel: panel al que pertenece * modo: on/off * */ $.fn.offTooltipBasic = function(options) { var defaults = $.extend({ id: '', panel: '', modo: 'on' },options); $('button[id^=bttl]').filter('[data-gvhposition=botonera]').filter('[data-gvhfunction=insert],[data-gvhfunction=update],[data-gvhfunction=delete]').not('[id='+defaults.id+']').each(function() { if ((defaults.modo == 'on') && $(this).hasClass('disabled')) { $(this).removeClass('disabled'); } else if ((defaults.modo == 'off') && (!$(this).hasClass('disabled'))) $(this).addClass('disabled'); }) }, /* * cleanForm() * FUNCIÓN: Limpia los campos del formulario * PARAMS: id - del BOTÓN * panel - panel donde se encuentran los campos */ $.fn.cleanForm = function(options) { var defaults = $.extend({ id: '', panel: '' },options); if (defaults.panel == 'fil') { $('select').filter('[data-gvhPanelOn='+defaults.panel+']').each(function() { if ($(this).attr('data-gvhSelect2') == 'true') { $(this).val(''); $(this).select2({ allowClear: true }); } else { $(this).prop('selectedIndex', 0); } if ($(this).attr('data-gvhDependiente') == 'true') { $(this).empty(); } }); $('input[data-gvhpanelon=fil]').map(function() { $(this).val(''); }); /*$('input[data-gvhpanelon=fil,id*=fil_]').map(function() { $(this).val(''); });*/ $(':radio').filter('[data-gvhPanelOn='+defaults.panel+']').each(function() { if ($(this).is(':visible')) $(this).prop('checked',false); }); } else { var claseManejadora = $('#claseManejadora___'+defaults.panel).val(); var idCM = $('#claseManejadora___'+defaults.panel).attr('id'); var pagActual = $('#pagActual___'+claseManejadora).val(); if ((defaults.panel == 'edi') || (defaults.panel == 'ediDetalle')) { $('input[type=hidden]').filter('[id^=cam__],[id^=ins__]').filter('[data-gvhPanelOn='+defaults.panel+']').filter('[data-gvhIterActual='+pagActual+']').map(function() { var id = $(this).attr('id'); var anterior = id.substr(6,id.length); $(this).val($('#ant___'+anterior).val()); }); $('input:text,textarea').filter('[id^=cam__],[id^=ins__]').filter('[data-gvhPanelOn='+defaults.panel+']').filter('[data-gvhIterActual='+pagActual+']').map(function() { var id = $(this).attr('id'); var anterior = id.substr(6,id.length); $(this).val($('#ant___'+anterior).val()); }); formulario = $('#'+defaults.id).closest('form').attr('id'); $("#"+formulario+" input[type='radio']:checked").filter('[id^=cam__],[id^=ins__]').filter('[data-gvhPanelOn='+defaults.panel+']').filter('[data-gvhIterActual=pagAct_'+defaults.panel+']').map(function() { var id = $(this).attr('id'); var anterior = id.substr(6,id.length); if ($(this).val() != $('#ant___'+anterior).val()) $(this).prop('checked',false); }); //$("select option:selected").filter('[data-gvhPanelOn='+defaults.panel+']').filter('[data-gvhIterActual=pagAct_'+defaults.panel+']').map(function() $("select").filter('[data-gvhPanelOn='+defaults.panel+']').filter('[data-gvhIterActual='+pagActual+']').map(function() { if ($(this).attr('data-gvhSelect2') == 'true') { $(this).val(''); $(this).select2({ allowClear: true }); } else { $(this).prop('selectedIndex', 0); } if ($(this).attr('data-gvhDependiente') == 'true') { $(this).empty(); } }); $(':radio').each(function() { if ($(this).is(':visible')) $(this).prop('checked',false); }); } } } /************************************************************************************************************************ * MÉTODOS PARA BOTÓN TOOLTIP INSERTAR **************************************************************************************************************************/ /* * formOnInsert() * FUNCIÓN: inserción en patrón ficha simple * PARAMS: */ $.fn.formOnInsert = function(options) { var defaults = $.extend({ id: '', panel: '', patron: 'simple' },options); $('div[id^=P_'+defaults.panel+']').attr('data-gvhestadopanel','I'); modoPanel = $('div[id^=P_'+defaults.panel+']').attr('data-gvhestadopanel'); var claseManejadora = $('#claseManejadora___'+defaults.panel).val(); if (defaults.patron == 'maestro') { $('div[id$=Detalle]').filter('[id^=P_]').hide(); $('div[id^=pag_'+defaults.panel+']').hide(); $('div[id=detalles]').hide(); } else if (defaults.patron == 'detalle') { $('div[id^=pag_]').filter('[id*=Detalle]').hide(); // ¿Cómo saber que mi padre es un registro? var master = $('#'+defaults.id).attr('data-gvhIdMaster'); if ((master == 'lis') || (master == 'lisDetalle')) { var filaM = $('input[id^=check_]:checked').filter('[data-gvhmd=maestro]').attr('id').split('_'); var reg = filaM[2]; } else { var claseManejadoraM = $('#claseManejadora___'+master).val(); if($('input[id*=pagActual___'+claseManejadoraM+']').length) { // Maestro tipo registro var reg = $('input[id*=pagActual___'+claseManejadoraM+']').val(); } } $(this).closest('form').find(':input').map(function() { // ej. ins___edi_DSTIPO___ediDetalle_17 // Copiar claves del maestro, el núm de registro lo marca el check seleccionado var vID = $(this).attr('id').split('___'); var nomCampo = vID[1]; // ej. edi_DSTIPO if ($('[id*=cam___'+nomCampo+'___'+master+'_'+reg+']').length > 0) { valMaster = $(':input[id*=cam___'+nomCampo+'___'+master+'_'+reg+']').val(); $(this).val(valMaster); } }) } else { $('div[id^=pag_]').each(function() { $(this).hide(); $('div[data-gvhpagina=block]').hide(); }); if (($('div[id^=pag_]').filter('[id$=___insTR]').length) > 0) $('div[id^=pag_]').filter('[id$=___insTR]').show(); } panelIns = defaults.panel; if (panelIns == '') { // Si no viene fijado el panel buscamos el de inserción, sufijo "_ins" var idPagIns = $('div[data-gvhPagina*=_ins]').attr('id'); // ej. pag_edi_0 panelIns = idPagIns.split('_')[1]; } // Sufijo para los campos de la página de inserción sufijo = $('div[data-gvhPagina='+panelIns+'_ins]').attr('id').substring(4,$('div[data-gvhPagina='+panelIns+'_ins]').attr('id').length); // Mostramos la capa de inserción y ocultamos la de paginación if ($('div[data-gvhPagina='+panelIns+'_ins]').is(':hidden')) { // ini JSON Comprobamos si estamos en comunicación con caché panelJSON = defaults.panel; if (defaults.panel == 'lisDetalle') panelJSON = 'lis'; else if (defaults.panel == 'ediDetalle') panelJSON = 'edi'; if (datosJSON[claseManejadora][panelJSON]['gvhJSON'] == 'true') { $('div[id*=pag_'+defaults.panel+'_0]').hide(); } // fin JSON $('div[data-gvhpagina=block]').hide(); $('div[data-gvhPagina='+panelIns+'_ins]').show(); $('div[id*=capa_'+panelIns+'_paginacion]').hide(); } // Activamos los campos para poder insertar $('#'+defaults.id).formOnFields({ id: defaults.id, panel: panelIns, operacion: 'insert', css: 'new' }); $('#'+defaults.id).formOnButtons({ id: defaults.id, panel: panelIns, modo: 'I' }); $('#'+defaults.id).iconUpdate({ id: $('#'+defaults.id).closest('form').attr('id'), panel: panelIns }); $('#'+defaults.id).offTooltipBasic({ id: defaults.id, panel: defaults.panel, modo: 'off' }); if ((defaults.panel != 'lis') && (defaults.panel != 'lisDetalle')) { // Marcar el campo oculto 'est_' con el valor 'insertada' idEstado = 'est_'+sufijo; $('#'+idEstado).val("insertada"); $('div[id=P_'+defaults.panel+']').attr('data-gvhestadopanel','I'); } accionActivaP = 'accionActivaP_F_'+$('#'+panelIns).closest('form').attr('id'); $('#'+accionActivaP).val("insertar"); // DAR FOCO if ($('div[id=P_'+defaults.panel+']').attr('data-gvhFirstFocus')) { firstFocus = $('div[id=P_'+defaults.panel+']').attr('data-gvhFirstFocus'); idFirstFocus = 'ins___'+firstFocus+'_'; //cam___eventos___edi_0 sufijo: _edi_0 foco = false; $(':input').filter('[data-gvhpanelon='+defaults.panel+']').filter('[data-gvhstate=edit]').filter('[id^=ins_],[id^=cins_]').map(function() { id = $(this).attr('id'); if ((id.indexOf(idFirstFocus) >= 0) && (foco == false)) { $(this).focus(); foco = true; } }) } }; /************************************************************************************************************************ * MÉTODOS PARA BOTÓN TOOLTIP ELIMINAR *************************************************************************************************************************/ /* * formOnDeleteTable() * FUNCIÓ“N: Marcar los campos para ser eliminados * PARAMS: formulario: objeto formulario sobre el que se va a trabajar * sufijos: array con todos los sufijos de las filas seleccionadas * panel: lis/lisDetalle * checked: simple/all */ // Cuando es un detalle hay que obtener las claves del maestro //$.fn.formOnDelete = function(idPanel,formulario,sufijo) $.fn.formOnDeleteTable = function(options) { var defaults = $.extend({ id: '', panel: '', sufijos: [], checked: 'simple' },options); if ((defaults.sufijos.length == 0) && (defaults.checked != 'simple')) { $(this).showMessage('gvhlang_msj16','alert'); } else { var rowsPag = 0; var numReg = 0; var indiceJSON = 0; claseM = $('#claseManejadora___'+defaults.panel).val(); pagActual = $('input[id=pagActual___'+claseM+']').val(); panelJSON = defaults.panel; if (defaults.panel == 'lisDetalle') panelJSON = 'lis'; else if (defaults.panel == 'ediDetalle') panelJSON = 'edi'; raizJSON = datosJSON[claseM][panelJSON]; if (defaults.checked == 'all') { $('input[data-gvhpanelon='+defaults.panel+']').filter('[id^=cam_],[id^=ccam_]').map(function() { $(this).prop('readonly',true); $(this).removeClass('tableEdit'); $(this).removeClass('tableNew'); $(this).addClass('tableDelete'); }); $('select[data-gvhpanelon='+defaults.panel+']').filter('[id^=cam_],[id^=ccam_]').map(function() { $(this).prop('readonly',true); $(this).removeClass('tableEdit'); $(this).removeClass('tableNew'); $(this).addClass('tableDelete'); }); if (raizJSON['gvhJSON'] == 'true') { rowsPag = raizJSON['panel']['rowsPag']; numReg = raizJSON['data'].length; for(i=0;i 0) { $('div[id^=editor_cam_]').filter('[id*='+defaults.pag+']').each(function() { $(this).attr('contenteditable','false'); }) } accionActivaP = 'accionActivaP_F'+$('#'+defaults.id).closest('form').attr('id'); $('#'+accionActivaP).val("borrar"); $('#'+defaults.id).formOnButtons({ id: defaults.id, panel: defaults.panel, modo: 'W' }); $('#'+defaults.id).iconUpdate({ id: $('#'+defaults.id).closest('form').attr('id'), panel: defaults.panel }); $('#'+defaults.id).offTooltipBasic({ id: $('#'+defaults.id).attr('id'), panel: $('#'+defaults.id).attr('data-gvhPanelOn'), modo: 'off' }); }, /************************************************************************************************************************ * MÉTODOS PARA BOTÓN TOOLTIP MODIFICAR *************************************************************************************************************************/ /* * formOnUpdateReg() * FUNCIÓ“N: Activar los campos del formulario para modificar * PARAMS: formulario: objeto formulario sobre el que se va a trabajar * sufijo: sufijo de los id de los campos * panel: edi/ediDetalle */ $.fn.formOnUpdateReg = function(options) { var defaults = $.extend({ id: '', panel: '', sufijo: '' },options); idFirstFocus = ''; $('span[id^=file_cam]').filter('[id*='+defaults.sufijo+']').filter('[data-gvhpanelon='+defaults.panel+']').filter('[data-gvhstate=edit]').map(function () { $(this).removeClass('disabled'); $('span[id*='+defaults.sufijo+']').filter('[data-gvhFunction=fileUp]').filter('[data-gvhpanelon='+defaults.panel+']').filter('[data-gvhstate=edit]').map(function () { $(this).removeClass('disabled'); }); }); claseM = $('#claseManejadora___'+defaults.panel).val(); panelJSON = defaults.panel; if (defaults.panel == 'lisDetalle') panelJSON = 'lis'; else if (defaults.panel == 'ediDetalle') panelJSON = 'edi'; raizJSON = datosJSON[claseM][panelJSON]; if (raizJSON['gvhJSON'] == 'true') { rowsPag = raizJSON['panel']['rowsPag']; numReg = raizJSON['data'].length; reg = $('#pagActual___'+claseM).val(); raizJSON['data'][reg]['gvhJS_state'] = 'modificada'; } else { $('#est_'+defaults.sufijo).val("modificada"); } $('#'+defaults.panel+'_paginacion').twbsPagination({estado:'modificada'}); if ($('div[id^=editor_cam_]').length > 0) { $('div[id^=editor_cam_]').filter('[id*='+defaults.sufijo+']').each(function() { $(this).attr('contenteditable','true'); }) } $('button[id*=bttlTreeSelector_]').filter('[data-gvhstate=edit]').filter('[data-gvhposition=panel]').removeClass('disabled'); $('button[id*='+defaults.sufijo+']').filter('[data-gvhstate=edit]').filter('[data-gvhposition=panel]').removeClass('disabled'); $('#'+defaults.id).formOnButtons({ id: defaults.id, panel: defaults.panel, modo: 'W' }); // Marcar el campo oculto 'est_' con el valor 'modificada' idEstado = 'est'+defaults.sufijo; $('#'+idEstado).val("modificada"); accionActivaP = 'accionActivaP_'+$('#'+defaults.id).closest('form').attr('id'); $('#'+accionActivaP).val("modificar"); $('#'+defaults.id).iconUpdate({ id: $('#'+defaults.id).closest('form').attr('id'), panel: defaults.panel }); $('#'+defaults.id).offTooltipBasic({ id: $('#'+defaults.id).attr('id'), panel: $('#'+defaults.id).attr('data-gvhPanelOn'), modo: 'off' }); // DAR FOCO if ($('div[id=P_'+defaults.panel+']').attr('data-gvhFirstFocus')) { firstFocus = $('div[id=P_'+defaults.panel+']').attr('data-gvhFirstFocus'); idFirstFocus = 'cam___'+firstFocus+'_'; //cam___eventos___edi_0 sufijo: _edi_0 } foco = false; $(':input').filter('[data-gvhpanelon='+defaults.panel+']').filter('[data-gvhstate=edit]').filter('[id^=cam_],[id^=ccam_]').filter('[id*='+defaults.sufijo+']').map(function() { $(this).prop('readonly',false); $(this).prop('disabled',false); $(this).addClass('modify'); id = $(this).attr('id'); if ((id.indexOf(idFirstFocus) >= 0) && (foco == false)) { $(this).focus(); foco = true; } }) }, /* * formStateFieldsTable() * FUNCIÓ“N: Marcar los campos para ser modificados * PARAMS: formulario: objeto formulario sobre el que se va a trabajar * sufijos: array con todos los sufijos de las filas seleccionadas * panel: lis/lisDetalle * checked: simple/all */ $.fn.formStateFieldsTable = function(options) { var defaults = $.extend({ id: '', panel: '', sufijos: 0, checked: 'simple', modo: 'on', maestro: false },options); if ( (defaults.sufijos.length == 0) && (defaults.checked == 'simple')) { $(this).showMessage('gvhlang_msj16','alert'); } else { if (defaults.modo == 'on') { $('div[id=P_'+defaults.panel+']').attr('data-gvhestadopanel','W'); } if ($('div[id=P_'+defaults.panel+']').attr('data-gvhFirstFocus')) { firstFocus = $('div[id=P_'+defaults.panel+']').attr('data-gvhFirstFocus'); } var rowsPag = 0; var numReg = 0; var indiceJSON = 0; claseM = $('#claseManejadora___'+defaults.panel).val(); pagActual = $('input[id=pagActual___'+claseM+']').val(); regJSON = ''; panelJSON = defaults.panel; if (defaults.panel == 'lisDetalle') panelJSON = 'lis'; else if (defaults.panel == 'ediDetalle') panelJSON = 'edi'; raizJSON = datosJSON[claseM][panelJSON]; if (defaults.checked == 'all') { for(i=0;i 0) { $('div[id^=editor_cam_]').filter('[id$='+defaults.panel+']').filter('[data-gvhPanelOn='+defaults.panel+']').filter('[data-gvhstate=edit]').each(function() { if (defaults.modo == 'on') $(this).attr('contenteditable','true'); else $(this).attr('contenteditable','false'); }) } if (defaults.modo == 'on') { $('button[id*='+defaults.panel+']').filter('[data-gvhposition=panel],[data-gvhstate=edit]').removeClass('disabled'); if (raizJSON['gvhJSON'] == 'true') { rowsPag = raizJSON['panel']['rowsPag']; numReg = raizJSON['data'].length; for(i=0;i 0) { $(this).formOnDeleteTable({ id: $(this).attr('id'), panel: panelOn, sufijos: vSufijos }); } else { $(this).showMessage('gvhlang_msj16','alert'); } } } }); /* * FUNCIÓN: actúa directamente en un panel Registro */ $('button[id*=bttl]').filter('[data-gvhFunction=delete]').filter('[data-gvhposition=botonera]').filter('[data-gvhPanelOn*=edi]').on({ click: function() { var panelOn = $(this).attr('data-gvhPanelOn'); var sufijo = ''; $('div[id*=pag_'+panelOn+'_]').each(function() { if ($(this).is(':visible')) { sufijo = $(this).attr('id').substring(3,$(this).attr('id').length); } }); $(this).formOnDeleteReg({ id: $(this).attr('id'), panel: panelOn, pag: sufijo }); } }); /************************************************************************************************************************ * BOTÓN TOOLTIP MODIFICAR *************************************************************************************************************************/ /* * FUNCIÓN: directamente en un panel Registro */ $('button[id*=bttl]').filter('[data-gvhFunction=update]').filter('[data-gvhposition=botonera]').filter('[data-gvhPanelOn=edi],[data-gvhPanelOn=ediDetalle]').on({ click: function() { var panelOn = $(this).attr('data-gvhPanelOn'); $('div[id*=pag_'+panelOn+'_]').each(function() { // Activamos los campos del formulario if ($(this).is(':visible')) { id = $(this).attr('id'); sufijo = id.substring(3,id.length); } }); $(this).formOnUpdateReg({ id: $(this).attr('id'), panel: panelOn, sufijo: sufijo }) } }); /* * FUNCIÓN: directamente en un panel Tabular */ $('button[id*=bttl]').filter('[data-gvhFunction=update]').filter('[data-gvhposition=botonera]').filter('[data-gvhPanelOn*=lis]').not('[data-gvhTR=TR]').on({ click: function() { var panelOn = $(this).attr('data-gvhPanelOn'); var vSufijos = []; if ($('input:checkbox[id^=checkAll_]').is(':checked')) { $(this).formStateFieldsTable({ id: $(this).attr('id'), panel: panelOn, sufijos: $('input:checkbox[id^=checkAll_]').attr('data-gvhTotalReg'), checked: 'all' }) } else { $('input[id*=check_'+panelOn+']:checked').each(function() { sufijo = $(this).attr('id').split('check_')[1]; estado = $('#est_'+sufijo).val(); if (estado == 'nada') { vSufijos.push(sufijo); } }); if (vSufijos.length > 0) { $(this).formStateFieldsTable({ id: $(this).attr('id'), panel: panelOn, sufijos: vSufijos }) } else { $(this).showMessage('gvhlang_msj16','alert'); } } } }); /* * FUNCIÓN: editar en un panel tabular-registro */ $('button[id*=bttl]').filter('[data-gvhFunction=update]').filter('[data-gvhTR=TR]').on({ click: function() { vChecksR = []; $('input:checkbox[id^=check_]').filter('[data-gvhPanelOn='+$(this).attr('data-gvhPanelOn')+']').map(function(){ if ($(this).is(':checked')) vChecksR.push($(this).attr('id')); }) if (vChecksR.length > 0) { $(this).formSendJSON({ id: $(this).attr('id'), destino: $(this).attr('data-gvhDestino'), panelDestino: $(this).attr('data-gvhPanelOn'), claseM: $(this).attr('data-gvhClaseManejadora') }) /*if (datosJSON[$(this).attr('data-gvhClaseManejadora')]['gvhJSON'] == 'false') { $(this).loading(); $(this).closest('form').prop("action", $(this).attr('data-gvhDestino')); $(this).closest('form').prop("target", "oculto"); $(this).closest('form').submit(); } else { console.log(JSON.stringify(datosJSON)); claseM = $(this).attr('data-gvhClaseManejadora'); action = $(this).closest('form').attr('action'); if ($(this).attr('data-gvhDestino')) action = $(this).attr('data-gvhDestino'); console.log('gvh_boton.js - guardar'); console.log(JSON.stringify(datosJSON)); $.ajax({ data: datosJSON, type: "POST", datatype: "json", url: action+"&gvhcache=true&claseManejadora="+claseM, beforeSend: function() { $(this).loading(); }, success: function(response) { window.location.href = decodeURIComponent(jQuery.parseJSON(response)); }, fail: function() { alert('fail'); }, complete: function() { $('div[id=loading]').hide(); } }) }*/ } else { $(this).showMessage('gvhlang_msj16','alert'); } } }); /************************************************************************************************************************ * BOTÓN TOOLTIP rowEdit *************************************************************************************************************************/ /* * FUNCIÓN: actúa en un panel Tabular */ $('button[id*=btnEdit_]').filter('[data-gvhmd=maestro]').on({ click: function() { panel = $(this).attr('data-gvhPanelOn'); claseM = $(this).attr('data-gvhClaseManejadora'); idCheck = $(this).attr('id'); vIDCheck = idCheck.split('_'); idCheckClick = 'check_'+vIDCheck[1]+'_'+vIDCheck[2]; vSufijoMaster = []; vSufijoMaster.push(vIDCheck[1]+'_'+vIDCheck[2]); vSufijos = []; $('input:checkbox[id^=check_'+vIDCheck[1]+'_]').map(function() { id = $(this).attr('id'); vID = id.split('_'); vSufijos.push(vID[1]+'_'+vID[2]); }); $(this).formStateFieldsTable( { id: $(this).attr('id'), panel: $(this).attr('data-gvhPanelOn'), sufijos: vSufijos, checked: 'unique', modo: 'off' }) $('button[data-gvhFunction=update]').filter('[data-gvhClaseManejadora='+claseM+']').prop('disabled',true); $(this).checkRow( { id: $(this).attr('id'), fila: vIDCheck[2], check: true, panel: $(this).attr('data-gvhPanelOn'), type: $(this).attr('data-gvhCheck') }); $(this).formStateFieldsTable( { id: $(this).attr('id'), panel: $(this).attr('data-gvhPanelOn'), sufijos: vSufijoMaster, checked: 'unique', modo: 'on' }) $('input:checkbox[id='+idCheckClick+']').prop('checked',true); $('input:checkbox[id='+idCheckClick+']').prop('disabled',true); checkeado = false; $('input:checkbox[id^=check_]').map(function() { if (($(this).attr('data-gvhClaseManejadora') == claseM) && ($(this).is(':checked'))) checkeado = true; }); if (checkeado == false) $('button[data-gvhFunction=update]').filter('[data-gvhClaseManejadora='+claseM+']').prop('disabled',false); } }); $('button[id*=btnEdit_]').filter('[data-gvhTR=simple]').not('[data-gvhmd]').on({ click: function() { vID = $(this).attr('id').split('_'); vSufijos = []; idCheck = 'check_'+vID[1]+'_'+vID[2]; vSufijos.push(vID[1]+'_'+vID[2]); panel = $(this).attr('data-gvhPanelOn'); claseM = $(this).attr('data-gvhClaseManejadora'); if ($('input:checkbox[id='+idCheck+']').is(':checked')) { $('input:checkbox[id='+idCheck+']').prop('checked',false); $('input:checkbox[id='+idCheck+']').prop('disabled',false); $(this).formStateFieldsTable({ id: $(this).attr('id'), panel: $(this).attr('data-gvhPanelOn'), sufijos: vSufijos, modo: 'off' }) } else { $('button[data-gvhFunction=update]').filter('[data-gvhClaseManejadora='+claseM+']').prop('disabled',true); $(this).checkRow( { id: $(this).attr('id'), fila: vID[2], check: true, panel: $(this).attr('data-gvhPanelOn'), type: $(this).attr('data-gvhCheck') }); $(this).formStateFieldsTable( { id: $(this).attr('id'), panel: $(this).attr('data-gvhPanelOn'), sufijos: vSufijos, checked: 'unique', modo: 'on' }) $('input:checkbox[id='+idCheck+']').prop('checked',true); $('input:checkbox[id='+idCheck+']').prop('disabled',true); } checkeado = false; $('input:checkbox[id^=check_]').map(function() { if (($(this).attr('data-gvhClaseManejadora') == claseM) && ($(this).is(':checked'))) checkeado = true; }); if (checkeado == false) $('button[data-gvhFunction=update]').filter('[data-gvhClaseManejadora='+claseM+']').prop('disabled',false); } }); /* * FUNCIÓN: actúa en un panel Tabular/Registro */ $('button[id*=btnEdit_]').filter('[data-gvhTR=TR]').on({ click: function() { id = $(this).attr('id'); vID = id.split('_'); idCheck = 'check_'+vID[1]+'_'+vID[2]; $('input:checkbox[id='+idCheck+']').prop('checked',true); panelJSON = $(this).attr('data-gvhPanelOn'); claseM = $('#claseManejadora___'+panelJSON).val(); if (panelJSON == 'lisDetalle') panelJSON = 'lis'; else if (panelJSON == 'ediDetalle') panelJSON = 'edi'; raizJSON = datosJSON[claseM][panelJSON]; if (raizJSON['gvhJSON'] == 'true') { rowsPag = raizJSON['panel']['rowsPag']; numReg = raizJSON['data'].length; pagAct = $('input[id=pagActual___'+claseM+']').val(); indiceJSON = parseInt(pagAct*rowsPag)+parseInt(vID[2]); raizJSON['data'][indiceJSON]['gvhJS_selected'] = 'selected'; } $(this).formSendJSON({ id: $(this).attr('id'), destino: $(this).attr('data-gvhDestino'), panelDestino: $(this).attr('data-gvhPanelOn'), claseM: $(this).attr('data-gvhClaseManejadora') }) } }); /************************************************************************************************************************ * BOTÓN TOOLTIP LIMPIAR *************************************************************************************************************************/ /* * FUNCIÓN: BOTÓN limpiar formulario * */ $('button[id*=bttlLimpiar]').filter('[data-gvhFunction=clean]').on({ click: function() { $(this).cleanForm({ id: $(this).attr('id'), panel: $(this).attr('data-gvhPanelOn') }) } }); /************************************************************************************************************************ * BOTÓN TOOLTIP exportCSV *************************************************************************************************************************/ /* * FUNCIÓN: BOTÓN ejecutará una acción exportCSV que vendrá en data-gvhDestino * */ $('button[data-gvhFunction=exportCSV]').on({ click: function() { $(this).formActionSubmit({ id: $(this).attr('id'), panel: $(this).attr('data-gvhPanelOn'), destino: $(this).attr('data-gvhDestino'), newWindow: 'false', confirm: '' }) } }); /************************************************************************************************************************ * BOTÓN TOOLTIP help *************************************************************************************************************************/ /* * FUNCIÓN: Muestra la una ayuda * */ $('button[data-gvhFunction=help]').on({ click: function() { $(this).popupWindow({ windowURL: $(this).attr('data-gvhDestino'), centerScreen: 1, height: 600, width: 800, windowName:'help' }); } }); /************************************************************************************************************************ * BOTÓN TOOLTIP openDoc *************************************************************************************************************************/ /* * FUNCIÓN: abre un documento que viene dado por la BD * */ $('button[data-gvhFunction=openDoc]').on({ click: function() { $(this).popupWindow({ windowURL: $(this).attr('data-gvhDestino'), centerScreen: 1, height: 600, width: 800, windowName:'document' }); } }); /************************************************************************************************************************ * BOTÓN TOOLTIP particular *************************************************************************************************************************/ /* * FUNCIÓ“N: BOTÓN que ejecutará una acción definida por el usuario (data-gvhDestino) * */ $('button[data-gvhFunction=particular]').filter('[class=btnToolTip]').on({ click: function() { var panelOn = $(this).attr('data-gvhPanelOn'); var vSufijos = []; if ((panelOn == 'lis') || (panelOn == 'lisDetalle')) { $('input[id*=check_'+panelOn+']:checked').each(function() { sufijo = $(this).attr('id').split('check_')[1]; vSufijos.push(sufijo); }); } if ((vSufijos.length > 0) || ((panelOn == 'edi') || (panelOn == 'ediDetalle'))) { $(this).loading(); $(this).formActionSubmit({ id: $(this).attr('id'), panel: $(this).attr('data-gvhPanelOn'), destino: $(this).attr('data-gvhDestino'), target: 'oculto' }) $(this).loading({ modo: 'off' }); } else { $(this).showMessage('gvhlang_msj16','alert'); } } }); /************************************************************************************************************************ * BOTÓN TOOLTIP saltar *************************************************************************************************************************/ /* * FUNCIÓN: abre un documento que viene dado por la BD * */ $('button[data-gvhFunction=jump]').on({ click: function() { var panelOn = $(this).attr('data-gvhPanelOn'); var vSufijos = []; if ((panelOn == 'lis') || (panelOn == 'lisDetalle')) { $('input[id*=check_'+panelOn+']:checked').each(function() { sufijo = $(this).attr('id').split('check_')[1]; vSufijos.push(sufijo); }); } $(this).loading(); formulario = "F_"+$(this).attr('data-gvhPanelOn'); actionOld = $('#'+formulario).attr('action'); if ($(this).attr('data-gvhDestino') != '') { $('#'+formulario).prop("action",$(this).attr('data-gvhDestino')); } $('#'+formulario).prop("target","oculto"); $('#'+formulario).submit(); $('#'+formulario).prop("action",actionOld); } }); /************************************************************************************************************************ * BOTÓN TOOLTIP updateField *************************************************************************************************************************/ /* * FUNCIÓ“N: * */ $('button[data-gvhFunction=updateField]').on({ click: function() { var id = $(this).attr('id'); $('input[id=h_'+$(this).attr('id')+']').val('S'); $(this).loading(); var campo = $(this).attr('data-gvhActualizaA'); var panel = $(this).attr('data-gvhPanelOn'); var formulario = $(this).closest('form'); var actionOld = $(formulario).attr('action'); var classMain = $('#claseManejadora___'+panel).val(); var action = 'phrame.php?action=gvHrefreshUI&gvHclass='+classMain+'&gvHfname='+$(formulario).attr('id')+'&gvHfrom='+$(this).attr('id')+'&gvHvalue='+$('input[id=h_'+$(this).attr('id')+']').val()+'&gvHtarget='+$(this).attr('data-gvhActualizaA'); $(formulario).prop('action',action); $(formulario).prop('target','oculto'); $(formulario).submit(); $(formulario).prop('action',actionOld); } }); /************************************************************************************************************************ * BOTÓN TOOLTIP print *************************************************************************************************************************/ /* * FUNCIÓ“N: Imprime pantalla * */ $('button[data-gvhFunction=print]').on({ click: function() { window.print(); } }); /************************************************************************************************************************ * BOTÓN TOOLTIP que abre popover *************************************************************************************************************************/ /* * BOTÓN TOOLTIP infImg * FUNCIÓN: Muestra una capa con información relativa a un campo (CWInformation) * */ $('button[id*=infImg_]').filter('[data-toggle="popover"]').popover({ html: true, container: 'body' }); /* * BOTÓN TOOLTIP infoLang * FUNCIÓN: Muestra la información del multiidioma * */ $('button[id*=infoLang]').filter('[data-toggle="popover"]').popover({html:true}); /************************************************************************************************************************ * BOTÓN TOOLTIP árbol *************************************************************************************************************************/ /* * BOTÓN TOOLTIP árbol * */ $('button[data-gvhArbol]').on({ click: function() { $('div[id=divArbol]').toggle(); } }); /************************************************************************************************************************ * BOTÓN TOOLTIP url *************************************************************************************************************************/ /* * BOTÓN TOOLTIP url * */ $('button[data-gvhFunction=url]').on({ click: function() { var id = $(this).attr('id'); campo = id.split('gvhURL_')[1]; url = $('#'+campo).val(); var http = url.indexOf("http"); var ftp = url.indexOf("ftp"); if ((url != '') && (url.indexOf("http") == -1) && (url.indexOf("ftp") == -1)) { url = "http://"+url; } if ((url != '') && ((url.indexOf("http") > -1) || (url.indexOf("ftp") > -1))) { $(this).popupWindow({ windowURL: url, centerScreen: 1, height: 600, width: 800, windowName: 'url' }); } } }); $('a[data-gvhLabel=url]').on({ click: function() { if ($(this).attr('data-gvhLinkWindow')) { var id = $(this).attr('id'); url = $(this).attr('data-gvhDestino'); var http = url.indexOf("http"); var ftp = url.indexOf("ftp"); if ((url != '') && (url.indexOf("http") == -1) && (url.indexOf("ftp") == -1)) { url = "http://"+url; } if (((url != '') && ((url.indexOf("http") > -1) || (url.indexOf("ftp") > -1))) && ($(this).attr('disabled') != 'disabled')) { $(this).popupWindow({ windowURL: url, centerScreen: 1, height: 600, width: 800, windowName: 'url' }); } } else { return ($(this).attr('disabled')) ? false : true; } } }); /************************************************************************************************************************ * BOTÓN TOOLTIP TREE SELECTOR *************************************************************************************************************************/ /* * BOTÓN TOOLTIP TREE SELECTOR * */ function isEmptyJSON(obj) { for(var i in obj) { return false; } return true; } $('button[data-gvhFunction=gvhTreeSelector]').filter('[data-gvhTreeAjax=false]').on({ click: function() { panel = $(this).attr('data-gvhPanelOn'); estado = $('input[id*=est_'+panel+']').val(); estado = $('div[id=P_'+panel+']').attr('data-gvhestadopanel'); idPanel = 'P_'+panel; claseManejadora = $(this).attr('data-gvhClaseManejadora'); if ($(this).attr('data-gvhMultiple') == "true") multiple = true; else multiple = false; idForm = $(this).closest('form').attr('id'); campoDestino = $(this).attr('data-gvhActualizaA'); iterActual = $(this).attr('data-gvhIterActual'); sufijo = panel+'_'+iterActual; if (panel == 'fil') { campoDestinoValue = campoDestino; campoDestinoID = 'tree_'+campoDestinoValue; } else { if (estado == 'I') { campoDestinoValue = 'ins___'+campoDestino+'___'+sufijo; campoDestinoID = 'ins___tree_'+campoDestino+'___'+sufijo; } else { campoDestinoValue = 'cam___'+campoDestino+'___'+sufijo; campoDestinoID = 'cam___tree_'+campoDestino+'___'+sufijo; } } id = $(this).attr('id'); vId = id.split('_'); // Comprobar si existe la variable datosJSON raizJSON = datosJSON[claseManejadora][panel]; var data = []; destino = $(this).attr('data-gvhDestino'); if (raizJSON['gvhJSON'] == 'false') { data = JSON.stringify($("#"+idForm).serialize()); url = "phrame.php?action="+claseManejadora+"__"+destino; } else { data = datosJSON; url = "phrame.php?action="+claseManejadora+"__"+destino+"&gvhcache=true&claseManejadora="+claseManejadora+"&gvhpanel="+panel; } console.log(data); var json = null; $.ajax({ 'async': false, 'type': "POST", 'url': url, 'data': data, 'dataType': "json", 'fail': function(json) { console.log('fail'); }, 'success': function(json) { console.log(json); if (isEmptyJSON(json)) { console.log("NO DATA!"); $(this).showMessage('gvhlang_NoData','alert'); $('#'+vId[1]).filter('[data-gvhTree=true]').treeview('remove'); } else { $("#treeDialog_"+vId[1]).dialog("open"); //console.log('abrir el árbol '+vId[1]); $('#'+vId[1]).filter('[data-gvhTree=true]').treeview( { data: json, multiSelect: multiple, /*multiple*/ showCheckBox: true, showTags: true, highlightSelected: true, levels: 1, // árbol cerrado //nodeIcon: 'glyphicon glyphicon-user', onNodeUnselected: function (event, node) { $(':input[id='+campoDestinoValue+']').filter('[data-gvhpanelon='+panel+']').map(function() { $('input[id='+campoDestinoValue+']').val(''); $('input[id='+campoDestinoID+']').val(''); }); $("select[id="+campoDestinoValue+"] option[value="+node.id+"]").remove(); /*if (multiple) $('p[id='+node.id+']').remove();*/ }, onNodeSelected: function(event, node) { //alert(campoDestinoValue); /*if (multiple) { $('#output').prepend('

' + node.text + '

'); }*/ $(':input[id='+campoDestinoValue+']').filter('[data-gvhpanelon='+panel+']').map(function() { $('input[id='+campoDestinoValue+']').val(node.text); $('input[id='+campoDestinoID+']').val(node.id); }); $('select[id='+campoDestinoValue+']').filter('[data-gvhpanelon='+panel+']') .append($("") .attr("value", node.id ) .attr("selected", true ) .text(node.text)); }, search: function(event,node) { $('#input-check-node').val(), { ignoreCase: false, exactMatch: false } }, }); } } }); } }); $('button[data-gvhFunction=gvhTreeSelector]').filter('[data-gvhTreeAjax=true]').on({ click: function() { panel = $(this).attr('data-gvhPanelOn'); idPanel = 'P_'+panel; claseManejadora = $(this).attr('data-gvhClaseManejadora'); destino = $(this).attr('data-gvhDestino'); url = "phrame.php?action="+claseManejadora+"__"+destino; campoDestino = $(this).attr('data-gvhActualizaA'); multiple = $(this).attr('data-gvhMultiple'); idForm = $(this).closest('form').attr('id'); id = $(this).attr('id'); vId = id.split('_'); var json = null; $("#treeDialog_"+vId[1]).dialog("open"); $(this).createTree({ idTree: vId[1], node: '#', multiple: multiple, url: url, claseM: claseManejadora, destino: destino, actualizaA: campoDestino, panel: panel, idForm: idForm }); } }); $('div[data-gvhTree=true]').on("changed.jstree", function (e, data) { panel = $(this).attr('data-gvhPanelOn'); idPanel = 'P_'+panel; claseManejadora = $(this).attr('data-gvhClaseManejadora'); idForm = $(this).closest('form').attr('id'); campoDestino = $(this).attr('data-gvhActualizaA'); iterActual = $(this).attr('data-gvhIterActual'); sufijo = panel+'_'+iterActual; if (panel == 'fil') { campoDestinoValue = campoDestino; campoDestinoID = 'tree_'+campoDestinoValue; } else { campoDestinoValue = 'cam___'+campoDestino+'___'+sufijo; campoDestinoID = 'cam___tree_'+campoDestino+'___'+sufijo; } console.log("Nodo seleccionado:"); selectedNodes = data.selected; console.log(data.selected); if (selectedNodes.length > 0) { $.each(selectedNodes, function( index, value ) { console.log('1 - '+data.instance.get_selected(true)[index].text); console.log('2 - '+data.instance.get_node(data.selected[index]).text); }); } else { console.log('no hay seleccionados'); } }); var to = false; $('#search_treeDialog_arbolAjax').keyup(function () { var v = $(this).val(); console.log(v); $('#arbolAjax').jstree(true).search(v);//, true, false, false, '#'); console.log('post'); //if(to) { clearTimeout(to); } /*to = setTimeout(function () { var v = $(this).val(); $('#arbolAjax').jstree(true).search(v); }, 250);*/ }); /************************************************************************************************************************ * BOTÓN TOOLTIP DEBUG *************************************************************************************************************************/ /* * BOTÓN TOOLTIP DEBUG * */ $('button[data-gvhFunction=gvHidraDebug]').on({ click: function() { $(this).popupWindow({ windowURL: $(this).attr('data-gvhDestino'), scrollbars: 1, centerScreen: 1, height: '700', width: '1300', windowName:'newWindow' }); } });