diff --git a/app/components/commander/index.js b/app/components/commander/index.js index d0849d9857a86be309fb7f358fb9345daf9dc89f..a9a4fb21814fa7cd3ae90594fc11f5ddcfdd3e1e 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 53ebfca670e57b3df9bf8d62295a075c6f54a9ff..67b77408e3ec68404414b35884eaf81b14ef96c2 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 c3e6f26436914e15bcced8c7a7d3bd8326ed8301..102ae6faeb03b99654b225dc94ad0a21cefdc75f 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 1bb683e01b8c5ec5df332638eea13d135331ecc5..8f94cafff4dea77699427f0413dc8e08616c652a 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') }