/* * Codificación UTF-8 * Métodos para tratar la interfaz directamente desde la tpl FUNCIONES: getValue(componente, external=false) setValue(componente, valor, external=false ) getClass(componente, external=false ) addClass(componente, css, external=false ) removeClass(componente, css, external=false ) setVisible(componente, visible, external=false ) getVisible(componente, external=false ) setEnable(componente, enable, external=false ) getEnable(componente, external=false ) * */ function IgepJS(claseManejadora,panel) { this.claseManejadora = claseManejadora; this.panel = panel; gvh.showConsoleMsg('log',' *** gvh_IgepJS.js - Inicializar => claseManejadora: '+claseManejadora+' 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 * @let panel: id del panel a consultar */ function f_panelVisible(panel) { gvh.showConsoleMsg('log',' *** gvh_IgepJS.js - f_panelVisible() P_'+panel); if (panel != undefined) { if ($('#P_'+panel).is(':visible')) { return true; } else { return false; } } else { return false; } } /** * f_getValue: Obtiene el valor del campo * @access public * @let componente: Nombre del campo * @let external: [true / false] */ function f_getValue(componente, external=false ) { gvh.showConsoleMsg('log',' *** gvh_IgepJS.js - f_getValue() '+componente); let panel = this.panel; if (f_panelVisible(panel)) { let panelJSON = panel.substr(0,3); let claseManejadora = this.claseManejadora; let raizJSON = gvh.getRoot(claseManejadora,panelJSON); let objPanel = $('#P_'+panel+'[data-gvhClaseManejadora='+claseManejadora+']'); let modoPanel = gvh.getStatePanel(objPanel); let regJSON = 0; if (modoPanel == 'I') { switch( panelJSON ) { case 'lis': let row = idCampo.split('___')[2].split('_')[1]; regJSON = gvh.indexDataJSON( raizJSON, row, modoPanel ); break; case 'edi': regJSON = gvh.getPagIns(raizJSON); break; default: regJSON = 0; break; } } else { switch( panelJSON ) { case 'fil': regJSON = 0; break; case 'lis': let row = idCampo.split('___')[2].split('_')[1]; regJSON = gvh.indexDataJSON( raizJSON, row ); break; case 'edi': let pagActual = gvh.getPagActive(raizJSON); regJSON = pagActual; break; default: regJSON = 0; break; } } if (external) { regJSON = gvh.indexDataJSON(raizJSON,gvh.getPagActive(raizJSON)); } let valor = gvh.getValue(raizJSON,componente,regJSON,external); gvh.showConsoleMsg('log',' *** gvh_IgepJS.js - f_getValue() '+componente+' valor: '+valor); return valor; } else { gvh.showConsoleMsg('log',' *** gvh_IgepJS.js - f_getValue() panel '+panel+' no visible'); } } /** * f_setValue: Asigna valor a un campo * @access public * @let componente: Nombre del campo * @let valor: Valor a asignar al componente * @let external: [true / false] */ function f_setValue(componente, valor, external=false) { let panel = this.panel; if (f_panelVisible(panel)) { let panelJSON = panel.substr(0,3); let claseManejadora = this.claseManejadora; let raizJSON = gvh.getRoot(claseManejadora,panelJSON); let iter = 0; if (external) { iter = gvh.indexDataJSON(raizJSON,gvh.getPagActive(raizJSON)); } gvh.setValue(raizJSON,componente,iter,valor,external); let plugin = gvh.getPlugin(raizJSON,componente,iter,external); switch(plugin) { case 'cwcampotexto': var inputField = $('input[id*='+componente+']').filter('[data-gvhClaseManejadora='+claseManejadora+']'); inputField.val(valor); inputField.attr('value',valor); inputField.attr('title',valor); break; case 'cwrichareatexto': var inputField = $('textarea[id*='+componente+']').filter('[data-gvhClaseManejadora='+claseManejadora+']'); $('#editor_'+idCampo).html(valor); inputField.val(valor); break; case 'cwareatexto': var inputField = $('textarea[id*='+componente+']').filter('[data-gvhClaseManejadora='+claseManejadora+']'); inputField.val(valor); break; case 'cwlista': case 'cwlista_select2': var inputField = $('select[id*='+componente+']').filter('[data-gvhClaseManejadora='+claseManejadora+']'); var dependencia = gvh.isDependenceList(raizJSON,componente,iter); if ((dependencia != undefined) && (dependencia != 'NO')) // es una lista dependiente { var listOptions = jsonReg[componente]['lista']; if (listOptions.length > 0) { if (plugin == 'cwlista') gvh.addList(inputField, listOptions, valor); else gvh.addListSelect2(inputField, listOptions, valor); } } else { var jsonListaField = gvh.getFieldList(raizJSON,componente,false,iter); var idCampo = inputField.attr('id'); $('#'+idCampo+' option:selected').attr('selected',false); $('#'+idCampo+' option[value="'+valor+'"]').prop("selected", true); $('#'+idCampo+' option[value="'+valor+'"]').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[componente]['lista']; } else { // Si la lista no es dependiente, las opciones están en la zona común listOptions = jsonListaField[componente]; } if ((listOptions != '') && (listOptions.length > 0)) { if (plugin == 'cwlista') gvh.addList(inputField, listOptions, valor); else gvh.addListSelect2(inputField, listOptions, valor); } } else { var dependencia = jsonReg[componente]['dependence']; if ((dependencia != undefined) && (dependencia != 'NO')) { //Hay dependencia listOptions = jsonReg[field]['lista']; if (listOptions.length > 0) { if (plugin == 'cwlista') gvh.addList(inputField, listOptions, valor); else gvh.addListSelect2(inputField, listOptions, valor); } } else { $('#'+idCampo+' option[value="'+valor+'"]').prop("selected", true); } } } break; case 'cwbotontooltip': break; case 'cwcheckbox': var inputField = $('input[id*='+componente+']').filter('[data-gvhClaseManejadora='+claseManejadora+']'); var valor = jsonReg[field]['checked']; if ((valor == 'undefined') || (valor == 'false')) { inputField.prop('checked',false); } else { inputField.prop('checked',true); } break; case 'cwimagen': break; case 'cwinformation': // Botón tooltip con información var button = $('button[id*='+componente+']').filter('[data-gvhClaseManejadora='+claseManejadora+']'); button.attr('data-content', valor); 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[componente]['icon']; if (iconJSON == 'undefined') iconJSON = ''; var idIconButton = 'iconInf_cam___'+componente+'___'+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(valor); break; case 'cwlabel': var inputField = $('label[id*='+idCampo+']').filter('[data-gvhClaseManejadora='+claseManejadora+']'); if (inputField.length > 0) { inputField.html(valor); inputField.attr('value',valor); } break; case 'cwlistaradio': // RADIOBUTTON var radio = $('input:radio[name*='+componente+']').filter('[data-gvhClaseManejadora='+claseManejadora+']'); radio.filter('[value='+valor+']').prop('checked',true); break; default: break; } gvh.showConsoleMsg('log',' *** gvh_IgepJS.js - f_setValue() '+componente+' valor: '+valor); } } /** * f_getClass: Obtiene el class del campo indicado * @access public * @let componente: Nombre del campo * @let external: [true / false] */ function f_getClass(componente, external=false) { let panel = this.panel; if (f_panelVisible(panel)) { let panelJSON = panel.substr(0,3); let claseManejadora = this.claseManejadora; let raizJSON = gvh.getRoot(claseManejadora,panelJSON); let iter = 0; if (external) { iter = gvh.indexDataJSON(raizJSON,gvh.getPagActive(raizJSON)); } let css = gvh.getClassField(raizJSON,componente,iter,external) gvh.showConsoleMsg('log',' *** gvh_IgepJS.js - f_getClass() '+css); return css; } } /** * f_addClass: Modifica el class de un campo * @access public * @let componente: Nombre del campo * @let css: estilo css a añadir * @let external: [true / false] */ function f_addClass(componente, css, external=false) { gvh.showConsoleMsg('log',' *** gvh_IgepJS.js - f_addClass() '+css); let panel = this.panel; if (f_panelVisible(panel)) { let panelJSON = panel.substr(0,3); let claseManejadora = this.claseManejadora; let raizJSON = gvh.getRoot(claseManejadora,panelJSON); let iter = 0; if (external) { iter = gvh.indexDataJSON(raizJSON,gvh.getPagActive(raizJSON)); } let idComp = gvh.getIdField(raizJSON,componente,iter,external); if (idComp != '') { $('#'+idComp).addClass(css); let cssComp = $('#'+idComp).attr('class'); gvh.setClassField(raizJSON,componente,iter,cssComp,external); } } } /** * f_removeClass: Elimina el css indicado de un campo * @access public * @let componente: Nombre del campo * @let css: estilo css que se ha de eliminar * @let external: [true / false] */ function f_removeClass(componente, css, external = false) { gvh.showConsoleMsg('log',' *** gvh_IgepJS.js - f_removeClass() '+css); let panel = this.panel; if (f_panelVisible(panel)) { let panelJSON = panel.substr(0,3); let claseManejadora = this.claseManejadora; let raizJSON = gvh.getRoot(claseManejadora,panelJSON); let iter = 0; if (external) { iter = gvh.indexDataJSON(raizJSON,gvh.getPagActive(raizJSON)); } let idComp = gvh.getIdField(raizJSON,componente,iter,external); if (idComp != '') { $('#'+idComp).removeClass(css); cssComp = $('#'+idComp).attr('class'); gvh.setClassField(raizJSON,componente,iter,cssComp,external); } } } /** * f_setVisible: Mostrar/ocultar un campo * @access public * @let componente: Nombre del campo * @let visible: [true / false] * @let external: [true / false] */ function f_setVisible(componente, visible, external = false) { gvh.showConsoleMsg('log',' *** gvh_IgepJS.js - f_setVisible() '+visible); let panel = this.panel; if (f_panelVisible(panel)) { let panelJSON = panel.substr(0,3); let claseManejadora = this.claseManejadora; let raizJSON = gvh.getRoot(claseManejadora,panelJSON); let iter = 0; if (external) { iter = gvh.indexDataJSON(raizJSON,gvh.getPagActive(raizJSON)); } let idComp = gvh.getIdField(raizJSON,componente,iter,external); if (idComp != '') { if (visible) { if (!$('#IGEPVisible'+idComp).is(':visible')) { $('#IGEPVisible'+idComp).show(); } } else { $('#IGEPVisible'+idComp).hide(); } gvh.setVisibleField(raizJSON,componente,iter,visible,external); } } } /** * f_getVisible: Obtener si un campo es visible o no * @access public * @let componente: Nombre del campo * @let external: [true / false] */ function f_getVisible(componente, external = false) { gvh.showConsoleMsg('log',' *** gvh_IgepJS.js - f_getVisible() '+componente); let panel = this.panel; let visible = ''; if (f_panelVisible(panel)) { let panelJSON = panel.substr(0,3); let claseManejadora = this.claseManejadora; let raizJSON = gvh.getRoot(claseManejadora,panelJSON); let iter = 0; if (external) { iter = gvh.indexDataJSON(raizJSON,gvh.getPagActive(raizJSON)); } let idComp = gvh.getIdField(raizJSON,componente,iter,external); if (idComp != '') { visible = gvh.getVisibleField(raizJSON,componente,iter,external); } } return visible; } /** * f_setEnable: Mostrar/ocultar un campo * @access public * @let componente: Nombre del campo * @let enable: [true / false / nuevo] * @let external: [true / false] */ function f_setEnable(componente, enable, external = false) { gvh.showConsoleMsg('log',' *** gvh_IgepJS.js - f_setEnable() '+enable); let panel = this.panel; if (f_panelVisible(panel)) { let panelJSON = panel.substr(0,3); let claseManejadora = this.claseManejadora; let raizJSON = gvh.getRoot(claseManejadora,panelJSON); let iter = 0; if (external) { iter = gvh.indexDataJSON(raizJSON,gvh.getPagActive(raizJSON)); } let idComp = gvh.getIdField(raizJSON,componente,iter,external); if (idComp != '') { let plugin = gvh.getPlugin(raizJSON,componente,iter,external); if ((plugin == 'cwbotontooltip') || (plugin == 'cwboton')) { this.setBtnDisabled(componente, enable, external); } else { this.setEditable(componente, enable, external); } } } } /** * f_getEnable: Obtener si un campo es visible o no * @access public * @let componente: Nombre del campo * @let external: [true / false] */ function f_getEnable(componente, external = false) { gvh.showConsoleMsg('log',' *** gvh_IgepJS.js - f_getEnable() '+componente); let panel = this.panel; let enable = ''; if (f_panelVisible(panel)) { let panelJSON = panel.substr(0,3); let claseManejadora = this.claseManejadora; let raizJSON = gvh.getRoot(claseManejadora,panelJSON); let iter = 0; if (external) { iter = gvh.indexDataJSON(raizJSON,gvh.getPagActive(raizJSON)); } let idComp = gvh.getIdField(raizJSON,componente,iter,external); if (idComp != '') { let plugin = gvh.getPlugin(raizJSON,componente,iter,external); if ((plugin == 'cwbotontooltip') || (plugin == 'cwboton')) { enable = this.setBtnDisabled(componente, enable, external); } else { enable = this.setEditable(componente, enable, external); } } } return enable; } /** * f_setEditable: Actilet un campo como editable * @access public * @let componente: Nombre del campo * @let editable: [true / false / nuevo] * @let external: [true / false] */ function f_setEditable(componente, editable, external = false) { gvh.showConsoleMsg('log',' *** gvh_IgepJS.js - f_setEditable() '+componente); let panel = this.panel; if (f_panelVisible(panel)) { let panelJSON = panel.substr(0,3); let claseManejadora = this.claseManejadora; let raizJSON = gvh.getRoot(claseManejadora,panelJSON); let iter = 0; if (external) { iter = gvh.indexDataJSON(raizJSON,gvh.getPagActive(raizJSON)); } let idComp = gvh.getIdField(raizJSON,componente,iter,external); if (idComp != '') { if (editable == true) { $('#'+idComp).prop('readonly',false); $('#'+idComp).addClass('edit'); $('#'+idComp).removeClass('noEdit'); $('#'+idComp).prop('disabled',false); } else if (editable == false) { $('#'+idComp).prop('readonly',true); $('#'+idComp).removeClass('edit'); $('#'+idComp).addClass('noEdit'); $('#'+idComp).prop('disabled',true); } else { $('#'+idComp).prop('readonly',true); $('#'+idComp).removeClass('edit'); $('#'+idComp).removeClass('noEdit'); $('#'+idComp).addClass('new'); $('#'+idComp).prop('disabled',true); } css = $('#'+idComp).attr('class'); gvh.setStateField(raizJSON,componente,iter,editable,external); gvh.setClassField(raizJSON,componente,iter,css,external); } } } /** * f_getEditable: Saber si un campo es editable o no * @access public * @let componente: Nombre del campo * @let external: [true / false] */ function f_getEditable(componente, external = false) { gvh.showConsoleMsg('log',' *** gvh_IgepJS.js - f_getEditable() '+componente); let panel = this.panel; let editable = ''; if (f_panelVisible(panel)) { let panelJSON = panel.substr(0,3); let claseManejadora = this.claseManejadora; let raizJSON = gvh.getRoot(claseManejadora,panelJSON); let iter = 0; if (external) { iter = gvh.indexDataJSON(raizJSON,gvh.getPagActive(raizJSON)); } let idComp = gvh.getIdField(raizJSON,componente,iter,external); if (idComp != '') { let editable = gvh.getStateField(raizJSON,componente,iter,external); } } return editable; } /** * f_setBtnDisabled: Actilet un campo como editable * @access public * @let componente: Nombre del campo * @let disabled: [true / false] * @let external: [true / false] */ function f_setBtnDisabled(componente, disabled, external = false) { gvh.showConsoleMsg('log',' *** gvh_IgepJS.js - f_setBtnDisabled() '+componente); let panel = this.panel; if (f_panelVisible(panel)) { let panelJSON = panel.substr(0,3); let claseManejadora = this.claseManejadora; let raizJSON = gvh.getRoot(claseManejadora,panelJSON); let iter = 0; if (external) { iter = gvh.indexDataJSON(raizJSON,gvh.getPagActive(raizJSON)); } let idComp = gvh.getIdField(raizJSON,componente,iter,external); if (idComp != '') { $('#'+idComp).prop('disabled',disabled); gvh.setStateField(raizJSON,componente,iter,disabled,external); } } } /** * f_getBtnDisabled: Saber si un campo es editable o no * @access public * @let componente: Nombre del campo * @let external: [true / false] */ function f_getBtnDisabled(componente, external = false) { gvh.showConsoleMsg('log',' *** gvh_IgepJS.js - f_getBtnDisabled() '+componente); let panel = this.panel; let editable = ''; if (f_panelVisible(panel)) { let panelJSON = panel.substr(0,3); let claseManejadora = this.claseManejadora; let raizJSON = gvh.getRoot(claseManejadora,panelJSON); let iter = 0; if (external) { iter = gvh.indexDataJSON(raizJSON,gvh.getPagActive(raizJSON)); } let idComp = gvh.getIdField(raizJSON,componente,iter,external); if (idComp != '') { let disabled = gvh.getStateField(raizJSON,componente,iter,external); } } return disabled; }