changeset c44c8f6bc280 in sao:default
details: https://hg.tryton.org/sao?cmd=changeset;node=c44c8f6bc280
description:
        Add drag and drop on CSV export and import

        issue8649
        review347131002
diffstat:

 CHANGELOG     |   1 +
 src/sao.less  |   3 +++
 src/window.js |  19 ++++++++++++++++---
 3 files changed, 20 insertions(+), 3 deletions(-)

diffs (84 lines):

diff -r 9118267a616e -r c44c8f6bc280 CHANGELOG
--- a/CHANGELOG Sun Feb 28 16:22:59 2021 +0100
+++ b/CHANGELOG Thu Mar 04 23:32:38 2021 +0100
@@ -1,3 +1,4 @@
+* Add drag and drop on CSV export and import
 * Remove tempusdominus dependency
 * Handle device cookie
 * Add breadcrumb as title of window form
diff -r 9118267a616e -r c44c8f6bc280 src/sao.less
--- a/src/sao.less      Sun Feb 28 16:22:59 2021 +0100
+++ b/src/sao.less      Thu Mar 04 23:32:38 2021 +0100
@@ -742,6 +742,9 @@
             overflow: auto;
             white-space: nowrap;
         }
+        li.dragged-row {
+            background-color: @state-info-bg;
+        }
     }
 }
 
diff -r 9118267a616e -r c44c8f6bc280 src/window.js
--- a/src/window.js     Sun Feb 28 16:22:59 2021 +0100
+++ b/src/window.js     Thu Mar 04 23:32:38 2021 +0100
@@ -1045,7 +1045,6 @@
                 'text': Sao.i18n.gettext('Fields Selected')
             })))).appendTo(row_fields);
 
-            // TODO: Make them draggable to re-order
             this.fields_selected = jQuery('<ul/>', {
                 'class': 'list-unstyled column-fields panel-body',
             }).css('cursor', 'pointer')
@@ -1234,13 +1233,20 @@
                 .append(this.el_csv_skip)
                 .appendTo(this.expander_csv);
             this.expander_csv.append(' ');
+            Sortable.create(this.fields_selected.get(0), {
+                handle: '.draggable-handle',
+                ghostClass: 'dragged-row'
+            });
         },
         sig_sel_add: function(el_field) {
             el_field = jQuery(el_field);
             var field = el_field.attr('field');
             var node = jQuery('<li/>', {
                 'field': field,
-            }).text(el_field.attr('name')).click(function(e) {
+                'class': 'draggable-handle',
+            }).text(el_field.attr('name')).prepend(
+                Sao.common.ICONFACTORY.get_icon_img('tryton-drag')
+            ).click(function(e) {
                 if (e.ctrlKey) {
                     node.toggleClass('bg-primary');
                 } else {
@@ -1588,6 +1594,10 @@
             this.expander_csv.append(' ');
 
             this.set_url();
+            Sortable.create(this.fields_selected.get(0), {
+                handle: '.draggable-handle',
+                ghostClass: 'dragged-row'
+            });
         },
         get context() {
             return this.screen.context;
@@ -1853,6 +1863,7 @@
             }
             var node = jQuery('<li/>', {
                 'path': name,
+                'class': 'draggable-handle',
             }).text(long_string).click(function(e) {
                 if(e.ctrlKey) {
                     node.toggleClass('bg-primary');
@@ -1860,7 +1871,9 @@
                     jQuery(e.target).addClass('bg-primary')
                         .siblings().removeClass('bg-primary');
                 }
-            }).appendTo(this.fields_selected);
+            }).prepend(
+                Sao.common.ICONFACTORY.get_icon_img('tryton-drag')
+            ).appendTo(this.fields_selected);
         },
         response: function(response_id) {
             if(response_id == 'RESPONSE_OK') {

Reply via email to