/* * isEmptyJSON() * FUNCIÓN: Indicará si un objeto JSON es vacío o no */ $.fn.isEmptyJSON = function(obj) { for(var i in obj) { return false; } return true; } /* * createTree() * FUNCIÓN: Crea un árbol jquery con el plugin jstree * PARAMS: idTree - del BOTÓN para el que se van a activar los campos * node - */ gvh.createTree = function(objElemento) { var claseM = objElemento.closest('[data-gvhClaseManejadora]').attr('data-gvhClaseManejadora'); var panel = objElemento.attr( 'data-gvhPanelOn' ); var panelJSON = panel.substr(0,3); var objPanel = $('#P_'+panel+'[data-gvhClaseManejadora='+claseM+']'); var raizJSON = gvh.getRoot(claseM,panelJSON); var nReg = gvh.getRegSelected(raizJSON); var id = objElemento.attr( 'id' ); var idJSON = id.split('___')[1]; var idJSONLevel = "level_"+idJSON; var idLevel = gvh.getIdField(raizJSON,idJSONLevel,nReg); var objLevel = $('#'+idLevel); var tipoSeleccion = 1; var checkbox = false; if (objElemento.attr('data-gvhModoSeleccion')) { var modoSeleccion = objElemento.attr('data-gvhModoSeleccion').split(","); tipoSeleccion = modoSeleccion[0]; checkbox = modoSeleccion[1]; } gvh.showConsoleMsg('log','** createTree() '+ id+' clase manejadora: '+ claseM); gvh.showConsoleMsg('log',objElemento); var cwplugin = objElemento.attr( 'data-gvhCWSource' ); var actualizaA = ''; if (objElemento.attr( 'data-gvhActualizaA')) { actualizaA = objElemento.attr( 'data-gvhActualizaA' ); var idActualizaA = gvh.getIdField(raizJSON,actualizaA,nReg); var objActualiza = $('#'+idActualizaA); } var formulario = objElemento.closest('form'); var idForm = formulario.attr('id'); // Obtenemos el estado del panel (=lectura/escritura/inserción/...) var estado = ''; $( 'div[id^=P_][data-gvhWindow='+gvh.ambito+']' ).map( function() { var estadoPanel = $(this).attr( 'data-gvhEstadoPanel' ); if ( (estadoPanel != 'R') || (estado == undefined) ) { estado = estadoPanel; } }); // Mostramos el progreso Pace.restart(); document.body.className = document.body.className; // Forzamos a actualizar la interfaz // Mostramos el cargando gvh.loading('on', 'cargando el árbol'); var url = 'phrame.php?action=gvhJSRefreshUI&gvhpanel='+panelJSON+'&claseManejadora='+claseM+'&gvHclass='+claseM+'&gvHfname='+idForm+'&gvHfrom='+id+'&gvHtarget='+actualizaA+'&gvHpanelState='+estado; /*if (objElemento.attr('data-gvhDestino')) { url = objElemento.attr('data-gvhDestino'); }*/ var datos = raizJSON['dataPerform']; // Enviamos solamente los datos del panel correspondiente gvh.showConsoleMsg('log',' - Llamada a phrame: '+url); gvh.showConsoleMsg('log',gvh.datosJSON); gvh.showConsoleMsg('log','árbol:'); gvh.showConsoleMsg('log',objElemento); Pace.track(function(){ var glyph_opts = { preset: "bootstrap3", map: { }, preset: "awesome4", map: { // Override distinct default icons here folder: "fa-folder", folderOpen: "fa-folder-open" } }; var prefijo = panel+'_'+id; objElemento.fancytree({ extensions: ["dnd5", "edit", "glyph", "wide"], checkbox: checkbox, // activar checkbox cada opción keyboard: true, // teclado generateIds: true, // Generate id attributes like idPrefix: id+"-", //idTree+"-", //autoScroll: true, // scroll en la capa que contiene el árbol ??? selectMode: tipoSeleccion, // 1-selección única / 2-selección múltiple (por defecto) / 3-selección jerárquica dnd5: { // drag&drop de los nodos dragStart: function(node, data) { return true; }, dragEnter: function(node, data) { return true; }, dragDrop: function(node, data) { data.otherNode.moveTo(node, data.hitMode); } }, glyph: glyph_opts, source: $.ajax({ data: datos, url: url, type: "POST", dataType: "json", beforeSend: function() { gvh.showConsoleMsg('beginGroup',' ... Beforesend root ...'); gvh.showConsoleMsg('log',url); gvh.showConsoleMsg('log',datos); gvh.showConsoleMsg('endGroup'); }, success: function(rsp) { gvh.showConsoleMsg('beginGroup',' ... Success root ...'); gvh.showConsoleMsg('log',rsp); gvh.showConsoleMsg('endGroup'); }, error: function ( jqXHR, textStatus, errorThrown ) { gvh.showConsoleMsg('error','fancytree -> ERROR: '+textStatus+' - status: '+jqXHR.status+' | '+errorThrown); } }), create: function(event, data) { gvh.showConsoleMsg('beginGroup',' ... Create tree ...'); gvh.showConsoleMsg('log',event); gvh.showConsoleMsg('log',data); gvh.showConsoleMsg('endGroup'); }, init: function(event, data, flag) { gvh.showConsoleMsg('beginGroup',' ... Init tree ...'); gvh.showConsoleMsg('log',event); gvh.showConsoleMsg('log',data); gvh.showConsoleMsg('log',flag); gvh.showConsoleMsg('endGroup'); }, focusTree: function(event, data) { gvh.showConsoleMsg('beginGroup',' ... Focus tree ...'); gvh.showConsoleMsg('log',event); gvh.showConsoleMsg('log',data); gvh.showConsoleMsg('endGroup'); }, restore: function(event, data) { gvh.showConsoleMsg('beginGroup',' ... Restore tree ...'); gvh.showConsoleMsg('log',event); gvh.showConsoleMsg('log',data); gvh.showConsoleMsg('endGroup'); }, //toggleEffect: { effect: "drop", options: {direction: "left"}, duration: 100 }, wide: { iconWidth: "1em", // Adjust this if @fancy-icon-width != "16px" iconSpacing: "0.5em", // Adjust this if @fancy-icon-spacing != "3px" labelSpacing: "0.1em", // Adjust this if padding between icon and label != "3px" levelOfs: "2.5em" // Adjust this if ul padding != "16px" }, icon: function(event, data){ if( data.node.isFolder() ) { return "glyphicon glyphicon-book"; } }, select: function(event, data) { // seleccionado por el checkbox var node = data.node; gvh.showConsoleMsg('log',' --> SELECT: '+node.key); /*var list = {key:node.key, value:node.title}; gvh.setValue( raizJSON, idJSON, nReg, list ); gvh.changeField(objElemento);*/ if (checkbox) { var list = {key:node.key, value:node.title}; gvh.changeField(objElemento,list); //gvh.setValue( raizJSON, idJSON, nReg, list ); } else { gvh.changeField(objElemento,node.key); //gvh.setValue(raizJSON,idJSON,nReg,node.key); } //gvh.changeField(objLevel,node.data.level); gvh.setValue(raizJSON,idJSONLevel,nReg,node.data.level); if ( node.data.actualizaA ) { gvh.fnNodeActivate(id, data, raizJSON, nReg, node.data.actualizaA); //'phrame.php?action=gvhJSRefreshUI&gvhpanel='+panelJSON+'&claseManejadora='+claseM+'&gvHclass='+claseM+'&gvHfname='+idForm+'&gvHfrom='+id+'&gvHvalue='+value+'&gvHtarget='+actualizaA+'&gvHpanelState='+estadoPanel; //gvh.evtUpdate(objElemento, node.data.actualizaA, data.node.key); } }, activate: function(event, data) { var node = data.node; gvh.showConsoleMsg('log',' --> ACTIVATE: '+node.key); gvh.showConsoleMsg('log',' --> FIN ACTIVATE: '+node.key); }, deactivate: function(event, data) { var node = data.node; gvh.showConsoleMsg('log',' --> DEACTIVATE: '+node.key); }, focus: function(event, data) { }, collapse: function(event, data){ data.node.resetLazy(); }, lazyLoad: function(event, data) { gvh.showConsoleMsg('beginGroup',' ... Lazy load ...'); var node = data.node; gvh.showConsoleMsg('log',node); //gvh.setValue(raizJSON,idJSON,nReg,node.key); gvh.setValue(raizJSON,idJSONLevel,nReg,node.data.level); if ( node.data.actualizaA ) { gvh.fnNodeActivate(id, data, raizJSON, nReg, node.data.actualizaA); } /*idActualizaA = gvh.getIdField(raizJSON,node.data.actualizaA,nReg); objActualiza = $('#'+idActualizaA); objActualiza.val(node.key); gvh.setValue(raizJSON,node.data.actualizaA,nReg,node.key); gvh.changeField(objActualiza);*/ gvh.showConsoleMsg('log',url + '&gvHvalue=' + node.key); data.result = $.ajax({ url: url + '&gvHvalue=' + node.key, data: datos, type: "POST", dataType: "json", cache: false, beforeSend: function() { gvh.showConsoleMsg('log',' - Llamada UI: '+url+'&gvHvalue='+node.key); gvh.showConsoleMsg('log',' ... Beforesend child '+node.key+' '+node.title+'...'); }, success: function(rsp) { gvh.showConsoleMsg('log',' ... Success child '+node.key+' '+node.title+'...'); gvh.showConsoleMsg('log',rsp); }, error: function ( jqXHR, textStatus, errorThrown ) { gvh.showConsoleMsg('error','fancytree - lazyLoad -> ERROR: '+textStatus+' - status: '+jqXHR.status+' | '+errorThrown); } }); gvh.showConsoleMsg('log',data.result); gvh.showConsoleMsg('endGroup'); }, postProcess: function(event, data) { gvh.showConsoleMsg('beginGroup',' ... postProcess tree ...'); gvh.showConsoleMsg('log',data); gvh.showConsoleMsg('log',data.result); gvh.showConsoleMsg('endGroup'); }, loadChildren: function(event, data) { gvh.showConsoleMsg('beginGroup',' ... loadChildren tree ...'); gvh.showConsoleMsg('log',data); gvh.showConsoleMsg('log',data.result); gvh.showConsoleMsg('endGroup'); }, loadError: function(event, data) { gvh.showConsoleMsg('beginGroup',' ... loadError tree ...'); gvh.showConsoleMsg('log',data); gvh.showConsoleMsg('log',data.result); gvh.showConsoleMsg('endGroup'); }, }); }); }