// JavaScript Document function preparar_elementos_jquery_ui(opciones) { $("input.jquery-ui-monthpicker").each(function(i,elemento) { var opciones = { Button: false, i18n: { year: 'Año', buttonText: 'Abrir el selector de mes', prevYear: "año anterior", nextYear: "año siguiente", next12Years: 'saltar 12 años', prev12Years: 'retroceder 12 años', nextLabel: "siguiente", prevLabel: "anterior", jumpYears: "saltar años", backTo: "volver a ", months: ['Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic'] }, OnAfterMenuClose: function() { if (($(this).val() != $(this).data("valor_al_abrir")) && $(this).hasClass("filtro_listado")) { $(this).trigger('change'); } }, OnBeforeMenuOpen: function() { $(this).data("valor_al_abrir",$(this).val()); }, }; var opciones_extra = descomponer_opciones_html($(this),"jquery-ui-monthpicker-opciones"); $.each(opciones_extra, function(i,valor){ switch (i) { default: opciones[i] = valor; } //console.log ("OPCION EXTRA MonthPicker: "); console.log(i + " --> " + valor); }); $(this).MonthPicker($.extend(true, opciones, descomponer_opciones_html($(this),'jquery-ui-multiselect') )); }); $("input.jquery-ui-spinner").each(function(i,elemento) { $(this).spinner($.extend(true, { numberFormat: "n2" } ,descomponer_opciones_html($(this),'jquery-ui-spinner-opciones'))); }); $("select.jquery-ui-selectmenu").each(function(i,elemento) { var opciones = { }; var id_elemento = $(this).attr("id"); var opciones_extra = descomponer_opciones_html($(this),"jquery-ui-selectmenu-opciones"); $.each(opciones_extra, function(i,valor){ switch (i) { case "change": var arr_valores = valor.split(" "); if (arr_valores.indexOf('actualizar_tablas') > -1) { opciones["change"] = function() { if (typeof actualizar_tablas === "function"){ actualizar_tablas(); } }; } break; } }); $(this).selectmenu($.extend(true, opciones, descomponer_opciones_html($(this),'jquery-ui-selectmenu') )); }); $("select.jquery-ui-multiselect").each(function(i,elemento) { var opciones = { selectedList: 5, minWidth:250, buttonWidth:'auto', filter: false, open: function() { //console.log("En open de multiselect, al prepararlo..."); console.log($(this).attr("id")); $(this).data("seleccionado_al_abrir",$(this).val()); }, }; var id_elemento = $(this).attr("id"); //console.log(id_elemento); var opciones_extra = descomponer_opciones_html($(this),"jquery-ui-multiselect-opciones"); $.each(opciones_extra, function(i,valor){ switch (i) { case "close": var arr_valores = valor.split(" "); if (arr_valores.indexOf('actualizar_tablas') > -1) { opciones["close"] = function() { //console.log ("Piev6, select.jquery-ui-multiselect evento Close -------- Entra en close de " + id_elemento); if (typeof actualizar_tablas === "function"){ if (JSON.stringify($(this).data("seleccionado_al_abrir"))!=JSON.stringify($(this).val())) { actualizar_tablas(); } } }; } break; case "filter": opciones['filter'] = $.inArray(valor,["true","1"]) > -1; break; case "header": switch (valor) { case "false": opciones['header'] = false; break; default: opciones['header'] = valor; } break; case "mensaje_sin_seleccion": opciones['noneSelectedText'] = valor; break; default: opciones[i] = valor; } //console.log ("OPCION EXTRA MULTISELECT: "); console.log(i + " --> " + valor); }); //console.log("EN MULTISELECT "+$(this).attr("id")+", OPCIONES........"); console.log (opciones); $(this).multiselect($.extend(true, opciones, descomponer_opciones_html($(this),'jquery-ui-multiselect') )); if (opciones.filter===true) { $(this).multiselect().multiselectfilter(); } }); } function preparar_autocompletes(opciones_especificas) { var opciones = { ambito: "", opciones_autocomplete: { source: "util.json.poblador_cmb.php?q=foooooo_autocomplete", minLength: 2, delay: 200, autoFocus:true, // _renderMenu: function(ul, items) { // var autocomplete_elementos_lista = $(this).attr("autocomplete_elementos_lista"); // var that = this; // $.each( items, function( index, item ) { // that._renderItemData( ul, item ); // }); // $( ul ).find( "li" ).odd().addClass( "odd" ); // console.log ("Pasa por autocomplete_elementos_lista: " + autocomplete_elementos_lista); // console.log ("En rendermenu..."); console.log(ul); console.log (items); // }, //appendTo:"body", } }; $.extend( true,opciones,opciones_especificas); $("input.campo_autocomplete",opciones.ambito).each(function(i) { var id_obj_autocomplete = $(this).attr("id"); var campo_autocomplete = $(this).attr("campo_autocomplete"); var campo_autocomplete_dependiente = $(this).attr("campo_autocomplete_dependiente"); var autocomplete_elementos_lista = $(this).attr("autocomplete_elementos_lista"); opciones.opciones_autocomplete.source = "util.json.poblador_cmb.php?q="+$(this).attr("campo_autocomplete"); // switch (campo_autocomplete) { // case "nhc_pacientes_nombreapellidos": // opciones.opciones_autocomplete.source = "util.json.poblador_cmb.php?q=nhc_pacientes_nombreapellidos"; // break; // }; if (typeof autocomplete_elementos_lista !== 'undefined' && autocomplete_elementos_lista !== false) { opciones.opciones_autocomplete._renderMenu = function(ul, items) { //console.log ("En rendermenu..."); console.log(ul); console.log (items); }; } $(this).autocomplete(opciones.opciones_autocomplete); // $(this).autocomplete("option","open", // function (event, ui) { // var lanzador = "#"+event.target.id; // var dialogo = $(lanzador).closest('div[role="dialog"'); // console.log ("Lanzador..."); console.log(lanzador); // console.log ("ID DIALOGO...#" + $(dialogo).attr("aria-describedby") + " ------------ en "+lanzador); // $(lanzador).autocomplete('option','position',{ // my: "left top", // at: "left bottom", // collision: "fit flip", // of: $("#" + $(dialogo).attr("aria-describedby")), // within: window // }); // // //$(lanzador).autocomplete("option","appendTo","#" + $(dialogo).attr("aria-describedby")); // // //$(this).autocomplete("option","appendTo","#"+ // //var id_dialogo = dialogo.attr("aria-describedby"); // //return ("#"+id_dialogo); //// var dialogo = $("#"+event.target.id).closest('div[role="dialog"'); //// var z_index_objeto = $("#"+id_obj_autocomplete).css('z-index'); // //console.log ("En autocomplete open para diálogo " + id_dialogo + " en objeto " + id_obj_autocomplete + " - " + event.target.id); //// console.log ("zIndex de objeto autocomplete ("+id_obj_autocomplete+")..." + $("#"+id_obj_autocomplete).css('z-index')); //// //console.log("OBJTEST................");console.log (obj_test); //// //console.log(dialogo); //// if (dialogo.attr("aria-describedby")!="undefined" && dialogo.attr("aria-describedby")!="") //// $('.ui-autocomplete-ui-front').css('z-index',$("#"+id_obj_autocomplete).css('z-index')+100); // } // ); //console.log ("Entra en campo_autocomplete_dependiente....." + campo_autocomplete_dependiente); if (typeof campo_autocomplete_dependiente !== 'undefined' && campo_autocomplete_dependiente !== false) { $("#"+id_obj_autocomplete).on("autocompletechange",function(event, ui) { //console.log ("VALOR ANTES.........." + $("#"+campo_autocomplete_dependiente).val()); //console.log ("Paciente cambiado..."); console.log(ui.item); var nuevo_elemento = ui.item; if (ui.item===null) { $("#"+campo_autocomplete_dependiente).val(""); $("#"+campo_autocomplete_dependiente).data('objeto_seleccionado',null); } else { $("#"+campo_autocomplete_dependiente).val(ui.item.id); $("#"+campo_autocomplete_dependiente).data('objeto_seleccionado',ui.item); } $("#"+campo_autocomplete_dependiente).change(); //console.log ("VALOR Después.........." + $("#"+campo_autocomplete_dependiente).val()); }) } //console.log ("En cargar AUTOCOMPLETES..." + campo_autocomplete ); }); }