Koha/koha-tmpl/intranet-tmpl/prog/js/elasticsearch-mappings.js
Fridolin Somers f470bee2e5 Bug 26970: Add row highlight on drag in Elasticsearch mapping template
In Elasticsearch mapping tables :
In order to better see which row is currently in drag-an-drop,
add an highlight color like in circulation and fine rules when editing a row.

Test plan :
1) Go to Administration > Search engine configuration (Elasticsearch)
2) In each table : biblio, authorities, facets
3) Clik on a row to start a drag => See row turning orange
4) Release to drop => See row turning back to original color

https://bugs.koha-community.org/show_bug.cgi?id=26970
Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-04-07 16:08:04 +02:00

85 lines
2.7 KiB
JavaScript

/* 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",
});
});