/* * Codificación UTF-8 * Métodos que trabajan sobre el estado del panel según la operación a realizar sobre él (lectura, inserción, modificación, borrado) * * FUNCIONES MODIFICACIÓN INTERFAZ PANEL: * iconUpdate( modo, panel, claseM ) * blockExit( exit, modo, panel ) * cleanForm(id, panel) * offTooltipBasic(objElemento, modo) * addList( campo, gvhLista, selectedValue ) * addListSelect2( campo, gvhLista, selectedValue ) * setButtonDependPanel(objElemento,depend) * setFieldEnable(objElemento,depend) * floatBar(bar = 'topBarPrimary', panel = 'P_lis') * * FUNCIONES EVENTOS AL CAMBIAR VALOR UN CAMPO: * fieldsRequired(objElemento) * updateEvent(objElemento, message = msgLoad) * changeField(objElemento) * * FUNCIONES OPERACION FORMULARIO PANEL: * getStatePanel(objPanel) * formOnButtons(id,panel,modo) * formOnFields(objElemento, operacion, modo='on') * formOnInsert(objElemento) * formOnUpdate(objElemento, modo='on') * formOnDelete(objElemento) */ var gvh = gvh || {}; +function($) { 'use strict'; /********************************************* / * FUNCIONES MODIFICACIÓN INTERFAZ PANEL /*********************************************/ /** * iconUpdate() * FUNCIӓN: Mostrar icono barra inferior modificación * @access private * @var modo: ['R'|'I'|'W'] * @var panel: panel sobre el que se está trabajando * @var claseM: clase manejadora del panel */ gvh.iconUpdate = function( modo, panel, claseM ) { gvh.showConsoleMsg( 'log',' *** gvh_panel.js - iconUpdate() -> DESACTIVADO!' ); /* gvh.showConsoleMsg('log',' *** gvh_panel.js - iconUpdate() -> '+panel+' modo '+modo+' claseM '+claseM ); if( (panel == 'fil') || (panel == 'P_fil') ) { return; } var imgMod = '.' + panel + '_imgModificado'; var imgModificado = $( imgMod ).filter('[data-gvhClaseManejadora='+claseM+']'); if( imgModificado.length < 0) { gvh.showConsoleMsg('error','¡¡¡Error icono modificación "'+imgMod+'"!!!'); return } if( modo == 'R' ) { imgModificado.hide(); } else { imgModificado.show(); } */ } /** * blockExit: Bloquea la salida del panel mientras no se ejecute o cancele la acción que se haya indicado (insertar/modificar) * @access private * @var exit: booleano * @var panel: tipo de panel sobre el que se está trabajando ['edi'|'ediDetalle'|'lis'|'lisDetalle'] * @var modo: ['I' (inserción) | 'W' (modificación) | 'R' (lectura)] * @var claseM: clase manejadora del panel */ gvh.blockExit = function( exit, modo, panel, claseM ) { gvh.showConsoleMsg('log',' *** gvh_panel.js - blockExit() -> '+panel+' modo '+modo+' claseM '+claseM ); if (panel == undefined) { gvh.showConsoleMsg('error',' ¡¡¡ gvh_panel.js - blockExit() -> la variable panel no está definida'); } else { var idPanel = panel; if (panel.indexOf("P_") == -1) { var idPanel = 'P_'+panel; var panelJSON = panel.substring(0,3); } else { var panelJSON = panel.substring(2,5); } if ((modo == 'W') || (modo == 'I')) { $( '[data-gvhExit]' ).attr( 'data-gvhExit', false ); } else { $( '[data-gvhExit]' ).attr( 'data-gvhExit', true ); } $( 'div[id='+idPanel+'][data-gvhWindow='+ambito+'][data-gvhClaseManejadora='+claseM+']' ).attr( 'data-gvhestadopanel', modo ); $( '#'+ambito).attr( 'data-gvhestadopanel', modo ); if (claseM == '') { gvh.showConsoleMsg('error',' ¡¡¡blockExit() - No existe clase manejadora!!!'); } else if ((panelJSON == 'edi') || (panelJSON == 'lis')) { datosJSON[claseM][panelJSON]['panel']['state'] = modo; } /*if ((claseM != '') && (panel != '')) { if (panelJSON != 'fil') { datosJSON[claseM][panelJSON]['panel']['state'] = modo; } } else { gvh.showConsoleMsg('error',' ¡¡¡blockExit() - El parámetro clase manejadora es '+claseM+'!!!'); }*/ } } /** * cleanForm: Marcará el estado del registro: insertada/modificada * @access private * @var objElemento: elemento que lanza la acción limpiar */ gvh.cleanForm = function(objElemento) { gvh.showConsoleMsg('log',' *** gvh_panel.js - cleanForm()' ); var claseM = $(this).attr( 'data-gvhClaseManejadora' ); var panel = $(this).attr( 'data-gvhPanelOn' ); var panelJSON = panel.substr( 0, 3 ); var raizJSON = gvh.getRoot(claseM,panelJSON); var reg = 0; var vFields = gvh.getFieldsJSON(raizJSON,reg); var pagActiva = gvh.getPagActive(raizJSON); var numReg = 1; if (panelJSON != 'fil') { if (panelJSON == 'lis') { var vReg = gvh.getRegAlter(raizJSON); var numReg = count(vReg); var rowsPag = gvh.getRowsPag(raizJSON); var rowTab = row%rowsPag; var sufijoRow = panel+'_'+rowTab; } else { var reg = gvh.getPagActive(raizJSON); } } var vFields = gvh.getFieldsJSON(raizJSON,reg); for (var i=0;i 0 ) { gvh.addList(inputField, listOptions, valueOld); } } else { var idCampo = inputField.attr('id'); $('#'+idCampo+' option:selected').attr('selected',false); $('#'+idCampo+' option[value="'+valueOld+'"]').prop("selected", true); $('#'+idCampo+' option[value="'+valueOld+'"]').attr("selected", true); } gvh.setValue(raizJSON,field,reg,valueOld); break; case 'cwlistaradio': var radio = $('input:radio[name*='+field+']').filter('[data-gvhClaseManejadora='+claseM+']'); if( inputField.is(':visible') ) { if (valueOld != '') radio.filter('[value='+valueOld+']').prop('checked',true); else radio.prop('checked',false); gvh.setValue(raizJSON,field,reg,valueOld); } break; case 'cwlista_select2': var inputField = $('input[id*='+field+']').filter('[data-gvhClaseManejadora='+claseM+']'); var lista = gvh.getFieldList(raizJSON,field,false,pagActiva); var descripcion = ''; for( i=0;i'+descripcion+''); } else { $detachSelect.append(''); } } parentDetach.append($detachSelect); } /** * addListSelect2() * FUNCIӓN: Crea una lista nueva tipo select2 con las opciones que se le pasan * @access private * @var gvhLista: array de opciones a añadir a la lista * @var selectedValue: valor seleccionado en la lista */ gvh.addListSelect2 = function(campo, gvhLista, selectedValue) { gvh.showConsoleMsg('log',' *** addListSelect2() - selected: '+selectedValue); campo.empty();//.trigger('change'); /*var parentDetach = campo.parent(); var $detachSelect = campo; $detachSelect.detach();*/ var lengthLista = gvhLista.length; for(var i=0;i 0) { vs.prop('disabled',false); tabindex = vs.attr('tabindex')*(-1); vs.attr('tabindex',tabindex); } } break; case 'cwareatexto': objElemento.addClass('modify'); if (objElemento.hasClass('noEdit')) { objElemento.removeClass('noEdit'); objElemento.addClass('edit'); } objElemento.prop('readonly',false); break; case 'cwrichareatexto': var idEditor = 'editor_'+id; $("div[id*='"+idEditor+"']").attr('contenteditable','true'); break; case 'cwupload': break; case 'cwlabel': objElemento.removeClass("linkDisabled"); objElemento.addClass("link"); objElemento.css('cursor','hand'); objElemento.click(function() { return (objElemento.attr('disabled')) ? false : true; }); break; case 'cwlista': case 'cwlista_select2': objElemento.prop('disabled',false); objElemento.prop('readonly',false); break; case 'cwimagen': break; case 'cwlistaradio': objElemento.addClass('modify'); if (objElemento.hasClass('noEdit')) { objElemento.removeClass('noEdit'); objElemento.addClass('edit'); } objElemento.prop('readonly',false); break; case 'cwcheckbox': break; case 'cwbotontooltip': break; default: gvh.showConsoleMsg('error', ' ¡¡¡ setFieldEnable() - '+plugin+' plugin no controlado !!!'); break; } objElemento.prop('disabled',false); objElemento.removeClass("disabled"); var tabindex = objElemento.attr('tabindex')*(-1); objElemento.attr('tabindex',tabindex); } else { var idCampoBtn = ''; switch( plugin ) { case 'cwcampotexto': objElemento.removeClass('modify'); if (objElemento.hasClass('edit')) { objElemento.removeClass('edit'); objElemento.addClass('noEdit'); } objElemento.prop('readonly',true); var tipoCampo = gvh.getTypeField(raizJSON,field,nReg); if (tipoCampo != 'text') { if (tipoCampo == 'date') { idCampoBtn = 'calD_'+id; } else if (tipoCampo == 'datetime') { idCampoBtn = 'calDT_'+id; } else if (tipoCampo == 'time') { idCampoBtn = 'calT_'+id; } if (idCampoBtn != '') { $('#'+idCampoBtn).prop('disabled',true); $('#'+idCampoBtn).addClass("disabled"); var tabindex = $('#'+idCampoBtn).attr('tabindex')*(-1); $('#'+idCampoBtn).attr('tabindex',tabindex); } } if (id != undefined) { var vs = $('#vs_'+id); var vsLength = vs.length; if (vsLength > 0) { vs.prop('disabled',true); tabindex = vs.attr('tabindex')*(-1); vs.attr('tabindex',tabindex); } } break; case 'cwareatexto': objElemento.removeClass('modify'); if (objElemento.hasClass('edit')) { objElemento.removeClass('edit'); objElemento.addClass('noEdit'); } objElemento.prop('readonly',true); break; case 'cwlista': case 'cwlista_select2': objElemento.prop('disabled',true); objElemento.prop('readonly',true); break; case 'cwrichareatexto': var idEditor = 'editor_'+id; $("div[id*='"+idEditor+"']").attr('contenteditable','false'); break; case 'cwupload': break; case 'cwlabel': objElemento.addClass("linkDisabled"); objElemento.removeClass("link"); objElemento.css('cursor','none'); objElemento.click(function() { return (objElemento.attr('disabled')) ? false : true; }); break; case 'cwlistaradio': objElemento.removeClass('modify'); if (objElemento.hasClass('edit')) { objElemento.removeClass('edit'); objElemento.addClass('noEdit'); } objElemento.prop('readonly',true); break; case 'cwcheckbox': break; case 'cwbotontooltip': break; default: gvh.showConsoleMsg('error', ' ¡¡¡ setFieldEnable() - '+plugin+' plugin no controlado !!!'); break; } objElemento.prop('disabled',true); var tabindex = objElemento.attr('tabindex')*(-1); objElemento.attr('tabindex',tabindex); } gvh.showConsoleMsg('endGroup'); } // setFieldEnable() /** * floatBar() * FUNCIÓN: Función que permitirá que la barra superior del panel sea flotante. Necesita de la función checkVisible() * @access private * @var bar: barra a fijar como flotante * @var panel: panel al que corresponde la barra */ gvh.checkVisible = function(elm, evalType) { evalType = evalType || "visible"; if( typeof $(elm).offset() !== 'undefined' ) { var vpH = $(window).height(), // Viewport Height st = $(window).scrollTop(), // Scroll Top y = $(elm).offset().top, elementHeight = $(elm).height(); if (evalType === "visible") return ((y < (vpH + st)) && (y > (st - elementHeight))); if (evalType === "above") return ((y < (vpH + st))); } }; gvh.floatBar = function(bar = 'topBarPrimary', panel = 'P_lis') { $(window).bind("scroll", function() { var elem1 = $('#'+panel); var elem2 = $('#'+bar); elem2.removeClass('barraFlotante'); if( !$(window).checkVisible({ elm: elem2, evalType: 'visible'}) ) { elem2.addClass('barraFlotante'); } if( !$(window).checkVisible({ elm: elem1, evalType: 'visible'}) ) { elem2.removeClass('barraFlotante'); } }); } /************************************************ / * FUNCIONES EVENTOS AL CAMBIAR VALOR UN CAMPO /************************************************/ /** * fieldsRequired() * FUNCIӓN: Comprobación obligatorios * @access private * @var objElemento: elemento dom que lanza la acción */ gvh.fieldsRequired = function(objElemento) { gvh.showConsoleMsg('log', ' *** gvh_panel.js - fieldsRequired()' ); gvh.showConsoleMsg('log',objElemento); var correcto = 'correcto'; var fieldsRequired = ''; var panel = objElemento.attr('data-gvhPanelOn'); var panelJSON = objElemento.attr('data-gvhPanelOn').substring(0,3); var claseM = objElemento.attr('data-gvhClaseManejadora'); var raizJSON = gvh.getRoot(claseM,panelJSON); var dataRequired = gvh.getDataRequired(raizJSON); var dataRequiredLength = dataRequired.length; var regAlter = gvh.getRegAlter(raizJSON); var fieldsRequired = ''; if ( (dataRequiredLength > 0) && (regAlter.length > 0)) { for (var index=0;index++;index
'; gvh.setClassField(raizJSON,field,numReg,'fieldRequired'); } } } } return fieldsRequired; } // fieldsRequired() /** * updateEvent() * FUNCIӓN: lanzar acción de interfaz * @access private * @var objElemento: elemento dom que lanza la acción * @var message: texto que aparecerá en el mensaje */ gvh.updateEvent = function(objElemento, message = msgLoad) { gvh.showConsoleMsg('beginGroup',' *** gvh_panel.js - updateEvent() -> '+objElemento.attr('id')); var id = objElemento.attr('id'); var name = objElemento.attr('name'); //if ($('input:radio[name='+name+']').length > 0) // Si el elemento es un radiobutton pasamos como id el atributo name if (objElemento.attr('data-gvhCWSource') == 'cwlistaradio') { var id = name; } var actualizaA = objElemento.attr('data-gvhActualizaA'); var panel = objElemento.attr('data-gvhPanelOn'); if ((actualizaA != '') && (actualizaA != undefined)) { var claseM = objElemento.attr('data-gvhClaseManejadora'); if ($('#'+id).is(':radio')) { id = $(this).attr('name'); } var panelJSON = panel; if (panel == 'ediDetalle') panelJSON = 'edi'; else if (panel == 'lisDetalle') panelJSON = 'lis'; var formulario = objElemento.closest('form'); var idForm = formulario.attr('id'); var value = objElemento.val(); var url = 'phrame.php?action=gvhJSRefreshUI&gvhcache=true&gvhpanel='+panelJSON+'&claseManejadora='+claseM+'&gvHclass='+claseM+'&gvHfname='+idForm+'&gvHfrom='+id+'&gvHvalue='+value+'&gvHtarget='+actualizaA; gvh.showConsoleMsg('log',' ... Llamada a phrame: '+url); //Mostramos el progreso Pace.restart(); document.body.className = document.body.className; // Forzamos a actualizar la interfaz $.ajax({ data: datosJSON[claseM][panelJSON]['dataPerform'], type: "POST", cache: false, datatype: "script", url: url, beforeSend: function() { gvh.showConsoleMsg('log',' ... Beforesend ...'); gvh.loading('on',message); }, success: function(response) { gvh.showConsoleMsg('log',' ... Success: '+response); //EJECUTA JAVASCRIPT EN LA PÁGINA (acciones de interfaz) response.context.action = 'NoAction' var rspPhrameJSON = $.parseJSON(response); if (rspPhrameJSON.context.action == 'NoAction') { eval(rspPhrameJSON.context.script); } }, error:function( jqXHR, textStatus, errorThrown ) { gvh.showConsoleMsg('log',' ... # ERROR updateEvent'); }, complete:function( jqXHR, textStatus, errorThrown ) { gvh.showConsoleMsg('log','# COMPLETE updateEvent'); gvh.loading('off'); } }) } else { gvh.showConsoleMsg('error',' ¡¡¡No se ha indicado el campo que debe ser actualizado. Param "actualizaA".!!!'); } gvh.showConsoleMsg('endGroup'); }; // updateEvent() /** * changeField: Actualización del datosJSON con el cambio producido en el campo * El elemento necesita tener los siguientes atributos si se crea de forma directa en html: * -> data-gvhClaseManejadora * -> data-gvhPanelOn * -> data-gvhCWSource * @access public * @var objElemento: componente botón que se ha pulsado */ gvh.changeField = function( objElemento, newValue = '', triggerChanged = true ) { gvh.showConsoleMsg('beginGroup',' ** gvh_panel.js - changeField() '); var fieldAmbito = objElemento.attr( 'data-gvhWindow' ); if( fieldAmbito == ambito ) { var claseM = objElemento.attr( 'data-gvhClaseManejadora' ); var panel = objElemento.attr( 'data-gvhPanelOn' ); var plugin = objElemento.attr( 'data-gvhCWSource' ); var panelJSON = panel.substring( 0, 3 ); var objPanel = $('div[id=P_'+panel+'][data-gvhWindow='+ambito+'][data-gvhClaseManejadora='+claseM+']'); var idCampo = objElemento.attr( 'id' ); gvh.showConsoleMsg('log', ' FIELD: '+idCampo ); var campoJSON = idCampo; var estadoPanel = objPanel.attr('data-gvhEstadoPanel'); // Marcar el panel como modificado if( objPanel.length > 0 && triggerChanged && panel != 'fil' && (estadoPanel == 'W' || estadoPanel == 'I')) { objPanel.attr( 'data-gvhchanged', 'true' ); } if( panelJSON != 'fil' ) { var vCampoJSON = idCampo.split('___'); if (vCampoJSON.length > 1) campoJSON = vCampoJSON[1]; if( plugin == 'cwlistaradio' ) { var name = objElemento.attr( 'name' ); campoJSON = name.split('___')[1]; } } var raizJSON = gvh.getRoot( claseM, panelJSON ); var plugin = ''; var external = objElemento.attr( 'data-gvhExternal' ); var regJSON = 0; if( external == 'true' ) // Tratamiento de campos external { external = true; plugin = gvh.getPlugin(raizJSON,campoJSON,regJSON,external); } else { external = false; // Según el panel se calcula indice del datosJSON var modoPanel = gvh.getStatePanel(objPanel); if (modoPanel == 'I') { switch( panelJSON ) { case 'lis': var row = idCampo.split('___')[2].split('_')[1]; regJSON = gvh.indexDataJSON( raizJSON, row, modoPanel ); var sufijo = panel+'_'+row; break; case 'edi': regJSON = gvh.getPagIns(raizJSON); break; default: regJSON = 0; break; } } else { switch( panelJSON ) { case 'fil': regJSON = 0; break; case 'lis': var row = idCampo.split('___')[2].split('_')[1]; regJSON = gvh.indexDataJSON( raizJSON, row ); var sufijo = panel+'_'+row; break; case 'edi': var pagActual = gvh.getPagActive(raizJSON); regJSON = pagActual; break; default: regJSON = 0; break; } } if (gvh.getExistField(raizJSON,campoJSON,regJSON)) { var plugin = gvh.getPlugin( raizJSON,campoJSON,regJSON,external ); var hidden = gvh.isHidden( raizJSON,campoJSON,regJSON,external ); gvh.setSelectedReg( raizJSON, regJSON, 'add' ); var estado = objPanel.attr( 'data-gvhestadopanel' ); let state = 'nada'; switch( estado ) { case 'W': estado = 'modificada'; state = 'updated'; break; case 'D': estado = 'borrada'; state = 'deleted'; break; case 'I': estado = 'insertada'; state = 'inserted'; break; default: estado = 'nada'; state = 'nada'; break; } gvh.setStateReg( raizJSON , state, regJSON ); if( hidden == 1 ) // Campo oculto { plugin = 'hidden'; } } else { gvh.showConsoleMsg('error', '¡¡¡ changeField() - '+campoJSON+' no existe este campo en el registro '+regJSON+' !!!' ); } } if( plugin != '' ) { var valorCampo = ''; switch( plugin ) { case 'cwrichareatexto': gvh.showConsoleMsg('log',objElemento); var idTxtArea = objElemento.attr('id'); var editor = 'editor_'+idTxtArea; valorCampo = $('#'+editor).html(); break; case 'cwareatexto': valorCampo = objElemento.val(); break; case 'cwcampotexto': valorCampo = objElemento.val(); break; case 'cwlista': valorCampo = objElemento.val(); if (objElemento.prop('multiple') === false) { objElemento.find('option:selected').attr('selected',false); objElemento.find('option[value="'+valorCampo+'"]').prop("selected", true); } var dependencia = gvh.isDependenceList(raizJSON,campoJSON,regJSON,external); break; case 'cwlista_select2': valorCampo = objElemento.val(); break; case 'cwimagen': valorCampo = objElemento.attr( 'src' ); break; case 'cwlistaradio': valorCampo = $('input:radio[name='+name+'][data-gvhClaseManejadora='+claseM+'][data-gvhWindow='+ambito+']:checked').val(); var radio = $('input:radio[name='+name+'][data-gvhClaseManejadora='+claseM+'][data-gvhWindow='+ambito+']'); break; case 'cwcheckbox': let attr = (objElemento.is(':checked') ? 'data-gvhValueCheck' : 'data-gvhValueUnCheck'); valorCampo = objElemento.attr( attr ); break; case 'hidden': gvh.showConsoleMsg('log','campo hidden => '+newValue); if (newValue == '') valorCampo = gvh.getValue(raizJSON,campoJSON,0); else valorCampo = newValue; break; default: gvh.showConsoleMsg('error', ' ¡¡¡ changeField() - '+plugin+' plugin no controlado !!!'); break; } gvh.setValue( raizJSON, campoJSON, regJSON , valorCampo, external ); var actualizaA = objElemento.attr( 'data-gvhActualizaA' ); if( actualizaA ) { var formulario = objElemento.closest( 'form' ); let elemUpdate = (plugin == 'cwlistaradio' ? radio : objElemento ); gvh.updateEvent( elemUpdate ); } if( panel != 'fil' ) { gvh.blockExit( false, objPanel.attr('data-gvhEstadoPanel'), panel, claseM ); } } } gvh.showConsoleMsg('endGroup'); } // changeField() /************************************************ / * FUNCIONES OPERACIÓN FORMULARIO PANEL /************************************************/ /** * getStatePanel: Obtenemos el estado del panel ('R', 'W', 'I') * @access private * @var exit: booleano * @var objPanel: objeto panel sobre el que se está trabajando ['edi'|'ediDetalle'|'lis'|'lisDetalle'] */ gvh.getStatePanel = function( objPanel ) { var state = objPanel.attr('data-gvhEstadoPanel'); gvh.showConsoleMsg('log',' *** gvh_panel.js - getStatePanel() => '+state); return state; } /** * formOnButtons() * FUNCIÓN: Activar botones de la barra inferior * @access private * @var objPanel: panel sobre el que se quieren activar los paneles */ gvh.formOnButtons = function( objPanel ) { var idPanel = objPanel.attr('id'); var panelOn = idPanel.substr(2,idPanel.length); // P_lis gvh.showConsoleMsg('log', ' *** gvh_panel.js - formOnButtons() '+idPanel ); $( 'button[data-gvhWindow='+ambito+'][id*=bttlTreeSelector_]' ) .filter( '[data-gvhstate=edit][data-gvhposition=panel]' ) .removeClass( 'disabled' ); var boton = $( 'button[data-gvhWindow='+ambito+'][data-gvhpanelon='+panelOn+']' ); boton.each( function() { if( $(this).is( ':hidden' ) ) { $(this).show(); } } ); }; /** * formOnFields() * FUNCIÓN: Activar campos * @access private * @var objElemento: componente botón que se ha pulsado * @var operacion: ['insertar', 'modificar', 'eliminar'] * @var modo: ['on', 'off'] */ gvh.formOnFields = function(objElemento, operacion, modo='on') { gvh.showConsoleMsg('beginGroup',' ** gvh_panel.js - formOnFields() '+operacion); gvh.showConsoleMsg('log',objElemento); let id = objElemento.attr('id'); let panel; if ( objElemento.is( "div" ) ) { panel = id.substring(2,id.length); } else { panel = objElemento.attr('data-gvhPanelOn'); } let idPanel = 'P_'+panel; let claseManejadora = objElemento.attr('data-gvhClaseManejadora'); let objPanel = $( '#'+idPanel+'[data-gvhClaseManejadora='+claseManejadora+']' ); let panelJSON = panel.substring(0,3); let raizJSON = gvh.getRoot(claseManejadora,panelJSON); let prefijo = ''; let css = ''; let iter = 0; let vReg; let numRows; let numReg = 1; let regIns let reg; let vFields; let sufijo = 0; if (panelJSON != 'fil') { if (panelJSON == 'lis') { vReg = gvh.getRegSelected(raizJSON); numRows = gvh.getRowsPag(raizJSON); numReg = vReg.length; regIns = gvh.getRegInsert(raizJSON); } else { reg = gvh.getPagActive(raizJSON); vFields = gvh.getFieldsJSON(raizJSON,reg); } } switch(operacion) { case 'inserted': prefijo = 'ins___'; //state = '[data-gvhstate=new],[data-gvhstate=edit]'; css = 'new'; reg = gvh.getPagIns(raizJSON); if (panelJSON == 'lis') { vReg = gvh.getRegInsert(raizJSON); numReg = vReg.length; } else { vFields = gvh.getFieldsJSON(raizJSON,reg); sufijo = reg; } break; case 'updated': prefijo = 'cam___'; //state = '[data-gvhstate=edit]'; break; case 'deleted': prefijo = 'cam___'; css = 'delete'; //state = '[data-gvhstate=edit]'; break; default: prefijo = 'cam___'; css = 'edit'; break; } if (panelJSON == 'edi') { if (modo == 'on') { gvh.setStateReg( raizJSON, operacion, reg ); gvh.setSelectedReg( raizJSON, reg, 'add' ) } } for (var i=0;i 0 ) { campo.closest( 'tr[data-gvhclasemanejadora="'+claseManejadora+'"][data-gvhpaneljson="'+panelJSON+'"]' ) .addClass( 'rowDeleted' ); // .attr( 'data-gvhdelete', 'true' ); } // Marcamos el panel como modificado if( objPanel.length > 0 ) { objPanel.attr( 'data-gvhchanged', 'true' ); } } } } } gvh.showConsoleMsg('endGroup'); }; /** * formOnInsert() * FUNCIÓN: Panel en modo inserción * @access private * @var objElemento: componente botón que se ha pulsado */ gvh.formOnInsert = function(objElemento) { gvh.showConsoleMsg('beginGroup',' ** gvh_panel.js - formOnInsert()'); gvh.showConsoleMsg('log',' ** gvh_panel.js - formOnInsert() '+objElemento.attr('id')+' '+objElemento.attr('data-gvhClaseManejadora')); let id = objElemento.attr('id'); let panel; if ( objElemento.is( ":button" ) ) { panel = objElemento.attr('data-gvhPanelOn'); } else { panel = id.substring(2,id.length); } let idPanel = 'P_'+panel; let claseManejadora = objElemento.attr('data-gvhClaseManejadora'); let objPanel = $('#'+idPanel+'[data-gvhClaseManejadora='+claseManejadora+']'); let panelJSON = panel.substring(0,3); let raizJSON = gvh.getRoot(claseManejadora,panelJSON); let numReg = gvh.getNumReg(raizJSON); gvh.blockExit(false, 'I', panel, claseManejadora); // Reiniciamos los arrays JSON gvh.setAllState(raizJSON,'nada'); gvh.setAllSelected(raizJSON,'false'); // Según el tipo de panel, el modo inserción debe ocultar o activar determinados paneles var md = objElemento.attr('data-gvhTipoPanel'); var idPaginador = $('#capa_'+panel+'_paginacion').filter('[data-gvhWindow='+ambito+']').attr('id'); gvh.showConsoleMsg('log',' ... Tipo de panel: '+md); gvh.showConsoleMsg('log',' ... Se ocultan capas con datos.'); $('div[id*=pag_'+panel+'_]').filter('[data-gvhClaseManejadora='+claseManejadora+']').map(function (){ if ($(this).is(':visible')) { $(this).hide(); } }); switch(md) { case 'maestro': gvh.showConsoleMsg('log',' ... Se oculta el detalle.'); $('div[data-gvhtipopanel=detalle][data-gvhWindow='+ambito+']').hide(); // Pestañas detalles $('#detalles').filter('[data-gvhWindow='+ambito+']').hide(); // Paginador gvh.showConsoleMsg('log',' ... Se oculta paginador.'); $('#'+idPaginador).filter('[data-gvhClaseManejadora='+claseManejadora+']').hide(); gvh.showConsoleMsg('log',' ... Se oculta capa bloqueo.'); $('#blockPanel').hide(); break; case 'detalle': gvh.showConsoleMsg('log',' ... Se oculta páginas detalle con datos.'); gvh.showConsoleMsg('log',' ... Se oculta paginador.'); // Paginador $('#'+idPaginador).filter('[id*=Detalle]').hide(); break; case 'simple': gvh.showConsoleMsg('log',' ... Se oculta paginador.'); $('#'+idPaginador).hide(); $('#blockPanel[data-gvhWindow='+ambito+'][data-gvhClaseManejadora='+claseManejadora+']').hide(); if ($('div[data-gvhpagina=block][data-gvhClaseManejadora='+claseManejadora+'][data-gvhWindow='+ambito+']').is(':visible')) { gvh.showConsoleMsg('log',' ... Se oculta capa bloqueo.'); $('div[data-gvhpagina=block][data-gvhClaseManejadora='+claseManejadora+'][data-gvhWindow='+ambito+']').hide(); } // Comprobamos si es un Tabular-Registro, para activar el edi if (($('#'+idPaginador).filter('[id$=___insTR]').length) > 0) { gvh.showConsoleMsg('log',' ... Se muestra panel edi (TR).'); $(this).show(); }; break; default: gvh.showConsoleMsg('error','¡¡¡ Revisar parámetro "data-gvhTipoPanel".!!!'); break; } if (objPanel.attr('data-gvhConSolapas') == 'true') { var solapaActiva = objPanel.attr('data-gvhSolapaActiva'); var idSolapa = "solData__"+panel; if ($('div[id*='+idSolapa+']').length > 0) { gvh.showConsoleMsg('log',' ... Existen solapas.'); var position = $(this).attr('data-gvhPosition'); if (position == solapaActiva) { $(this).show(); gvh.showConsoleMsg('log',' ... Se muestra solapa '+$(this).attr('id')); } else { $(this).hide(); } } } var idPanelIns = 'pag_'+panel+'_ins'; var objPanelins = $('#'+idPanelIns+'[data-gvhClaseManejadora='+claseManejadora+']'); gvh.showConsoleMsg('log',' ... Se muestra el panel de inserción '+idPanelIns); objPanelins.show(); //gvh.formOnFields($('#'+id), 'inserted'); gvh.formOnFields(objElemento, 'inserted'); //gvh.formOnButtons($('#'+idPanel)); gvh.formOnButtons(objPanel); gvh.showConsoleMsg('endGroup'); } /** * formOnUpdate() * FUNCIÓN: Panel en modo modificación * @access private * @var objElemento: componente botón que se ha pulsado * @var modo: 'on', 'off' */ gvh.formOnUpdate = function(objElemento,modo = 'on') { gvh.showConsoleMsg('beginGroup',' ** gvh_panel.js - formOnUpdate() '+objElemento.attr('id')); let id = objElemento.attr('id'); let panel = objElemento.attr('data-gvhPanelOn'); let idPanel = 'P_'+panel; let claseManejadora = objElemento.attr('data-gvhClaseManejadora'); let objPanel = $('#'+idPanel+'[data-gvhClaseManejadora='+claseManejadora+']'); let panelJSON = panel.substring(0,3); let raizJSON = gvh.getRoot(claseManejadora,panelJSON); let numReg = gvh.getNumReg(raizJSON); let pagActive = gvh.getPagActive(raizJSON); let idPaginacion = panel + '_paginacion'; let paginador = $('#'+idPaginacion).attr( 'data-gvhFunction' ); if( paginador == 'pagination' ) { $( '#'+idPaginacion ).twbsPagination( {estado:'modificada'} ); } gvh.blockExit( false, 'W', panel, claseManejadora ); //gvh.formOnFields($('#'+id), 'updated',modo); gvh.formOnFields(objElemento, 'updated',modo); //gvh.formOnButtons($('#P_'+panel)); gvh.formOnButtons(objPanel); gvh.offTooltipBasic(objElemento,'off'); gvh.showConsoleMsg('endGroup'); } /** * formOnDelete() * FUNCIÓN: Panel en modo modificación * @access private * @var objElemento: componente botón que se ha pulsado */ gvh.formOnDelete = function(objElemento) { gvh.showConsoleMsg('beginGroup',' ** gvh_panel.js - formOnDelete() '+objElemento.attr('id')); let id = objElemento.attr('id'); let panel = objElemento.attr('data-gvhPanelOn'); let idPanel = 'P_'+panel; let claseManejadora = objElemento.attr('data-gvhClaseManejadora'); let objPanel = $('#'+idPanel+'[data-gvhClaseManejadora='+claseManejadora+']'); let panelJSON = panel.substring(0,3); let raizJSON = gvh.getRoot(claseManejadora,panelJSON); let numReg = gvh.getNumReg(raizJSON); let pagActive = gvh.getPagActive(raizJSON); let idPaginacion = panel + '_paginacion'; var paginador = $('#'+idPaginacion).attr( 'data-gvhFunction' ); if( paginador == 'pagination' ) { $( '#'+idPaginacion ).twbsPagination( {estado:'modificada'} ); } gvh.blockExit( false, 'W', panel, claseManejadora ); gvh.formOnFields(objElemento, 'deleted'); //gvh.formOnButtons($('#P_'+panel)); gvh.formOnButtons(objPanel); gvh.offTooltipBasic(objElemento,'off'); gvh.showConsoleMsg('endGroup'); } } (jQuery);