/* * checkFieldsPag() * FUNCIÓN: Al cambiar valores de los campos al paginar * defaults: * * * */ $.fn.checkFieldsPag = function(options) { var defaults = $.extend({ fields: '', panelJSON: '', reg: 0, sufijo: '', claseManejadora: '' },options); //console.log('checkFieldsPag() reg: '+defaults.reg); var jsonReg = defaults.fields; //console.log(jsonReg); var sufijo = defaults.sufijo; var posReg = defaults.reg; var raizJSON = gvh.getRoot(defaults.claseManejadora,defaults.panelJSON); for (var field in jsonReg) { var css = jsonReg[field]['class']; var valueJSONDecode = jsonReg[field]['value']; if ((valueJSONDecode == 'undefined')) // || (valueJSONDecode == null) || (valueJSONDecode == 'null')) valueJSONDecode = ''; if (defaults.panel = 'lis') var patronIdCampo = 'cam___'+field+'___'+sufijo; else var patronIdCampo = 'cam___'+field+'___'+i; // SPAN que engloba el campo var idIgepVisible = 'IGEPVisible'+patronIdCampo; var IgepVisible = $('#'+idIgepVisible); if (IgepVisible.is(':hidden')) { IgepVisible.show(); } var plugin = jsonReg[field]['CWPlugin']; switch(plugin) { case 'cwcampotexto': case 'cwareatexto': var inputField = $('#'+patronIdCampo).filter('[data-gvhClaseManejadora='+defaults.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': var selectField = $('#'+patronIdCampo).filter('[data-gvhClaseManejadora='+defaults.claseManejadora+']'); var jsonListaField = gvh.getFieldList(raizJSON,field,false); var dependencia = gvh.getListDependence(raizJSON,field,posReg) if ((dependencia != undefined) && (dependencia != 'NO')) { var listOptions = jsonReg[field]['lista']; if (listOptions.length > 0) { selectField.addList({ gvhLista:listOptions, selectedValue:valueJSONDecode }); } } else { $('#'+patronIdCampo+' option[value="'+valueJSONDecode+'"]').prop("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 (defaults.panel == 'lis') { var listOptions = ''; if (selectField.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 = jsonLista[field]; } if ((listOptions != '') && (listOptions.length > 0)) { selectField.addList({ gvhLista:listOptions, selectedValue:valueJSONDecode }); } } else { var dependencia = jsonReg[field]['dependence']; if ((dependencia != undefined) && (dependencia != 'NO')) { //Hay dependencia listOptions = jsonReg[field]['lista']; if (listOptions.length > 0) { selectField.addList({ gvhLista:listOptions, selectedValue:valueJSONDecode }); } } else { $('#'+patronIdCampo+' option[value="'+valueJSONDecode+'"]').prop("selected", true); } } } var cssField = selectField.attr('class'); if (cssField != css) { selectField.removeClass(); selectField.addClass(css); } break; case 'cwbotontooltip': break; case 'cwcheckbox': var idCheckbox = 'cam___'+field+'___'+sufijo; var checkbox = $('#'+idCheckbox).filter('[data-gvhClaseManejadora='+defaults.claseManejadora+']'); var valueJSONDecode = jsonReg[field]['checked']; if ((valueJSONDecode == 'undefined') || (valueJSONDecode == 'false')) { checkbox.prop('checked',false); } else { checkbox.prop('checked',true); } var cssField = checkbox.attr('class'); if (cssField != css) { checkbox.removeClass(); checkbox.addClass(css); } break; case 'cwimagen': break; case 'cwinformation': // Botón tooltip con información var idButton = 'infImg_cam___'+field+'___'+sufijo; var button = $('#'+idButton).filter('[data-gvhClaseManejadora='+defaults.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='+defaults.claseManejadora+']'); iconButton.removeClass(); iconButton.addClass(iconJSON); break; case 'cwlabel icono': // Label que solamente es un icono var idIcono = 'icon_cam___'+field+'___'+sufijo; var icono = $('#'+idIcono).filter('[data-gvhClaseManejadora='+defaults.claseManejadora+']'); icono.removeClass(); icono.addClass(valueJSONDecode); break; case 'cwlabel': var labelField = $('#'+patronIdCampo).filter('[data-gvhClaseManejadora='+defaults.claseManejadora+']'); if (labelField.length > 0) { labelField.html(valueJSONDecode); cssField = labelField.attr('class'); if (cssField != css) { labelField.removeClass(); labelField.addClass(css); } } // El label puede ir acompañado de un icono var idIcono = 'icon_cam___'+field+'___'+sufijo; var icono = $('#'+idIcono).filter('[data-gvhClaseManejadora='+defaults.claseManejadora+']'); if (icono.length > 0) { try { iconJSONDecode = decodeURIComponent(escape(jsonReg[field]['icon'])); } catch(e) { iconJSONDecode = jsonReg[field]['icon']; } if (iconJSONDecode == 'undefined') iconJSONDecode = ''; icono.removeClass(); icono.addClass(iconJSONDecode); } break; case 'cwlistaradio': // RADIOBUTTON var radio = $('input:radio[name='+patronIdCampo+']').filter('[data-gvhClaseManejadora='+defaults.claseManejadora+']'); $('input:radio[name='+patronIdCampo+'][value='+valueJSONDecode+']').prop('checked',true); var cssField = radio.attr('class'); if (cssField != css) { radio.removeClass(); radio.addClass(css); } break; default: break; } } } /* * paginar() * FUNCIÓN: Al cambiar de página debemos volver a asignar los valores que vienen en el JSON a sus respectivos campos * defaults: pagSource * pagTarget * panel * claseManejadora */ $.fn.paginar = function(options) { var defaults = $.extend({ pagSource: '0', pagTarget: '0', panel: 'edi', panelJSON: '', claseManejadora: '' },options); console.log(' ** paginar() '+defaults.pagTarget); var raizJSON = gvh.getRoot(defaults.claseManejadora,defaults.panelJSON); gvh.setPagActive(raizJSON,defaults.pagTarget); var numReg = gvh.getNumReg(raizJSON); valueJSONDecode = ''; /* PANEL TABULAR */ if ((defaults.panel == 'lis') || (defaults.panel == 'lisDetalle')) { // Cálculo d filas, páginas y registro inicial/final var rowsPag = gvh.getRowsPag(raizJSON); var numPagTotal = Math.ceil(numReg/rowsPag); var regIni = 0; var regFin = parseInt(rowsPag)-1; if (defaults.pagTarget > 0) { regIni = defaults.pagTarget*(rowsPag); regFin = parseInt(regIni)+parseInt(rowsPag-1); } var i=0; // RECORRER EL INTERVALO CORRESPONDIENTE A regIni Y regFin DE datosJSON for(i=regIni;i<=regFin;i++) { var numFila = i%rowsPag; var sufijo = defaults.panel+'_'+numFila; if (i 0) { $.each(objSliders, function(i, slider) { slider.destroySlider(); }); objSliders.push( $('ul[id*=slider_]').filter('[data-gvhIterActual='+defaults.pag+']').bxSlider({ minSlides: 2, maxSlides: 3, slideWidth: 400, slideMargin: 10, caption: true, pager: true }) ); } */