diff --git a/web/pgadmin/static/js/backform.pgadmin.js b/web/pgadmin/static/js/backform.pgadmin.js index c8a3242..023b6f1 100644 --- a/web/pgadmin/static/js/backform.pgadmin.js +++ b/web/pgadmin/static/js/backform.pgadmin.js @@ -1781,8 +1781,29 @@ define([ first_empty: true, multiple: false, emptyOptions: false, + preserveSelectionOrder: false, }, }), + + events: function() { + // Inherit all default events of InputControl + return _.extend({}, Backform.SelectControl.prototype.events, { + 'select2:select': 'onSelect', + }); + }, + + onSelect: function (evt) { + var sel2Options = this.field.get('select2'); + if (sel2Options.multiple && sel2Options.preserveSelectionOrder) { + var element = evt.params.data.element; + var $element = $(element); + + $element.detach(); + $(this.$sel).append($element); + $(this.$sel).trigger('change'); + } + }, + formatter: Select2Formatter, template: _.template([ '', @@ -1836,6 +1857,7 @@ define([ first_empty: true, multiple: false, emptyOptions: false, + preserveSelectionOrder: false, }); // Evaluate the disabled, visible, and required option diff --git a/web/pgadmin/tools/import_export/static/js/import_export.js b/web/pgadmin/tools/import_export/static/js/import_export.js index 2080928..7b9ad37 100644 --- a/web/pgadmin/tools/import_export/static/js/import_export.js +++ b/web/pgadmin/tools/import_export/static/js/import_export.js @@ -174,6 +174,7 @@ Backform, commonUtils, supportedNodes allowClear: false, placeholder: gettext('Columns for importing...'), first_empty: false, + preserveSelectionOrder: true, }, visible: 'importing', helpMessage: gettext('An optional list of columns to be copied. If no column list is specified, all columns of the table will be copied.'), @@ -192,6 +193,7 @@ Backform, commonUtils, supportedNodes multiple: true, allowClear: true, placeholder: gettext('Colums for exporting...'), + preserveSelectionOrder: true, }, visible: 'exporting', transform: function(rows) {