/* global __ dataTablesDefaults */ function clean_line(line) { $(line).find('input[type="text"]').val(""); $(line).find('select').find('option:first').attr("selected", "selected"); } function clone_line(line) { var new_line = $(line).clone(); $(new_line).removeClass("nodrag nodrop"); $(new_line).find('td:last-child>a').removeClass("add").addClass("delete").html( __("Delete") ); $(new_line).find('[data-id]').each(function () { $(this).attr({ name: $(this).attr('data-id') }).removeAttr('data-id'); }); $(new_line).find("select").each(function () { var attr = $(this).attr('name'); var val = $(line).find('[data-id="' + attr + '"]').val(); $(this).find('option[value="' + val + '"]').attr("selected", "selected"); }); return new_line; } function tableInit( oldtabid, newtabid ) { if ( oldtabid ){ var oldTableId = $("#" + oldtabid + "_table"); oldTableId.DataTable().destroy(); } var newTableId = $("#" + newtabid + "_table"); newTableId.DataTable( $.extend(true, {}, dataTablesDefaults, { "columnDefs": [ { "orderable": false, "searchable": false, 'targets': ['NoSort'] }, ], "paging": false, "autoWidth": false })); } $(document).ready(function () { tableInit( "", "search_fields"); $("#tabs").tabs({ activate: function( event, ui ){ tableInit( ui.oldPanel.attr('id'), ui.newPanel.attr('id') ); }, }); $('.delete').click(function () { if ($(this).hasClass('mandatory') && $(".mandatory[data-field_name=" + $(this).attr('data-field_name') + "]").length < 2) { alert( __("This field is mandatory and must have at least one mapping") ); return; } else { $(this).parents('tr').remove(); } }); $("table.mappings").tableDnD({ onDragClass: "dragClass highlighted-row", }); $('.add').click(function () { var table = $(this).closest('table'); var index_name = $(table).attr('data-index_name'); var line = $(this).closest("tr"); var marc_field = $(line).find('input[data-id="mapping_marc_field"]').val(); if (marc_field.length > 0) { var new_line = clone_line(line); new_line.appendTo($('table[data-index_name="' + index_name + '"]>tbody')); $('.delete').click(function () { $(this).parents('tr').remove(); }); clean_line(line); $(table).tableDnD({ onDragClass: "dragClass highlighted-row", }); } }); $("#facet_biblios > table").tableDnD({ onDragClass: "dragClass highlighted-row", }); });