diff --git a/modules/backend/behaviors/importexportcontroller/assets/js/october.import.js b/modules/backend/behaviors/importexportcontroller/assets/js/october.import.js index ad3440099..69b2afac9 100644 --- a/modules/backend/behaviors/importexportcontroller/assets/js/october.import.js +++ b/modules/backend/behaviors/importexportcontroller/assets/js/october.import.js @@ -27,9 +27,49 @@ $('#importDbColumns > ul, .import-column-bindings > ul').sortable(sortableOptions) } - this.onDropColumn = function ($item, container, _super, event) { + this.onDropColumn = function ($dbItem, container, _super, event) { + var + dbColumnName = $dbItem.data('column-name'), + $dbItemMatchInput = $('[data-column-match-input]' , $dbItem), + $fileColumns = $('#importFileColumns'), + $fileItem, + isMatch = $.contains($fileColumns.get(0), $dbItem.get(0)), + matchColumnId - _super($item, container) + /* + * Has a previous match? + */ + matchColumnId = $dbItem.data('column-matched-id') + if (matchColumnId !== null) { + $fileItem = $('[data-column-id='+matchColumnId+']', $fileColumns) + this.toggleMatchState($fileItem) + } + + /* + * Is a new match? + */ + if (isMatch) { + $fileItem = $dbItem.closest('[data-column-id]'), + matchColumnId = $fileItem.data('column-id') + + this.toggleMatchState($fileItem) + + $dbItem.data('column-matched-id', matchColumnId) + $dbItemMatchInput.attr('name', 'column_match['+matchColumnId+'][]') + $dbItemMatchInput.attr('value', dbColumnName) + } + else { + $dbItem.removeData('column-matched-id') + $dbItemMatchInput.attr('name', ''); + $dbItemMatchInput.attr('value', ''); + } + + _super($dbItem, container) + } + + this.toggleMatchState = function ($container) { + var hasItems = !!$('.import-column-bindings li', $container).length + $container.toggleClass('column-matched', hasItems) } this.ignoreFileColumn = function(el) { diff --git a/modules/backend/behaviors/importexportcontroller/partials/_import_db_columns.htm b/modules/backend/behaviors/importexportcontroller/partials/_import_db_columns.htm index 4fd3e41cc..742c29da5 100644 --- a/modules/backend/behaviors/importexportcontroller/partials/_import_db_columns.htm +++ b/modules/backend/behaviors/importexportcontroller/partials/_import_db_columns.htm @@ -6,7 +6,7 @@ - +