2018-06-22 23:28:01 +00:00
|
|
|
$(document).on('turbolinks:load', function() {
|
2018-06-25 20:28:09 +00:00
|
|
|
// Permite agregar más filas a los campos nested? && array?
|
2018-06-22 23:28:01 +00:00
|
|
|
$('.add-group').click(function(e) {
|
|
|
|
e.preventDefault();
|
|
|
|
|
|
|
|
var _this = $(this);
|
2018-06-25 20:28:09 +00:00
|
|
|
// Sube hasta la raíz del grupo
|
2018-06-22 23:28:01 +00:00
|
|
|
var _groups = _this.parents('.field-groups');
|
2018-06-25 20:28:09 +00:00
|
|
|
// En este elemento se van a agregar los nuevos
|
2018-06-22 23:28:01 +00:00
|
|
|
var _extra = _groups.children('.extra-groups');
|
2018-06-25 20:28:09 +00:00
|
|
|
// El grupo a clonar es el primero, siempre con id 0
|
2018-06-22 23:28:01 +00:00
|
|
|
var _group_orig = _groups
|
|
|
|
.children('.field-group')
|
|
|
|
.first();
|
|
|
|
|
2018-06-25 20:28:09 +00:00
|
|
|
// Deshabilita select2
|
2018-06-22 23:28:01 +00:00
|
|
|
_group_orig.find('select.select2').select2('destroy');
|
2018-06-25 20:28:09 +00:00
|
|
|
// Luego clona el grupo agregándole la clase 'extra' para poder
|
|
|
|
// mostrar el botón de borrado y lo agrega al final del grupo extra
|
2018-06-22 23:28:01 +00:00
|
|
|
var _group = _group_orig
|
|
|
|
.clone()
|
2018-06-25 20:28:09 +00:00
|
|
|
.addClass('extra')
|
2018-06-22 23:28:01 +00:00
|
|
|
.appendTo(_extra);
|
|
|
|
|
2018-06-25 20:28:09 +00:00
|
|
|
// Encuentra todos los elementos con '[0]' en el nombre y les pone
|
|
|
|
// un ID generado a partir del tiempo Unix. De esta forma se crea
|
|
|
|
// un grupo que va a terminar en el mismo Hash de valores.
|
|
|
|
var _date = (new Date).getTime();
|
2018-06-22 23:28:01 +00:00
|
|
|
_group.find('[name*="[0]"]').each(function(i, input) {
|
|
|
|
var _input = $(input);
|
|
|
|
var _name = _input.attr('name');
|
2018-06-27 23:35:09 +00:00
|
|
|
_input.attr('name', _name.replace(/\[0\]/, '['+_date+']'));
|
2018-06-22 23:28:01 +00:00
|
|
|
_input.val('');
|
|
|
|
});
|
|
|
|
|
2018-06-25 20:28:09 +00:00
|
|
|
// Regenera el evento del botón de borrado
|
2018-06-22 23:28:01 +00:00
|
|
|
_group.find('.remove-group').click(function(e) {
|
|
|
|
e.preventDefault();
|
2018-06-25 20:28:09 +00:00
|
|
|
$(this).parents('.field-group').remove();
|
2018-06-22 23:28:01 +00:00
|
|
|
});
|
|
|
|
|
2018-06-25 20:28:09 +00:00
|
|
|
// Regenera los select2
|
2018-06-22 23:28:01 +00:00
|
|
|
var _select2 = _group.find('.select2');
|
|
|
|
var _select2_opts = { theme: 'bootstrap', width: '' }
|
|
|
|
_select2.select2(_select2_opts);
|
|
|
|
_group_orig.find('.select2').select2(_select2_opts);
|
|
|
|
});
|
2018-06-25 20:28:09 +00:00
|
|
|
|
|
|
|
// Este evento permite remover las filas que ya existen en un post
|
|
|
|
// editado
|
|
|
|
$('.remove-group').click(function(e) {
|
|
|
|
e.preventDefault();
|
|
|
|
$(this).parents('.field-group').remove();
|
|
|
|
});
|
2018-06-22 23:28:01 +00:00
|
|
|
});
|