$(function () {
//Agregamos los criterios de categorizacion
$('#tablaCriteriosCategorizacion tbody').sortable({
stop: rellenarOrden
});
console.log(criteriosSeleccionados);
for(var i in criteriosSeleccionados) {
agregarFilaCriterioCategorizacion(criteriosSeleccionados[i]['caracteristicaSeleccionada'], criteriosSeleccionados[i]['valorCaracteristicaSeleccionado'], criteriosSeleccionados[i]['tipoSeleccionado']);
}
$('button[name="agregarCriterio"]').click(function() {
agregarFilaCriterioCategorizacion();
});
});
/**
* Pone valor al input de orden.
*/
function rellenarOrden() {
var orden = 0;
$('#tablaCriteriosCategorizacion input[name*="orden"]').each(function() {
$(this).val(orden);
orden++;
});
}
/**
* Agrega una fila de categorizacion en la tabla.
* @param {int} caracteristicaSeleccionada
* @param {int} valorCaracteristicaSeleccionado
* @param {int} tipoSeleccionado
*/
function agregarFilaCriterioCategorizacion(caracteristicaSeleccionada, valorCaracteristicaSeleccionado, tipoSeleccionado) {
var indice = -1;
$('#tablaCriteriosCategorizacion').find('td:first-child').children('select[name^="categorizacion"]').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 += '| ' + generarSelectCategorizacion('caracteristicaSeleccionada', indice, caracteristicasFormateadas, caracteristicaSeleccionada) + ' | ';
html += '' + generarSelectCategorizacion('valorCaracteristicaSeleccionado', indice, (typeof valoresCaracteristicaFormateados[caracteristicaSeleccionada] !== 'undefined' ? valoresCaracteristicaFormateados[caracteristicaSeleccionada] : { 0: '- Seleccione uno -' }), valorCaracteristicaSeleccionado) + ' | ';
html += '' + generarSelectCategorizacion('tipoSeleccionado', indice, tiposFormateados, tipoSeleccionado) + ' | ';
html += ' | ';
html += '
';
var fila = $(html);
//Eliminar fila
fila.find('input[name="eliminarFilaCriterioCategorizacion"]').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(generarSelectCategorizacion('valorCaracteristicaSeleccionado', indiceTemp, (typeof valoresCaracteristicaFormateados[$(this).val()] !== 'undefined' ? valoresCaracteristicaFormateados[$(this).val()] : { 0: '- Seleccione uno -' })));
});
$('#tablaCriteriosCategorizacion tbody').append(fila);
rellenarOrden();
}
/**
* Devuelve un select generado con los datos.
* @param {String} nombre
* @param {int} indice
* @param {Object} datos
* @param {String} seleccionado
* @returns {String}
*/
function generarSelectCategorizacion(nombre, indice, datos, seleccionado) {
var html = '';
return html;
}