From 8f7383e086a150352dfcfa3b19ab3be8f8f80ab5 Mon Sep 17 00:00:00 2001 From: Eugen Ciur <eugen@papermerge.com> Date: Sun, 27 Feb 2022 11:15:09 +0100 Subject: [PATCH] drag multiple items from source to target --- app/components/commander/index.js | 3 ++- app/components/document/index.hbs | 1 + app/components/folder/index.hbs | 1 + app/modifiers/draggable.js | 20 ++++++++++++++++---- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/app/components/commander/index.js b/app/components/commander/index.js index d0849d9..a9a4fb2 100644 --- a/app/components/commander/index.js +++ b/app/components/commander/index.js @@ -261,7 +261,7 @@ export default class CommanderComponent extends Component { // dropping items from another panel source_data = data['application/x.node']; nodes_move_data = { - 'nodes': [{ 'id': source_data.node.id }], + 'nodes': source_data.nodes, 'source_parent': { 'id': source_data.source_parent.id }, @@ -273,6 +273,7 @@ export default class CommanderComponent extends Component { console.log('Source same as target. Nothing to do.'); return; } + this.requests.nodesMove(nodes_move_data); if (nodes_move_data.source_parent.id == this.currentUser.user.inbox_folder.get('id')) { this.router.refresh(); diff --git a/app/components/document/index.hbs b/app/components/document/index.hbs index 53ebfca..67b7740 100644 --- a/app/components/document/index.hbs +++ b/app/components/document/index.hbs @@ -1,5 +1,6 @@ <div class="node document {{if this.is_selected "checked"}}" {{draggable @model + selectedNodes=@selectedNodes sourceParent=@sourceParen onDragendSuccess=@onDragendSuccess onDragendCancel=@onDragendCancel}}> diff --git a/app/components/folder/index.hbs b/app/components/folder/index.hbs index c3e6f26..102ae6f 100644 --- a/app/components/folder/index.hbs +++ b/app/components/folder/index.hbs @@ -1,6 +1,7 @@ <div class="node folder {{if this.is_selected "checked"}}" {{draggable @model + selectedNodes=@selectedNodes onDragendSuccess=@onDragendSuccess onDragendCancel=@onDragendCancel}}> <Input diff --git a/app/modifiers/draggable.js b/app/modifiers/draggable.js index 1bb683e..8f94caf 100644 --- a/app/modifiers/draggable.js +++ b/app/modifiers/draggable.js @@ -58,14 +58,26 @@ export default class DraggableModifier extends Modifier { @action onDragStart(event) { - let data; + let data, selected_nodes, nodes, source_nodes; this.model = this.args.positional[0]; + selected_nodes = this.args.named['selectedNodes']; + nodes = [{ + id: this.model.id + }]; + + if (selected_nodes && selected_nodes.length > 0) { + source_nodes = nodes.concat( + selected_nodes.map(item => { + return {'id': item.get('id')}; + }) + ); + } else { + source_nodes = nodes; + } data = { - node: { - id: this.model.id - }, + nodes: source_nodes, source_parent: { id: this.model.parent.get('id') } -- GitLab