// Comprobar jQuery if( typeof jQuery === 'undefined' || ! $ ) { throw new Error('gvHidra necesita jQuery'); } // Comprobar versión de jQuery var version = $.fn.jquery.split(' ')[0].split('.'); if ((version[0] < 3) || (version[0] == 3 && version[1] < 2)) { throw new Error('gvHidra necesita jQuery v3.2.0 (o superior)'); } // Comprobar versión de Bootstrap var version = $.fn.button.Constructor.VERSION.split('.'); if ((version[0] < 3) || (version[0] == 3 && (version[1] < 3 && (version[1] == 3 || version[2] < 5)))) { throw new Error('gvHidra necesita Bootstrap JS v3.3.5 (o superior)'); } var gvh = gvh || {}; +function($){/** LIBRERÍA: gvh_init **/ /****************************/ // Constantes //var NAMESPACE_MAIN = 'gvh'; //var NAMESPACE_ALTERNATE = 'gvHidra'; gvh.VERSION = '5.0.0'; gvh.STOPONWARNING = true; // Solo se garantiza que parará si además está activado gvh.DEBUG gvh.onSelectionActive= false; // Para distinguir entre los eventos clic y seleccionar texto. gvh.orderTable; gvh.orderFieldTable; gvh.rewireUI = new Array(); gvh.dialogWS; gvh.dialogIdWM = new Array(); gvh.dialogWM; gvh.ambito = ''; gvh.aplTitle = ''; gvh.endLoading = true; //gvh.datosJSON; gvh.pagAct_edi = 'undefined'; gvh.pagAct_lis = 'undefined'; gvh.pagAct_ediDetalle = 'undefined'; gvh.pagAct_lisDetalle = 'undefined'; gvh.lang = 'esp'; gvh.urlLang = 'igep/include/gvh_lang/esp.json'; gvh.msgLoad = ''; // // Amplia la funcionalidad de jQuery, permitiendo unicidad en la definición de un evento // (elimina antes las definiciones previas del mismo evento, pero solo las idénticas). // jQuery.fn.extend( { /** * Amplia la funcionalidad de jQuery, permitiendo unicidad en la definición de un evento * (elimina antes las definiciones previas del mismo evento, pero solo las idénticas). * * Detach and attach an event handler function for one or more events to the selected elements. * * @param {object} elem * @param {string} types - Required. Specifies one or more event(s) or namespaces to attach to the selected elements. Multiple event values are separated by space. Must be a valid event. * @param {string} selector - Optional. Specifies that the event handler should only be attached to the specified child elements (and not the selector itself, like the deprecated delegate() method). * @param {anything} data - Optional. Specifies additional data to pass along to the function. * @param {function} fn - Required. Specifies the function to run when the event occurs. * @param {string} one - Specifies an event map ({event:function, event:function, ...}) containing one or more event to attach to the selected elements, and functions to run when the events occur. * * @return {jQuery} */ offon: function( elem, types, selector, data, fn, one ) { return this.off( types, selector, fn ).on( elem, types, selector, data, fn, one ); } , /* offon: function( types, selector, data, fn ) { this.off( types, selector, fn ); return this.on( this, types, selector, data, fn ); }, */ /** * Amplia la funcionalidad de jQuery, permitiendo unicidad en la definición de un evento * (elimina antes las definiciones previas del mismo evento, pero solo las idénticas) y * garantizando que como mucho se ejecutará una vez para cada elemento y tipo de evento. * * Detach and attach a handler to an event for the elements. The handler is executed at most once per element per event type. * * @param {string} types - Required. Specifies one or more event(s) or namespaces to attach to the selected elements. Multiple event values are separated by space. Must be a valid event. * @param {string} selector - Optional. Specifies that the event handler should only be attached to the specified child elements (and not the selector itself, like the deprecated delegate() method). * @param {anything} data - Optional. Specifies additional data to pass along to the function. * @param {function} fn - Required. Specifies the function to run when the event occurs. * * @return {jQuery} */ offone: function( types, selector, data, fn ) { return this.off( types, selector, fn ).one( this, types, selector, data, fn, 1 ); } } ); gvh.DEBUG = false; gvh.debugJS = function(debugJS) { if (debugJS == "LOG_ALL") { gvh.DEBUG = true; } }; gvh.findInRewireUI = function(key,val) { var ar = gvh.rewireUI; for (var i = 0,len = ar.length; i < len; i++) { if ( ar[i][key] === val ) { return i; } } return -1; } gvh.subscribeRewireUI = function( claseM,funcion ) { gvh.showConsoleMsg('log', ' - subscribeRewireUI() de '+claseM ); if ((gvh.rewireUI.length == 0) || (gvh.findInRewireUI('clase',claseM) == -1)) { var claseFuncion = {'clase': claseM,'funcion': funcion}; gvh.rewireUI.push(claseFuncion); } // Ejecutamos por primera vez la función recién suscrita. if( funcion && typeof funcion === "function" ) { funcion(); } } gvh.showConsoleMsg = function( type, msg ) { if( gvh.DEBUG ) { switch( type ) { case 'log': console.log( msg ); break; case 'error': console.error( msg ); break; case 'warn': console.warn( msg ); break; case 'dir': console.dir( msg ); break; case 'beginGroup': console.groupCollapsed( msg ); break; case 'endGroup': console.groupEnd( ); break; } } } /** * Comparar versiones de componentes software. * * Extraído de: https://stackoverflow.com/questions/6832596/how-to-compare-software-version-number-using-js-only-number */ gvh.versionCompare = function( v1, v2, options ) { let lexicographical = ''; let v1parts = ''; let v2parts = ''; let zeroExtend = ''; if (options != '') { lexicographical = options && options.lexicographical , zeroExtend = options && options.zeroExtend , v1parts = v1.split('.') , v2parts = v2.split('.'); } else { lexicographical = options, zeroExtend = options, v1parts = v1.split('.') , v2parts = v2.split('.'); } function isValidPart(x) { return (lexicographical ? /^\d+[A-Za-z]*$/ : /^\d+$/).test(x); } if( (v1parts.isArray && !v1parts.every(isValidPart)) || (v2parts.isArray && !v2parts.every(isValidPart)) ) { return NaN; } if( zeroExtend ) { while( v1parts.length < v2parts.length ) { v1parts.push( "0" ); } while( v2parts.length < v1parts.length ) { v2parts.push( "0" ); } } if( !lexicographical ) { v1parts = v1parts.map( Number ); v2parts = v2parts.map( Number ); } for( let i=0; i v2parts[i] ) return 1; else return -1; } if( v1parts.length != v2parts.length ) return -1; return 0; } //gvh.versionCompare gvh.iniWindowVar = function(ambito, barTitle, dataJSON, lang, modal) { gvh.aplTitle = barTitle; gvh.ambito = ambito; if (typeof gvh.datosJSON === 'undefined') { gvh.datosJSON = dataJSON; } else { //gvh.datosJSON = Object.assign({},gvh.datosJSON, dataJSON); $.extend(true, gvh.datosJSON, dataJSON); } if (typeof gvh.pagAct_edi === 'undefined') { gvh.pagAct_edi = 0; } if (typeof gvh.pagAct_lis === 'undefined') { gvh.pagAct_lis = 0; } if (typeof gvh.pagAct_ediDetalle === 'undefined') { gvh.pagAct_ediDetalle = 0; } if (typeof gvh.pagAct_lisDetalle === 'undefined') { gvh.pagAct_lisDetalle = 0; } if (lang != '') gvh.lang = lang; gvh.urlLang = 'igep/include/gvh_lang/'+gvh.lang+'.json'; $.getJSON(gvh.urlLang, function(data) { gvh.msgLoad = data['gvhlang_load']; } ); if (typeof gvh.msgLoad === 'undefined') { gvh.msgLoad = $('body').attr('data-gvhMsgLoad'); } if (typeof gvh.objSliders === 'undefined') gvh.objSliders = []; if (typeof gvh.objColResizables === 'undefined') gvh.objColResizables = []; $.getScript( 'igep/smarty/plugins/gvh_calendar/js/jquery-ui-sliderAccess.js', function() { //console.log('Load jquery-ui-sliderAccess.js performed.'); $.getScript( 'igep/smarty/plugins/gvh_calendar/js/jquery-ui-timepicker-addon.js', function() { //console.log('Load jquery-ui-timepicker-addon.js performed.'); $.getScript( 'igep/js/gvh_iniCalendar.js', function() { //console.log('Load gvh_calendar.js performed.'); } ); } ); } ); } gvh.getUrlParameter = function(sParam) { var sPageURL = decodeURIComponent(window.location.search.substring(1)), sURLVariables = sPageURL.split('&'), sParameterName, i; for (i = 0; i < sURLVariables.length; i++) { sParameterName = sURLVariables[i].split('='); if (sParameterName[0] === sParam) { return sParameterName[1] === undefined ? true : sParameterName[1]; } } }; /** LIBRERÍA: gvh_dataJSON **/ /*******************************/ /* * Codificación UTF-8 * Métodos para obtener y modificar información del JSON que se envía a negocio con la información a tratar. * * FUNCIONES: * getRoot(claseManejadora,panel) * * //*** MÉTODOS CAMPOS * getFieldsJSON(rootJSON) * getExistField(rootJSON,field,nReg,external) * setEnableTrigger(rootJSON,field,nReg,value,external) * getEnableTrigger(rootJSON,field,nReg,external) * setValue(rootJSON,field,nReg,value,external) * getValue(rootJSON,field,nReg,external) * setFilesUp(rootJSON,field,nReg,value) * setValueOld(rootJSON,field,nReg,value,external) * getValueOld(rootJSON,field,nReg,external) * setValueCheckbox(rootJSON,field,nReg,value,check,external) * getValueCheckbox(rootJSON,field,nReg,check,external) * getIdField(rootJSON,field,nReg,external) * getTextField(rootJSON,field,nReg,external) * getPlugin(rootJSON,field,nReg,external) * getDependPanelField(rootJSON,field,nReg,external) * getStateField(rootJSON,field,nReg,external) * setStateField(rootJSON,field,nReg,state,external) * getClassField(rootJSON,field,nReg,external) * setClassField(rootJSON,field,nReg,css,external) * getVisibleField(rootJSON,field,nReg,external) * setVisibleField(rootJSON,field,nReg,visible,external) * getFieldList(rootJSON,field,external) * isDependenceList(rootJSON,field,nReg,external) * isHidden(rootJSON,field,nReg,external) * isVisible(rootJSON,field,nReg,external) * getTypeField(rootJSON,field,nReg,external) * * * //*** MÉTODOS PANEL Y REGISTRO * * indexDataJSON(rootJSON,row, modoPanel) * getClassRow(rootJSON,nReg) * setClassRow(rootJSON,nReg,class) * getRowsPag(rootJSON) * getRegIns(rootJSON) * getRegVisibles(rootJSON) * setAllSelected(rootJSON,selected) * * getExistReg(rootJSON,nReg) * getStateReg(rootJSON,nReg,state) * setStateReg(rootJSON,state,nReg,operation) * getSelectedReg(rootJSON,nReg) * setSelectedReg(rootJSON,nReg,operation) * getNumReg(rootJSON) * getPagActive(rootJSON) * setPagActive(rootJSON,pag) * getFieldsRow(rootJSON, row) * getDataRequired(rootJSON) * getPagIns(rootJSON) * getRegAlter(rootJSON) * getRegSelected(rootJSON) * getFieldExternal(rootJSON, field) */ // TODO : Refactorizar las funciones del fichero /** * getRoot: Obtiene el gvh.datosJSON correspondiente a la clase manejadora y panel correspondiente * @access private * @var claseManejadora: clase del panel sobre el que queremos calcular el índice * @var panel: tipo de panel (indice del objeto JSON) sobre el que se está trabajando ['lis','edi'] */ gvh.getRoot = function(claseManejadora,panel) { gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getRoot() - '+claseManejadora+' '+panel); gvh.showConsoleMsg('log',gvh.datosJSON[claseManejadora][panel]); return gvh.datosJSON[claseManejadora][panel]; }; /* ************************* * MÉTODOS CAMPOS */ /** * getFieldsJSON: Obtiene el array de los campos correspondientes a un panel * @access private * @var rootJSON: raiz del gvh.datosJSON, clase manejadora y panel * @var nReg: registro seleccionado */ gvh.getFieldsJSON = function(rootJSON,nReg) { gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getFieldsJSON() '+nReg); var vFields = rootJSON['data'][nReg]['gvhJS_fields']; return vFields; }; /** * getExistField: Devuelve si existe o no el registro en ['data'] del gvh.datosJSON * @access private * @var rootJSON: raiz del gvh.datosJSON, clase manejadora y panel * @var nReg: fila seleccionada del panel * @var field: identificador del campo * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.getExistField = function(rootJSON,field,nReg,external) { external = external || false; gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getExistField() field '+field+' '+nReg+' external? '+external); //gvh.showConsoleMsg('log',rootJSON); if ((external == false)) // || (external == 0) || (external == '')) { if ((rootJSON['data'][nReg] == undefined) || (rootJSON['data'][nReg]['gvhJS_fields'][field] == undefined)) return false; else return true; //rootJSON['data'][nReg]['gvhJS_fields'][field]; } else { if (rootJSON['external'] != undefined) { if (rootJSON['external'][field] == undefined) { gvh.showConsoleMsg('error','El campo '+field+' no existe.'); return false; } else return true; //rootJSON['external'][field]; } else { gvh.showConsoleMsg('error','No hay campos external.'); return false; } } }; /** * setEnableTrigger: Si el campo tiene una acción de interfaz, habilitarla/deshabilitarla * @access private * @var rootJSON: raiz del gvh.datosJSON, clase manejadora y panel * @var field: campo a modificar * @var nReg: número de registro al que pertenece el campo * @var value: valor a asignar * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.setEnableTrigger = function(rootJSON,field,nReg,value,external) { external = external || false; gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - setEnableTrigger() => '+value); if(gvh.getExistField(rootJSON,field,nReg,external)) { if ((external == false)) // || (external == 0) || (external == '') || (external == undefined )) { if(gvh.getExistField(rootJSON,field,nReg,external)) { rootJSON['data'][nReg]['gvhJS_fields'][field]['onTrigger'] = value; rootJSON['dataPerform']['data'][nReg]['gvhJS_fields'][field]['onTrigger'] = value; } } else { if(gvh.getExistField(rootJSON,field,nReg,external)) { rootJSON['external'][field]['onTrigger'] = value; rootJSON['dataPerform']['external'][field]['onTrigger'] = value; } } } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - setEnableTrigger() '+field+' no existe el campo'); } } /** * getEnableTrigger: Si el campo tiene una acción de interfaz, habilitarla/deshabilitarla * @access private * @var rootJSON: raiz del gvh.datosJSON, clase manejadora y panel * @var field: campo a modificar * @var nReg: número de registro al que pertenece el campo * @var value: valor a asignar * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.getEnableTrigger = function(rootJSON,field,nReg,external) { external = external || false; gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getEnableTrigger() => '+field); if(gvh.getExistField(rootJSON,field,nReg,external)) { if ((external == false)) // || (external == 0) || (external == '') || (external == undefined )) { if(gvh.getExistField(rootJSON,field,nReg,external)) { return rootJSON['data'][nReg]['gvhJS_fields'][field]['onTrigger']; } } else { if(gvh.getExistField(rootJSON,field,nReg,external)) { return rootJSON['external'][field]['onTrigger']; } } } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - setEnableTrigger() '+field+' no existe el campo'); } } /** * setValue: Asigna un valor al campo indicado * @access private * @var rootJSON: raiz del gvh.datosJSON, clase manejadora y panel * @var field: campo a modificar * @var nReg: número de registro al que pertenece el campo * @var value: valor a asignar * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.setValue = function(rootJSON,field,nReg,value,external) { external = external || false; gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - setValue() => '+value); if(gvh.getExistField(rootJSON,field,nReg,external)) { if ((external == false)) // || (external == 0) || (external == '') || (external == undefined )) { if(gvh.getExistField(rootJSON,field,nReg,external)) { rootJSON['data'][nReg]['gvhJS_fields'][field]['value'] = value; rootJSON['dataPerform']['data'][nReg]['gvhJS_fields'][field]['value'] = value; } } else { if(gvh.getExistField(rootJSON,field,nReg,external)) { rootJSON['external'][field]['value'] = value; rootJSON['dataPerform']['external'][field]['value'] = value; } } } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - setValue() '+field+' no existe el campo'); } } /** * setFilesUp: Asigna los ficheros anexados al campo correspondiente * @access private * @var rootJSON: raiz del gvh.datosJSON, clase manejadora y panel * @var field: campo a modificar * @var nReg: número de registro al que pertenece el campo * @var value: valor a asignar * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.setFilesUp = function(rootJSON,field,nReg,value) { gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - setFilesUp()'); if(gvh.getExistField(rootJSON,field,nReg)) { rootJSON['data'][nReg]['gvhJS_fields'][field]['files'] = value; rootJSON['dataPerform']['data'][nReg]['gvhJS_fields'][field]['files'] = value; } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - setFilesUp() no existe el campo '+field); } } /** * getValue: Obtiene el valor del campo indicado * @access private * @var rootJSON: raiz del gvh.datosJSON, clase manejadora y panel * @var field: campo a modificar * @var nReg: número de registro al que pertenece el campo * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.getValue = function(rootJSON,field,nReg,external) { external = external || false; if(gvh.getExistField(rootJSON,field,nReg,external)) { if ((external == false)) // || (external == 0) || (external == '')) { var value = rootJSON['data'][nReg]['gvhJS_fields'][field]['value']; } else { var value = rootJSON['external'][field]['value']; } gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getValue() => '+value); return value; } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - getValue() '+field+' no existe el campo.'); return value; } } /** * setValueOld: Asigna un valor anterior al campo indicado * @access private * @var rootJSON: raiz del gvh.datosJSON, clase manejadora y panel * @var field: campo a modificar * @var nReg: número de registro al que pertenece el campo * @var value: valor a asignar * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.setValueOld = function(rootJSON,field,nReg,value,external) { external = external || false; gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - setValueOld()'); if(gvh.getExistField(rootJSON,field,nReg,external)) { if ((external == false)) // || (external == 0) || (external == '')) { rootJSON['data'][nReg]['gvhJS_fields'][field]['valueOld'] = value; rootJSON['dataPerform']['data'][nReg]['gvhJS_fields'][field]['valueOld'] = value; } else { rootJSON['external'][field]['valueOld'] = value; rootJSON['dataPerform']['external'][field]['valueOld'] = value; } } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - setValueOld() '+field+' no existe el campo.'); } } /** * getValueOld: Obtiene el valor anterior del campo indicado * @access private * @var rootJSON: raiz del gvh.datosJSON, clase manejadora y panel * @var field: campo a modificar * @var nReg: número de registro al que pertenece el campo * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.getValueOld = function(rootJSON,field,nReg,external) { external = external || false; gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getValueOld()'); if(gvh.getExistField(rootJSON,field,nReg,external)) { if ((external == false)) // || (external == 0) || (external == '')) { return rootJSON['data'][nReg]['gvhJS_fields'][field]['valueOld']; } else { return rootJSON['external'][field]['valueOld']; } } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - getValueOld() '+field+' no existe el campo.'); } } /** * getValueCheckbox: Devuelve el valor de un checkbox (chequeado o no) * @access private * @var rootJSON: raiz del gvh.datosJSON, clase manejadora y panel * @var field: campo a modificar * @var nReg: número de registro al que pertenece el campo * @var check: Booleano. True, corresponderá al valor del checkbox chequeado. False, corresponderá al valor del checkbox no chequeado. * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.getValueCheckbox = function(rootJSON,field,nReg,check,external) { external = external || false; gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getValueCheckbox()'); if(gvh.getExistField(rootJSON,field,nReg,external)) { if ((external == false)) // || (external == 0) || (external == '')) { if (check) return rootJSON['data'][nReg]['gvhJS_fields'][field]['valueCheck']; else return rootJSON['data'][nReg]['gvhJS_fields'][field]['valueUnCheck']; } else { if (check) return rootJSON['external'][field]['valueCheck']; else return rootJSON['external'][field]['valueUnCheck']; } } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - getValueCheckbox() no existe el campo '+field); } } /** * setValueCheckbox: Devuelve el valor de un checkbox (chequeado o no) * @access private * @var rootJSON: raiz del gvh.datosJSON, clase manejadora y panel * @var field: campo a modificar * @var value: valor a asigna al checkbox * @var nReg: número de registro al que pertenece el campo * @var check: Booleano. True, corresponderá al valor del checkbox chequeado. False, corresponderá al valor del checkbox no chequeado. * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ /*gvh.setValueCheckbox = function(rootJSON,field,value,nReg,check,external) { external = external || false; gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - setValueCheckbox()'); if ((external == false)) // || (external == 0) || (external == '')) { if (check) rootJSON['data'][nReg]['gvhJS_fields'][field]['valueCheck'] = value; else rootJSON['data'][nReg]['gvhJS_fields'][field]['valueUnCheck'] = value; } else { if (check) rootJSON['external'][field]['valueCheck'] = value; else rootJSON['external'][field]['valueUnCheck'] = value; } }*/ /** * getId: Obtiene el valor anterior del campo indicado * @access private * @var rootJSON: raiz del gvh.datosJSON, clase manejadora y panel * @var field: campo a modificar * @var nReg: número de registro al que pertenece el campo * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.getIdField = function(rootJSON,field,nReg,external) { external = external || false; if(gvh.getExistField(rootJSON,field,nReg,external)) { if ((external == false)) // || (external == 0) || (external == '')) { gvh.getExistField(rootJSON,field,nReg,external) var id = rootJSON['data'][nReg]['gvhJS_fields'][field]['id']; } else { var id = rootJSON['external'][field]['id']; } gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getIdField() -> '+field+' id '+id); return id; } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - getIdField() -> '+field+' no existe el campo en el objeto gvh.datosJSON.'); return ''; } } /** * getTextField: Obtiene el texto asociado al campo * @access private * @var rootJSON: raiz del gvh.datosJSON, clase manejadora y panel * @var field: campo a modificar * @var nReg: número de registro al que pertenece el campo * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.getTextField = function(rootJSON,field,nReg,external) { external = external || false; if(gvh.getExistField(rootJSON,field,nReg,external)) { if ((external == false)) // || (external == 0) || (external == '')) { var id = rootJSON['data'][nReg]['gvhJS_fields'][field]['text']; } else { var id = rootJSON['external'][field]['text']; } gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getTextField() -> '+id); return id; } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - getTextField() no existe el campo '+field); return ''; } } /** * getPlugin: Devuelve el tipo de plugin del campo * @access private * @var field: campo * @var nReg: número de registro al que pertenece el campo * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.getPlugin = function(rootJSON,field,nReg,external) { external = external || false; if(gvh.getExistField(rootJSON,field,nReg,external)) { if ((external == false) || (external == 0) || (external == '') || (external == undefined ) ) { var plugin = rootJSON['data'][nReg]['gvhJS_fields'][field]['CWPlugin']; } else { var plugin = rootJSON['external'][field]['CWPlugin']; } gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getPlugin() -> '+plugin); return plugin; } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - getPlugin() no existe el campo '+field); return ''; } } /** * getClassField: Devuelve el atributo class que corresponde al campo * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var field: campo * @var nReg: número de registro al que pertenece el campo * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.getClassField = function(rootJSON,field,nReg,external) { external = external || false; if(gvh.getExistField(rootJSON,field,nReg,external)) { if ((external == false)) // || (external == 0) || (external == '')) { var css = rootJSON['data'][nReg]['gvhJS_fields'][field]['class']; } else { var css = rootJSON['external'][field]['class']; } gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getClassField() -> '+css); return css; } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - getClassField() no existe el campo '+field); return ''; } } /** * setClassField: Devuelve el atributo class que corresponde al campo * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var field: campo * @var nReg: número de registro al que pertenece el campo * @var css: nuevo estilo * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.setClassField = function(rootJSON,field,nReg,css,external) { external = external || false; if(gvh.getExistField(rootJSON,field,nReg,external)) { if ((external == false)) // || (external == 0) || (external == '')) { rootJSON['data'][nReg]['gvhJS_fields'][field]['class'] = css; } else { rootJSON['external'][field]['class'] = css; } gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - setClassField() -> '+css); return css; } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - setClassField() no existe el campo '+field); return ''; } } /** * getVisibleField: Devuelve si el campo es visible o no * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var field: campo * @var nReg: número de registro al que pertenece el campo * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.getVisibleField = function(rootJSON,field,nReg,external) { external = external || false; if(gvh.getExistField(rootJSON,field,nReg,external)) { if ((external == false)) // || (external == 0) || (external == '')) { var visible = rootJSON['data'][nReg]['gvhJS_fields'][field]['visible']; } else { var visible = rootJSON['external'][field]['visible']; } gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - setVisibleField() -> '+visible); return visible; } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - setVisibleField() no existe el campo '+field); return ''; } } /** * setVisibleField: Devuelve si el campo es visible o no * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var field: campo * @var nReg: número de registro al que pertenece el campo * @var visible: booleano * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.setVisibleField = function(rootJSON,field,nReg,visible,external) { external = external || false; if(gvh.getExistField(rootJSON,field,nReg,external)) { if ((external == false)) // || (external == 0) || (external == '')) { rootJSON['data'][nReg]['gvhJS_fields'][field]['visible'] = visible; } else { rootJSON['external'][field]['visible'] = visible; } gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getVisibleField() -> '+visible); return visible; } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - getVisibleField() no existe el campo '+field); return ''; } } /** * getDependPanelField: Devuelve si el estado del elemento (boton tooltip) es dependiente del panel * @access public * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var field: campo * @var nReg: número de registro al que pertenece el campo * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.getDependPanelField = function(rootJSON,field,nReg,external) { external = external || false; let depend = false; if (gvh.getExistField(rootJSON,field,nReg,external)) { let fields = undefined; if ((external == false)) // || (external == 0) || (external == '')) { fields = rootJSON['data'][nReg]['gvhJS_fields']; } else { fields = rootJSON['external']; } if( fields != undefined && fields[field]['dependPanel'] != undefined ) { depend = fields[field]['dependPanel']; } gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getDependPanelField() -> '+depend); return depend; } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - getDependPanelField() no existe el campo '+field); return ''; } } /** * setDependPanelField: Devuelve si el estado del elemento (boton tooltip) es dependiente del panel * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var field: campo * @var nReg: número de registro al que pertenece el campo * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.setDependPanelField = function(rootJSON,field,nReg,depend,external) { external = external || false; if (gvh.getExistField(rootJSON,field,nReg,external)) { if ((external == false)) // || (external == 0) || (external == '')) { rootJSON['data'][nReg]['gvhJS_fields'][field]['dependPanel'] = depend; } else { rootJSON['external'][field]['dependPanel'] = depend; } gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - setDependPanelField() -> '+depend); } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - setDependPanelField() no existe el campo '+field); } } /** * getStateField: Devuelve el estado correspondiente al campo * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var field: campo * @var nReg: número de registro al que pertenece el campo * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.getStateField = function(rootJSON,field,nReg,external) { external = external || false; if (gvh.getExistField(rootJSON,field,nReg,external)) { if ((external == false)) // || (external == 0) || (external == '')) { var state = rootJSON['data'][nReg]['gvhJS_fields'][field]['state']; } else { var state = rootJSON['external'][field]['state']; } gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getStateField() -> '+field+' '+state); return state; } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - getStateField() no existe el campo '+field); return ''; } } /** * setStateField: Asigna el estado a un campo * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var field: campo * @var nReg: número de registro al que pertenece el campo * @var value: true/false/new * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.setStateField = function(rootJSON,field,nReg,state,external) { external = external || false; if (gvh.getExistField(rootJSON,field,nReg,external)) { if ((external == false)) // || (external == 0) || (external == '')) { rootJSON['data'][nReg]['gvhJS_fields'][field]['state'] = state; } else { rootJSON['external'][field]['state'] = state; } gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - setStateField() -> '+state); return state; } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - setStateField() no existe el campo '+field); return ''; } } /** * getFieldList: Devuelve los valores de una lista correspondiente a un campo * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var field: campo * @var dependence: booleano si la lista es dependiente o no * @var nReg: número de registro al que pertenece el campo * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.getFieldList = function(rootJSON,field,dependence,nReg,external) { external = external || false; gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getFieldList() '+field+' nReg '+nReg); if (nReg != undefined) { if (gvh.getExistField(rootJSON,field,nReg,external)) { gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getFieldList() '+field+' nReg '+nReg); if (dependence == false) return rootJSON['components']['gvh_list'][field]; else { if ((external == false)) // || (external == 0) || (external == '')) { return rootJSON['data'][nReg]['gvhJS_fields'][field]['lista']; } else { return rootJSON['external'][field]['lista']; } } } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - getFieldList() no existe el campo '+field); return ''; } } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - getFieldList() no se ha especificado el número de registro (nReg)'); return ''; } } /** * isDependenceList: Devuelve si es una lista dependiente o no * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var field: campo * @var nReg: número de registro al que pertenece el campo * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.isDependenceList = function(rootJSON,field,nReg,external) { external = external || false; if (gvh.getExistField(rootJSON,field,nReg,external)) { gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - isDependenceList() field '+field+' nReg '+nReg); if ((external == false)) // || (external == 0) || (external == '')) { return rootJSON['data'][nReg]['gvhJS_fields'][field]['dependence']; } else { return rootJSON['external'][field]['dependence']; } } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - isDependenceList() no existe el campo '+field); return ''; } }; /** * isHidden: Devuelve true/false si el campo es un campo oculto * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var field: campo * @var nReg: número de registro al que pertenece el campo * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.isHidden = function(rootJSON,field,nReg,external) { external = external || false; if (gvh.getExistField(rootJSON,field,nReg,external)) { if ((external == false)) // || (external == 0) || (external == '')) { var hidden = rootJSON['data'][nReg]['gvhJS_fields'][field]['hidden']; } else { var hidden = rootJSON['external'][field]['hidden']; } gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - isHidden() => '+hidden ); return hidden; } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - isHidden() no existe el campo '+field); return ''; } }; /** * isVisible: Devuelve true/false si el campo es visible * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var field: campo * @var nReg: número de registro al que pertenece el campo * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.isVisible = function(rootJSON,field,nReg,external) { external = external || false; if (gvh.getExistField(rootJSON,field,nReg,external)) { gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - isVisible() '); if ((external == false)) { return rootJSON['data'][nReg]['gvhJS_fields'][field]['visible']; } else { return rootJSON['external'][field]['visible']; } } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - isVisible() no existe el campo '+field); return ''; } }; /** * getTypeField: Obtiene el tipo del campo * @access private * @var rootJSON: raiz del gvh.datosJSON, clase manejadora y panel * @var field: campo a modificar * @var nReg: número de registro al que pertenece el campo * @var external: booleano Solo en paneles tabulares, campo externo a la tabla */ gvh.getTypeField = function(rootJSON,field,nReg,external) { external = external || false; if (gvh.getExistField(rootJSON,field,nReg,external)) { gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getTypeField()'); if ((external == false)) // || (external == 0) || (external == '')) { return rootJSON['data'][nReg]['gvhJS_fields'][field]['type']; } else { return rootJSON['external'][field]['type']; } } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - getTypeField() no existe el campo '+field ); return ''; } } /* ************************* * MÉTODOS PANEL Y REGISTRO */ /** * indexDataJSON: Calcula el índice del array gvh.datosJSON sobre el que queremos trabajar. * Útil para calcularlo cuando se trabaja con paneles lis. * @access private * @var rootJSON: raiz del gvh.datosJSON, clase manejadora y panel * @var row: fila seleccionada del panel * @var modoPanel: 'I' solo en el caso de estar en modo inserción para calcular el índice correspondiente */ gvh.indexDataJSON = function(rootJSON, row, modoPanel) { modoPanel = modoPanel || ''; gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - indexDataJSON()'); var numReg = parseInt(rootJSON['panel']['numReg']); var rowsPag = parseInt(rootJSON['panel']['rowsPag']); var pagAct = parseInt(rootJSON['panel']['pagActive']); if (numReg > 0) { var row = row; } else { var row = numReg; } if (modoPanel == 'I') { var rowIniIns = parseInt(rootJSON['panel']['rowIniInsercion']); if (rowIniIns == row) { var indice = rowIniIns; } else { var indice = parseInt(pagAct*rowIniIns)+parseInt(row); } } else { var indice = parseInt(pagAct*rowsPag)+parseInt(row); } return indice; }; /** * getClassRow: actualización del array correspondiente a la operación con el número de registro afectado * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var state: ['selected' | 'insert' | 'updated' | 'deleted'] * @var nReg: indice del array gvh.datosJSON[claseManejadora][panel][data], número de registro/fila sobre el que se aplica el estado * @var operation: add,sub */ gvh.getClassRow = function(rootJSON,nReg) { return rootJSON['data'][nReg]['gvhJS_rowColor']; } /** * getClassRow: actualización del array correspondiente a la operación con el número de registro afectado * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var state: ['selected' | 'insert' | 'updated' | 'deleted'] * @var nReg: indice del array gvh.datosJSON[claseManejadora][panel][data], número de registro/fila sobre el que se aplica el estado * @var operation: add,sub */ gvh.setClassRow = function(rootJSON,nReg,css) { rootJSON['data'][nReg]['gvhJS_rowColor'] = css; } /** * getRowsPag: Devuelve el número de filas de una página de una tabla * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] */ gvh.getRowsPag = function(rootJSON) { gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getRowsPag()'); return rootJSON['panel']['rowsPag']; } /** * getRegInsert: Devuelve los registros donde se insertarán valores * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var vReg: array registros seleccionados */ gvh.getRegInsert = function(rootJSON) { gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getRegInsert()'); var vReg = []; var numReg = rootJSON['panel']['pagInsercion']; var rowsPag = rootJSON['panel']['rowsPag']; for(var i=0;i'+operation ); if( (rootJSON == '') || (operation == '') ) { gvh.showConsoleMsg('log', "setSelectedReg() - error en los parámetros. nReg: "+nReg+" operation: "+operation ); //gvh.showConsoleMsg('log',rootJSON); return; } if( operation == 'add' ) { rootJSON['data'][nReg]['gvhJS_selected'] = 'selected'; rootJSON['dataPerform']['data'][nReg]['gvhJS_selected'] = 'selected'; } else if( operation == 'sub' ) { rootJSON['data'][nReg]['gvhJS_selected'] = 'false'; rootJSON['dataPerform']['data'][nReg]['gvhJS_selected'] = 'false'; } } else { gvh.showConsoleMsg('log', ' *** gvh_dataJSON.js - setSelectedReg() el registro '+nReg+' no existe.' ); } } /** * getStateReg: devuelve el estado del registro * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var state: ['selected' | 'insert' | 'updated' | 'deleted'] * @var nReg: indice del array gvh.datosJSON[claseManejadora][panel][data], número de registro/fila sobre el que se aplica el estado * @var operation: add,sub */ gvh.getStateReg = function(rootJSON,nReg,state) { if (gvh.getExistReg(rootJSON,nReg)) { gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getStateReg() '+nReg+' '+state); return rootJSON['data'][nReg]['gvhJS_state']; } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - getStateReg() el registro '+nReg+' no existe. '); return ''; } } /** * setStateReg: actualización del array correspondiente a la operación con el número de registro afectado * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var state: ['selected' | 'insert' | 'updated' | 'deleted'] * @var nReg: indice del array gvh.datosJSON[claseManejadora][panel][data], número de registro/fila sobre el que se aplica el estado * @var operation: add,sub */ gvh.setStateReg = function( rootJSON, state, nReg ) { if( (state == '') || (rootJSON == '') ) { gvh.showConsoleMsg('error', "setStateReg() - error en los parámetros. state: "+state ); //gvh.showConsoleMsg('log',rootJSON); return; } if (gvh.getExistReg(rootJSON,nReg)) { gvh.showConsoleMsg('log', ' *** gvh_dataJSON.js - setStateReg() ->'+state); let jsonOp = []; if( state != 'nada' ) { jsonOp = rootJSON['dataPerform']['gvhJS_'+state]; } let operacion = ''; switch( state ) { case 'find': operacion = 'buscar'; break; case 'inserted': operacion = 'insertada'; break; case 'deleted': operacion = 'borrada'; break; case 'updated': operacion = 'modificada'; break; default: operacion = 'nada'; break; } rootJSON['data'][nReg]['gvhJS_state'] = operacion; rootJSON['dataPerform']['data'][nReg]['gvhJS_state'] = operacion; } else { gvh.showConsoleMsg('error', ' *** gvh_dataJSON.js - setStateReg() el registro '+nReg+' no existe. '); } } /** * getNumReg: Devuelve el número de registros de un panel * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] */ gvh.getNumReg = function(rootJSON) { gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getNumReg()'); return rootJSON['panel']['numReg']; } /** * getPagActive: Devuelve la página activa del panel * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] */ gvh.getPagActive = function(rootJSON) { gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getPagActive()'); return rootJSON['panel']['pagActive']; } /** * setPagActive: Devuelve la página activa del panel * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var pag: número de página */ gvh.setPagActive = function(rootJSON,pag) { gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - setPagActive()'); //gvh.showConsoleMsg('log',rootJSON); rootJSON['panel']['pagActive'] = pag; } /** * getFieldsRow: Devuelve los campos de una fila * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var nReg: fila */ gvh.getFieldsRow = function(rootJSON,nReg) { if (gvh.getExistReg(rootJSON,nReg)) { gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getFieldsRow()'); return rootJSON['data'][nReg]['gvhJS_fields']; } else { gvh.showConsoleMsg('error',' *** gvh_dataJSON.js - getFieldsRow() el registro '+nReg+' no existe.'); return ''; } } /** * getFieldsRow: Devuelve los campos de una fila * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var nReg: fila */ gvh.getDataRequired = function(rootJSON) { gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getDataRequired()'); return rootJSON['dataRequired']; } /** * getPagIns: Devuelve los campos de una fila * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var nReg: fila */ gvh.getPagIns = function(rootJSON) { var pagIns = rootJSON['panel']['pagInsercion']; gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getPagIns() => '+pagIns); return pagIns; } /** * getRegAlter: Devuelve los registros que han sido modificados (insertar, modificar) * @access private * @var rootJSON: gvh.datosJSON[claseManejadora][panelJSON] * @var vReg: array registros modificados */ gvh.getRegAlter = function(rootJSON) { gvh.showConsoleMsg('log',' *** gvh_dataJSON.js - getRegAlter()'); var vReg = []; var numReg = rootJSON['panel']['numReg']; for(var i=0;i 0) { regIni = pag*(rowsPag); regFin = parseInt(regIni)+parseInt(rowsPag-1); } bloque['ini'] = regIni; bloque['fin'] = regFin; return bloque; } /** * setStateFieldsHTML_paginar(): modificar el aspecto visual del cambio conforme al estado correspondiente * @access private * @var claseManejadora: clase del panel sobre el que queremos calcular el índice * @var panel: tipo de panel sobre el que se está trabajando ['lis','lisDetalle'] * @var row: fila seleccionada del panel */ gvh.setStateFieldsHTML_paginar = function(raizJSON, panel, claseManejadora, row) { var panelJSON = panel.substr( 0, 3 ); var stateRow = gvh.getStateReg(raizJSON,row,'state'); var selectedRow = gvh.getSelectedReg(raizJSON,row); var numReg = gvh.getNumReg(raizJSON); var sufijo = panel+'_'+row; var objPanel = $('#P_'+panel+'[data-gvhClaseManejadora='+claseManejadora+']'); gvh.showConsoleMsg('beginGroup',' ** gvh_paginar.js - setStateFieldsHTML_paginar() '); if (row < numReg) // Comprobación necesaria cuando es un panel tabular, en panel ficha siempre se cumplirá { if (panelJSON == 'lis') { var rowsPag = gvh.getRowsPag(raizJSON); var rowTab = row%rowsPag; var sufijo = panel+'_'+rowTab; } $('[id^=cam_][data-gvhClaseManejadora='+claseManejadora+'][data-gvhPanelOn='+panel+']').map(function() { var field = $(this); var id = $(this).attr('id'); var stateField = $(this).attr('data-gvhState'); switch(stateRow) { case 'modificada': if (stateField == 'edit') { field.prop('readonly',false); field.prop('disabled',false); //field.removeClass('edit'); field.removeClass('new'); field.removeClass('delete'); field.addClass('modify'); } break; case 'borrada': field.prop('readonly',true); field.prop('disabled',true); field.removeClass('edit'); field.removeClass('new'); field.addClass('delete'); break; case 'nada': field.prop('readonly',true); field.removeClass('modify'); field.removeClass('new'); field.removeClass('delete'); field.addClass('edit'); break; case 'selected': if (gvh.getStatePanel( objPanel ) == 'W') { field.prop('readonly',true); field.removeClass('modify'); field.removeClass('new'); field.removeClass('delete'); field.addClass('edit'); } break; default: field.prop('readonly',true); field.removeClass('new'); field.removeClass('modify'); field.removeClass('delete'); field.addClass('edit'); break; } }); //fin switch // Tratamiento del editor enriquecido porque tiene otro prefijo distinto de 'cam__' if ((stateRow == 'modificada') && (panelJSON == 'edi')) { var editor = $('div[id^=editor_cam_]').filter('[data-gvhClaseManejadora='+claseManejadora+']'); if (editor.length > 0) { editor.filter('[id$='+panel+']').filter('[data-gvhPanelOn='+panel+']').filter('[data-gvhstate=edit]').each(function() { $(this).attr('contenteditable','true'); }) } } //if // Capa IGEPVisible var idIgepVisible = 'IGEPVisible'+sufijo; var IgepVisible = $('#'+idIgepVisible+'[data-gvhClaseManejadora='+claseManejadora+']'); if (IgepVisible.is(':hidden')) { IgepVisible.show(); } if (panelJSON == 'lis') { var rowsPag = gvh.getRowsPag(raizJSON); var rowTab = row%rowsPag; var sufijoRow = panel+'_'+rowTab; $('tr[id='+sufijoRow+']').attr('data-gvhStateRow',stateRow); // Color de la fila var fila = $('#'+sufijoRow).filter('[data-gvhClaseManejadora='+claseManejadora+']'); var color = gvh.getClassRow(raizJSON,row); var cssRow = fila.attr('class'); fila.removeClass(cssRow); fila.addClass(color); // Checkbox de la fila //var selectedJSONDecode = gvh.getStateReg(raizJSON,row,'selected'); var selectedJSONDecode = gvh.getSelectedReg(raizJSON,row); if (selectedJSONDecode == 'undefined') selectedJSONDecode = false; var checkFila = $('#check_'+sufijoRow).filter('[data-gvhClaseManejadora='+claseManejadora+']'); if (checkFila.length < 0) { checkFila = $('#vsCheck_'+sufijo); } if (selectedJSONDecode == 'selected') { checkFila.prop('checked',true); fila.addClass('rowOn'); fila.removeClass('none'); } else { checkFila.prop('checked',false); fila.removeClass('rowOn'); if (color == '') fila.addClass('none'); } } //if panel tabular } else if (panelJSON == 'lis') { var jsonReg = gvh.getFieldsRow(raizJSON,row); var rowsPag = gvh.getRowsPag(raizJSON); var rowTab = row%rowsPag; var sufijoRow = panel+'_'+rowTab; for (var field in jsonReg) { var idIGEPVisible = "IGEPvisiblecam___"+field+"___"+sufijoRow; $('span[id='+idIGEPVisible+']').filter('[data-gvhClaseManejadora='+claseManejadora+']').hide(); $('#'+sufijoRow).filter('[data-gvhClaseManejadora='+claseManejadora+']').removeClass(); $('#'+sufijoRow).filter('[data-gvhClaseManejadora='+claseManejadora+']').addClass('rowNoData'); } } // else filas inserción - panel tabular gvh.showConsoleMsg('endGroup'); }; /** * setValueFieldsHTML_paginar(): cambia los valores de los campos al paginar * @access private * @var claseManejadora: clase del panel sobre el que queremos calcular el índice * @var panel: tipo de panel sobre el que se está trabajando ['lis','lisDetalle'] * @var row: fila seleccionada del panel */ gvh.setValueFieldsHTML_paginar = function(raizJSON, panel, claseManejadora, row) { gvh.showConsoleMsg('beginGroup',' ** gvh_paginar.js - setValueFieldsHTML_paginar() '); var sufijo = panel+'_'+row; var panelJSON = panel.substr( 0, 3 ); var stateRow = gvh.getStateReg(raizJSON,row,'state'); var numReg = gvh.getNumReg(raizJSON); if (panelJSON == 'lis') { var rowsPag = gvh.getRowsPag(raizJSON); var rowTab = row%rowsPag; var sufijoRow = panel+'_'+rowTab; } if (row < numReg) // Comprobación necesaria cuando es un panel tabular, en panel ficha siempre se cumplirá { if (panelJSON == 'lis') { var rowsPag = gvh.getRowsPag(raizJSON); var rowTab = row%rowsPag; var sufijo = panel+'_'+rowTab; } var jsonReg = gvh.getFieldsJSON(raizJSON,row); if (panelJSON == 'lis') { var idIGEPVisibleRow = "IGEPVisible"+sufijoRow; var objIGEPVisibleRow = $('#'+idIGEPVisibleRow+'[data-gvhClaseManejadora='+claseManejadora+']'); if (objIGEPVisibleRow.is(':hidden')) { objIGEPVisibleRow.show(); } } for (var field in jsonReg) // Recorremos los campos correspondientes al registro para obtener su valor y asignarlo al componente HTML { // Comprobamos si el campo es visible o no var visible = gvh.isVisible(raizJSON,field,row); var idIGEPVisible = "IGEPVisiblecam___"+field+"___"+sufijoRow; var objIGEPVisible = $('#'+idIGEPVisible+'[data-gvhClaseManejadora='+claseManejadora+']'); if (visible) { if (objIGEPVisible.is(':hidden')) { objIGEPVisible.show(); } } else { if (objIGEPVisible.is(':visible')) { objIGEPVisible.hide(); } } var idCampo = 'cam___'+field+'___'+panel; var idIcono = 'icon_cam___'+field+'___'+panel; if (panelJSON == 'lis') { var idCampo = 'cam___'+field+'___'+panel+'_'+rowTab; var idIcono = 'icon_cam___'+field+'___'+panel+'_'+rowTab; } var css = jsonReg[field]['class']; var plugin = jsonReg[field]['CWPlugin']; var valueJSONDecode = jsonReg[field]['value']; if ((valueJSONDecode == 'undefined')) valueJSONDecode = ''; switch(plugin) { case 'noMatching': var inputField = $('input[id*='+idCampo+']').filter('[data-gvhClaseManejadora='+claseManejadora+']'); inputField.val(valueJSONDecode); inputField.attr('value',valueJSONDecode); inputField.attr('title',valueJSONDecode); break; case 'cwcampotexto': var inputField = $('input[id*='+idCampo+']').filter('[data-gvhClaseManejadora='+claseManejadora+']'); inputField.val(valueJSONDecode); inputField.attr('value',valueJSONDecode); inputField.attr('title',valueJSONDecode); // css campo var tipo = inputField.attr('type'); if (tipo != 'hidden') { var cssField = inputField.attr('class'); if (cssField != css) { inputField.removeClass(); inputField.addClass(css); } } break; case 'cwrichareatexto': var inputField = $('textarea[id*='+idCampo+']').filter('[data-gvhClaseManejadora='+claseManejadora+']'); $('#editor_'+idCampo).html(valueJSONDecode); // inputField.val(valueJSONDecode); // css campo var tipo = inputField.attr('type'); if (tipo != 'hidden') { var cssField = inputField.attr('class'); if (cssField != css) { inputField.removeClass(); inputField.addClass(css); } } break; case 'cwareatexto': var inputField = $('textarea[id*='+idCampo+']').filter('[data-gvhClaseManejadora='+claseManejadora+']'); inputField.val(valueJSONDecode); // css campo var tipo = inputField.attr('type'); if (tipo != 'hidden') { var cssField = inputField.attr('class'); if (cssField != css) { inputField.removeClass(); inputField.addClass(css); } } break; case 'cwlista': case 'cwlista_select2': var inputField = $('select[id*='+idCampo+']').filter('[data-gvhClaseManejadora='+claseManejadora+']'); var dependencia = gvh.isDependenceList(raizJSON,field,row); if ((dependencia != undefined) && (dependencia != 'NO')) // es una lista dependiente { var listOptions = jsonReg[field]['lista']; if (listOptions.length > 0) { if (plugin == 'cwlista') gvh.addList(inputField, listOptions, valueJSONDecode); else gvh.addListSelect2(inputField, listOptions, valueJSONDecode); } } else { var jsonListaField = gvh.getFieldList(raizJSON,field,false,row); var idCampo = inputField.attr('id'); $('#'+idCampo+' option:selected').attr('selected',false); $('#'+idCampo+' option[value="'+valueJSONDecode+'"]').prop("selected", true); $('#'+idCampo+' option[value="'+valueJSONDecode+'"]').attr("selected", true); } // Al paginar podemos pasar de la última página que no sea completa a una página completa, hay que volver a rellenar los valores (option) de la lista if (panel == 'lis') { var listOptions = ''; if (inputField.length == 0) { if ((dependencia != undefined) && (dependencia != 'NO')) { // Si la lista es dependiente, las opciones de la lista están en el campo listOptions = jsonReg[field]['lista']; } else { // Si la lista no es dependiente, las opciones están en la zona común listOptions = jsonListaField[field]; } if ((listOptions != '') && (listOptions.length > 0)) { if (plugin == 'cwlista') gvh.addList(inputField, listOptions, valueJSONDecode); else gvh.addListSelect2(inputField, listOptions, valueJSONDecode); } } else { var dependencia = jsonReg[field]['dependence']; if ((dependencia != undefined) && (dependencia != 'NO')) { //Hay dependencia listOptions = jsonReg[field]['lista']; if (listOptions.length > 0) { if (plugin == 'cwlista') gvh.addList(inputField, listOptions, valueJSONDecode); else gvh.addListSelect2(inputField, listOptions, valueJSONDecode); } } else { $('#'+idCampo+' option[value="'+valueJSONDecode+'"]').prop("selected", true); } } } var cssField = inputField.attr('class'); if (cssField != css) { inputField.removeClass(); inputField.addClass(css); } break; case 'cwbotontooltip': break; case 'cwcheckbox': var inputField = $('input[id*='+idCampo+']').filter('[data-gvhClaseManejadora='+claseManejadora+']'); var valueJSONDecode = jsonReg[field]['checked']; if ((valueJSONDecode == 'undefined') || (valueJSONDecode == 'false')) { inputField.prop('checked',false); } else { inputField.prop('checked',true); } var cssField = inputField.attr('class'); if (cssField != css) { inputField.removeClass(); inputField.addClass(css); } break; case 'cwimagen': break; case 'cwinformation': // Botón tooltip con información var button = $('button[id*='+idCampo+']').filter('[data-gvhClaseManejadora='+claseManejadora+']'); button.attr('data-content', valueJSONDecode); var cssField = button.attr('class'); if (cssField != css) { button.removeClass(); button.addClass(css); } if ((color != '') && (color != undefined)) { button.addClass(color); } // icono del botón var iconJSON = jsonReg[field]['icon']; if (iconJSON == 'undefined') iconJSON = ''; var idIconButton = 'iconInf_cam___'+field+'___'+sufijo; iconButton = $('#'+idIconButton).filter('[data-gvhClaseManejadora='+claseManejadora+']'); iconButton.removeClass(); iconButton.addClass(iconJSON); break; case 'cwlabel icon': // Label que solamente es un icono var inputField = $('span[id*='+idIcono+']').filter('[data-gvhClaseManejadora='+claseManejadora+']'); inputField.removeClass(); inputField.addClass(valueJSONDecode); break; case 'cwlabel': var inputField = $('label[id*='+idCampo+']').filter('[data-gvhClaseManejadora='+claseManejadora+']'); if (inputField.length > 0) { inputField.html(valueJSONDecode); inputField.attr('value',valueJSONDecode); cssField = inputField.attr('class'); if (cssField != css) { inputField.removeClass(); inputField.addClass(css); } } // El label puede ir acompañado de un icono var icono = $('#'+idIcono).filter('[data-gvhClaseManejadora='+claseManejadora+']'); if (icono.length > 0) { try { var iconJSONDecode = decodeURIComponent(escape(jsonReg[field]['icon'])); } catch(e) { var iconJSONDecode = jsonReg[field]['icon']; } if (iconJSONDecode == 'undefined') iconJSONDecode = ''; icono.removeClass(); icono.addClass(iconJSONDecode); } break; case 'cwlistaradio': // RADIOBUTTON var radio = $('input:radio[name*='+idCampo+']').filter('[data-gvhClaseManejadora='+claseManejadora+']'); radio.filter('[value='+valueJSONDecode+']').prop('checked',true); var cssField = radio.attr('class'); if (cssField != css) { radio.removeClass(); radio.addClass(css); } break; case 'cwslider': // slider de imágenes if (gvh.objSliders.length > 0) { $.each(gvh.objSliders, function(i, slider) { slider.destroySlider(); }); gvh.objSliders.push( $('ul[id*=slider_]').filter('[data-gvhIterActual='+row+']').bxSlider({ minSlides: 2, maxSlides: 3, slideWidth: 400, slideMargin: 10, caption: true, pager: true }) ); } break; default: break; } } } else if (panelJSON == 'lis') { var jsonReg = gvh.getFieldsRow(raizJSON,row); var rowsPag = gvh.getRowsPag(raizJSON); var rowTab = row%rowsPag; var sufijoRow = panel+'_'+rowTab; for (var field in jsonReg) { var idCampo = "cam___"+field+"___"+panel+"_"+rowTab; var css = jsonReg[field]['class']; var plugin = jsonReg[field]['CWPlugin']; var inputField = $('#'+idCampo+'[data-gvhClaseManejadora='+claseManejadora+']'); var idIGEPVisible = "IGEPVisiblecam___"+field+"___"+sufijoRow; var objIGEPVisible = $('#'+idIGEPVisible+'[data-gvhClaseManejadora='+claseManejadora+']'); if (objIGEPVisible.is(':visible')) { objIGEPVisible.hide(); } var idIGEPVisibleRow = "IGEPVisible"+sufijoRow; var objIGEPVisibleRow = $('#'+idIGEPVisibleRow+'[data-gvhClaseManejadora='+claseManejadora+']'); if (objIGEPVisibleRow.is(':visible')) { objIGEPVisibleRow.hide(); } } } gvh.showConsoleMsg('endGroup'); } /** * paginar(): Al cambiar de página debemos volver a asignar los valores que vienen en el JSON a sus respectivos campos * @access private * @var pagSource: * @var pagTarget: * @var panel: * @var claseManejadora: */ gvh.paginar = function(pagSource, pagTarget, panel, claseManejadora) { gvh.showConsoleMsg('log',' ** gvh_paginar.js - paginar() - pag: '+pagTarget+' panel: '+panel+' claseManejadora '+claseManejadora); var idPanel = "P_"+panel; var objPanel = $('#'+idPanel); var state = gvh.getStatePanel(objPanel); var bloque = []; var panelJSON = panel.substr(0,3); var raizJSON = gvh.getRoot(claseManejadora,panelJSON); gvh.setPagActive(raizJSON,pagTarget); var numReg = gvh.getNumReg(raizJSON); var rowsPag = gvh.getRowsPag(raizJSON); var valueJSONDecode = ''; if (panelJSON == 'lis') { bloque = gvh.blockRegPagina(raizJSON,pagTarget); var regIni = bloque['ini']; var regFin = bloque['fin']; gvh.showConsoleMsg('log',' ... Panel tabular desde '+regIni+' a '+regFin); for(var i=regIni;i<=regFin;i++) { gvh.setStateFieldsHTML_paginar(raizJSON, panel, claseManejadora, i); gvh.setValueFieldsHTML_paginar(raizJSON, panel, claseManejadora, i); } } else { var vFields = gvh.getFieldsRow(raizJSON,pagTarget); var sufijo = panel+'_'+pagTarget; var state = gvh.getStateReg(raizJSON,pagTarget,'state'); gvh.showConsoleMsg('log',' ... Panel registro '); for(var i=0;i 0) { if (rspTplJSON.context.action == 'gvHidraCloseJDialog') { gvh.showConsoleMsg('log',' ... Cerramos ventana => action: '+rspTplJSON.context.action); // REVIEW VERO: globalWS globalWS.dialog('destroy').remove(); if (dialogIdWM.length <= 0) gvh.ambito = 'gvhMain'; else gvh.ambito = 'gvhModal'; } else { gvh.showConsoleMsg('log',' ... Ya existe WS, cargamos => url: '+urlTpl); $('#'+idWS).load(urlTpl); gvh.loading( 'off' ); } } else { gvh.showConsoleMsg('log',' ... Abrimos WS => action: '+rspTplJSON.context.action); $('#gvhPage').append( '