$(function () { $("#arbolCategorias").dynatree({ checkbox: true, selectMode: 2, debugLevel: 0, onDblClick: function (node, event) { //Marcar una opción al hacerle doble click node.toggleSelect(); }, onKeydown: function (node, event) { //Marcar la opción activa usando la barra espaciadora if (event.which == 32) { node.toggleSelect(); return false; } }, // The following options are only required, if we have more than one tree on one page: // initId: "treeData", cookieId: "dynatree-Cb3", idPrefix: "dynatree-Cb3-" }); //Expandir los nodos activos var arbol = $("#arbolCategorias").dynatree("getTree"); var marcados = arbol.getSelectedNodes(false); for (var i = 0, len = marcados.length; i < len; i++) { marcados[i].makeVisible(); } //Buscador $('input[name="buscador"]').keyup(function () { var texto = $(this).val(); var arbol = $("#arbolCategorias").dynatree("getTree"); arbol.getRoot().toDict(true, function (dict) { if (dict.title !== null) { var nodo = arbol.getNodeByKey(dict.key); if (texto !== '' && dict.title.toLowerCase().search(texto.toLowerCase()) >= 0) { //Lo marcamos nodo.makeVisible(); $(nodo.span).addClass('imax_marcado'); } else { //Lo desmarcamos $(nodo.span).removeClass('imax_marcado'); } } }); }); //Botón enviar $('button[name="opcionesConfiguracion"]').click(function () { //Así accedo a los ids de los check marcados var arbolCat = $("#arbolCategorias").dynatree("getTree"); var marcadosCat = arbolCat.getSelectedNodes(false); var catString = ""; for (var x in marcadosCat) { catString += marcadosCat[x].data.key + ","; } if (catString.length > 0) { catString = catString.substring(0, catString.length - 1); } $('[name="catList"]').val(catString); $(this).parent().submit(); }); }); //Agregamos los criterios de desactivacion $('#tablaCriteriosDesactivacion tbody').sortable({ stop: rellenarOrden }); for(var i in criteriosSeleccionados) { agregarFilaCriterioDesactivacion(criteriosSeleccionados[i]['caracteristicaSeleccionada'], criteriosSeleccionados[i]['valorCaracteristicaSeleccionado'], criteriosSeleccionados[i]['tipoSeleccionado']); } $('button[name="agregarCriterio"]').click(function() { agregarFilaCriterioDesactivacion(); }); /** * Pone valor al input de orden. */ function rellenarOrden() { var orden = 0; $('#tablaCriteriosDesactivacion input[name*="orden"]').each(function() { $(this).val(orden); orden++; }); } /** * Agrega una fila de desactivacion en la tabla. * @param {int} caracteristicaSeleccionada * @param {int} valorCaracteristicaSeleccionado * @param {int} tipoSeleccionado */ function agregarFilaCriterioDesactivacion(caracteristicaSeleccionada, valorCaracteristicaSeleccionado, tipoSeleccionado) { var indice = -1; $('#tablaCriteriosDesactivacion').find('td:first-child').children('select[name^="desactivacion"]').each(function() { var nombreTemp = $(this).attr('name').split('['); var indiceTemp = nombreTemp[1].substr(0, nombreTemp[1].length - 1); if(indiceTemp > indice) { indice = indiceTemp; } }); indice++; var html = ''; html += '' + generarSelectDesactivacion('caracteristicaSeleccionada', indice, caracteristicasFormateadas, caracteristicaSeleccionada) + ''; html += '' + generarSelectDesactivacion('valorCaracteristicaSeleccionado', indice, (typeof valoresCaracteristicaFormateados[caracteristicaSeleccionada] !== 'undefined' ? valoresCaracteristicaFormateados[caracteristicaSeleccionada] : { 0: '- Seleccione uno -' }), valorCaracteristicaSeleccionado) + ''; html += '' + generarSelectDesactivacion('tipoSeleccionado', indice, tiposFormateados, tipoSeleccionado) + ''; html += ' '; html += ''; var fila = $(html); //Eliminar fila fila.find('input[name="eliminarFilaCriterioDesactivacion"]').click(function() { $(this).parent().parent().remove(); }); //Modificar el select de valores fila.find('select[name*="caracteristicaSeleccionada"]').change(function() { var parent = fila.find('select[name*="valorCaracteristicaSeleccionado"]').parent(); var nombreTemp = $(this).attr('name').split('['); var indiceTemp = nombreTemp[1].substr(0, nombreTemp[1].length - 1); fila.find('select[name*="valorCaracteristicaSeleccionado"]').remove(); parent.append(generarSelectDesactivacion('valorCaracteristicaSeleccionado', indiceTemp, (typeof valoresCaracteristicaFormateados[$(this).val()] !== 'undefined' ? valoresCaracteristicaFormateados[$(this).val()] : { 0: '- Seleccione uno -' }))); }); $('#tablaCriteriosDesactivacion tbody').append(fila); rellenarOrden(); }