function IgepJS(claseManejadora,panel) { this.claseManejadora = claseManejadora; this.panel = panel; //Declaracion de las cabeceras this.getValue = f_getValue; this.setValue = f_setValue; this.getClass = f_getClass; this.addClass = f_addClass; this.removeClass = f_removeClass; this.setVisible = f_setVisible; this.getVisible = f_getVisible; this.setEnable = f_setEnable; this.getEnable = f_getEnable; this.setEditable = f_setEditable; this.getEditable = f_getEditable; this.setBtnDisabled = f_setBtnDisabled; this.getBtnDisabled = f_getBtnDisabled; } /** * f_panelVisible: Devuelve si el panel está visible o no * @access private * @var panel: id del panel a consultar */ function f_panelVisible(panel) { if ($('#'+panel).is(':visible')) return true; else return false; } /** * f_iterActual: Devuelve la página actual * @access private */ function f_iterActual() { panel = this.panel; iterActual = $('#P_'+panel).attr('data-gvhPagActual'); return iterActual; } /** * f_getIdComp: Obtiene el id del campo indicado * @access private * @var componente: Nombre del campo * @var iter: Iteración sobre la que se quiere el campo * @var external: [true / false] */ function f_getIdComp(componente, iter, external ) { claseManejadora = this.claseManejadora; panel = this.panel; var id = ''; if (external) { if (datosJSON[claseManejadora][panel]['external'][componente].length > 0) id = datosJSON[claseManejadora][panel]['external'][componente]['id']; } else { if (datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente].length > 0) id = datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente]['id']; } if (id != '') { if ((panel == 'edi') || (panel == 'ediDetalle')) { sufijo = iter.toString().length; to = id.length-sufijo; id = id.substring(0, to); id = id+'0'; } else { // Probar para tabular que id corresponde } } //console.log('IgepJS.js - f_getIdComp() - componente '+componente+' panel '+panel+' id '+id); return id; } /** * f_getValue: Obtiene el valor del campo * @access public * @var componente: Nombre del campo * @var external: [true / false] */ function f_getValue(componente, external ) { panel = this.panel; if (f_panelVisible(panel)) { claseManejadora = this.claseManejadora; iter = f_iterActual(panel); var valor = ''; console.log('igepJS.js - f_getValue() - iter: '+iter+' panel: '+panel+' componente: '+componente); if (external) { if (datosJSON[claseManejadora][panel]['external'][componente].length > 0) valor = datosJSON[claseManejadora][panel]['external'][componente]['value']; } else { if (datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente].length > 0) valor = datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente]['value']; } return valor; } } /** * f_setValue: Asigna valor a un campo * @access public * @var componente: Nombre del campo * @var valor: Valor a asignar al componente * @var external: [true / false] */ function f_setValue(componente, external, valor) { panel = this.panel; if (f_panelVisible(panel)) { claseManejadora = this.claseManejadora; iter = f_iterActual(panel); console.log('igepJS.js - f_setValue() - iter: '+iter+' panel: '+panel+' componente: '+componente); if (external) { datosJSON[claseManejadora][panel]['external'][componente]['value'] = valor; datosJSON[claseManejadora][panel]['dataPerform']['external'][idCampo]['value'] = valorCampo; } else { datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente]['value'] = valor; datosJSON[claseManejadora][panel]['dataPerform'][iter]['gvhJS_fields'][componente]['value'] = valor; } } } /** * f_getClass: Obtiene el class del campo indicado * @access public * @var componente: Nombre del campo * @var external: [true / false] */ function f_getClass(componente, external) { panel = this.panel; if (f_panelVisible(panel)) { claseManejadora = this.claseManejadora; iter = f_iterActual(panel); console.log('igepJS.js - f_getClass() - iter: '+iter+' panel: '+panel+' componente: '+componente); if (external) { css = datosJSON[claseManejadora][panel]['external'][componente]['class']; } else { css = datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente]['class']; } return css; } } /** * f_addClass: Modifica el class de un campo * @access public * @var componente: Nombre del campo * @var external: [true / false] * @var css: estilo css a añadir */ function f_addClass(componente, external, css) { panel = this.panel; if (f_panelVisible(panel)) { claseManejadora = this.claseManejadora; iter = f_iterActual(panel); console.log('igepJS.js - f_addClass() - iter: '+iter+' panel: '+panel+' componente: '+idComp+' css: '+css); idComp = f_getIdComp(componente, iter, external); if (idComp != '') { $('#'+idComp).addClass(css); cssComp = $('#'+idComp).attr('class'); if (external) { datosJSON[claseManejadora][panel]['external'][componente]['class'] = cssComp; } else { datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente]['class'] = cssComp; } } } } /** * f_removeClass: Elimina el css indicado de un campo * @access public * @var componente: Nombre del campo * @var external: [true / false] * @var css: estilo css que se ha de eliminar */ function f_removeClass(componente, external, css) { panel = this.panel; if (f_panelVisible(panel)) { claseManejadora = this.claseManejadora; iter = f_iterActual(panel); idComp = f_getIdComp(componente, iter, external); console.log('igepJS.js - f_removeClass() - iter: '+iter+' panel: '+panel+' componente: '+idComp); if (idComp != '') { $('#'+idComp).removeClass(css); cssComp = $('#'+idComp).attr('class'); if (external) { datosJSON[claseManejadora][panel]['external'][componente]['class'] = cssComp; } else { datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente]['class'] = cssComp; } } } } /** * f_setVisible: Mostrar/ocultar un campo * @access public * @var componente: Nombre del campo * @var external: [true / false] * @var visible: [true / false] */ function f_setVisible(componente, external, visible) { panel = this.panel; if (f_panelVisible(panel)) { claseManejadora = this.claseManejadora; iter = f_iterActual(panel); idComp = f_getIdComp(componente, iter, external); console.log('igepJS.js - f_setVisible() - iter: '+iter+' panel: '+panel+' componente: '+idComp+' visible: '+visible); if (idComp != '') { if (visible) { if (!$('#IGEPVisible'+idComp).is(':visible')) { $('#IGEPVisible'+idComp).show(); } } else { $('#IGEPVisible'+idComp).hide(); } if (external) { datosJSON[claseManejadora][panel]['external'][componente]['visible'] = visible; } else { datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente]['visible'] = visible; } } } } /** * f_getVisible: Obtener si un campo es visible o no * @access public * @var componente: Nombre del campo * @var external: [true / false] */ function f_getVisible(componente, external) { panel = this.panel; var visible = ''; if (f_panelVisible(panel)) { claseManejadora = this.claseManejadora; iter = f_iterActual(panel); idComp = f_getIdComp(componente, iter, external); console.log('igepJS.js - f_getVisible() - iter: '+iter+' panel: '+panel+' componente: '+idComp); var visible = ''; if (idComp != '') { if (external) { visible = datosJSON[claseManejadora][panel]['external'][componente]['visible']; } else { visible = datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente]['visible']; } } } return visible; } /** * f_setEnable: Mostrar/ocultar un campo * @access public * @var componente: Nombre del campo * @var external: [true / false] * @var enable: [true / false] */ function f_setEnable(componente, external, enable) { panel = this.panel; if (f_panelVisible(panel)) { claseManejadora = this.claseManejadora; iter = f_iterActual(panel); idComp = f_getIdComp(componente, iter, external); console.log('igepJS.js - f_setEnable() - iter: '+iter+' panel: '+panel+' componente: '+idComp+' enable: '+enable); if (idComp != '') { if (external) { tipoCampo = datosJSON[claseManejadora][panel]['external'][componente]['cwplugin']; } else { tipoCampo = datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente]['cwplugin']; } if ((tipoCampo == 'cwbotontooltip') || (tipoCampo == 'cwboton')) { this.setBtnDisabled(componente, external, enable); } else { this.setEditable(componente, external, enable); } } } } /** * f_getEnable: Obtener si un campo es visible o no * @access public * @var componente: Nombre del campo * @var external: [true / false] */ function f_getEnable(componente, external) { panel = this.panel; var enable = ''; if (f_panelVisible(panel)) { claseManejadora = this.claseManejadora; iter = f_iterActual(panel); idComp = f_getIdComp(componente, iter, external); console.log('igepJS.js - f_getEnable() - iter: '+iter+' panel: '+panel+' componente: '+idComp); if (idComp != '') { if (external) { tipoCampo = datosJSON[claseManejadora][panel]['external'][componente]['cwplugin']; } else { tipoCampo = datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente]['cwplugin']; } if ((tipoCampo == 'cwbotontooltip') || (tipoCampo == 'cwboton')) { enable = this.setBtnDisabled(componente, external, enable); } else { enable = this.setEditable(componente, external, enable); } } } return enable; } /** * f_setEditable: Activar un campo como editable * @access public * @var componente: Nombre del campo * @var external: [true / false] * @var editable: [true / false / nuevo] */ function f_setEditable(componente, external, editable) { panel = this.panel; if (f_panelVisible(panel)) { claseManejadora = this.claseManejadora; iter = f_iterActual(panel); idComp = f_getIdComp(componente, iter, external); console.log('igepJS.js - f_setEditable() - iter: '+iter+' panel: '+panel+' componente: '+idComp); if (idComp != '') { if (editable == true) { $('#'+idComp).removeAttr("readonly"); $('#'+idComp).addClass('edit'); $('#'+idComp).removeClass('noEdit'); } else if (editable == false) { $('#'+idComp).attr("readonly","readonly"); $('#'+idComp).removeClass('edit'); $('#'+idComp).addClass('noEdit'); } else { $('#'+idComp).attr("readonly","readonly"); $('#'+idComp).removeClass('edit'); $('#'+idComp).removeClass('noEdit'); $('#'+idComp).addClass('new'); } css = $('#'+idComp).attr('class'); if (external) { datosJSON[claseManejadora][panel]['external'][componente]['edit'] = editable; } else { datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente]['edit'] = editable; datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente]['state'] = editable; datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente]['class'] = css; } } } } /** * f_getEditable: Saber si un campo es editable o no * @access public * @var componente: Nombre del campo * @var external: [true / false] */ function f_getEditable(componente, external) { panel = this.panel; var editable = ''; if (f_panelVisible(panel)) { claseManejadora = this.claseManejadora; iter = f_iterActual(panel); idComp = f_getIdComp(componente, iter, external); if (idComp != '') { console.log('igepJS.js - f_getEditable() - iter: '+iter+' panel: '+panel+' componente: '+idComp); if (external) { editable = datosJSON[claseManejadora][panel]['external'][componente]['edit']; } else { editable = datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente]['edit']; } } } return editable; } /** * f_setBtnDisabled: Activar un campo como editable * @access public * @var componente: Nombre del campo * @var external: [true / false] * @var disabled: [true / false] */ function f_setBtnDisabled(componente, external, disabled) { panel = this.panel; if (f_panelVisible(panel)) { claseManejadora = this.claseManejadora; iter = f_iterActual(panel); idComp = f_getIdComp(componente, iter, external); console.log('igepJS.js - f_setBtnDisabled() - componente: '+componente+' iter: '+iter+' panel: '+panel+' componente: '+idComp); if (idComp != '') { if (disabled) { $('#'+idComp).attr("disabled","disabled"); } else { $('#'+idComp).removeAttr("disabled"); } if (external) { datosJSON[claseManejadora][panel]['external'][componente]['edit'] = disabled; datosJSON[claseManejadora][panel]['external'][componente]['state'] = disabled; } else { datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente]['edit'] = disabled; datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente]['state'] = disabled; } } } } /** * f_getBtnDisabled: Saber si un campo es editable o no * @access public * @var componente: Nombre del campo * @var external: [true / false] */ function f_getBtnDisabled(componente, external) { panel = this.panel; var editable = ''; if (f_panelVisible(panel)) { claseManejadora = this.claseManejadora; iter = f_iterActual(panel); idComp = f_getIdComp(componente, iter, external); console.log('igepJS.js - f_getBtnDisabled() - componente: '+componente+' iter: '+iter+' panel: '+panel+' componente: '+idComp); if (idComp != '') { if (external) { editable = datosJSON[claseManejadora][panel]['external'][componente]['edit']; } else { editable = datosJSON[claseManejadora][panel]['data'][iter]['gvhJS_fields'][componente]['edit']; } } } return editable; }