From a97a22b359d89d2a6aef1bde2305462edf07e120 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Thu, 7 Mar 2024 13:06:11 +0100 Subject: [PATCH] Add auto-detected fields with drag and drop handler Closes #13082 (grafted from c52d2403d6690ac2b83c6cd381b7760cbf40fe58) --HG-- branch : 6.0 --- sao/src/window.js | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/sao/src/window.js b/sao/src/window.js index 4a4fe83f59..4797c3076a 100644 --- a/sao/src/window.js +++ b/sao/src/window.js @@ -1253,18 +1253,21 @@ }, sig_sel_add: function(el_field) { el_field = jQuery(el_field); - var field = el_field.attr('field'); - var node = jQuery('
  • ', { + this._add_node(el_field.attr('field'), el_field.attr('name')); + }, + _add_node: function(field, name) { + jQuery('
  • ', { 'field': field, 'class': 'draggable-handle', - }).text(el_field.attr('name')).prepend( + }).text(name).prepend( Sao.common.ICONFACTORY.get_icon_img('tryton-drag') - ).click(function(e) { - if (e.ctrlKey || e.metaKey) { + ).click(function(evt) { + const node = jQuery(evt.target); + if (evt.ctrlKey || evt.metaKey) { node.toggleClass('bg-primary'); } else { - jQuery(e.target).addClass('bg-primary') - .siblings().removeClass('bg-primary'); + node.addClass('bg-primary'); + node.siblings().removeClass('bg-primary'); } }).appendTo(this.fields_selected); }, @@ -1405,12 +1408,8 @@ Sao.i18n.gettext('Error')); return; } - var node = jQuery('
  • ', { - 'field': field - }).text(name).click(function(){ - node.addClass('bg-primary') - .siblings().removeClass('bg-primary'); - }).appendTo(this.fields_selected); + this._add_node(field, name); + return true; }, _traverse: function(fields, prefix, parents, i) { var field, item;