From 74b068623ffc4c5bf89b4b3cb0b1dba16ffbd21c Mon Sep 17 00:00:00 2001 From: Eugen Ciur <eugen@papermerge.com> Date: Mon, 11 Apr 2022 07:26:27 +0200 Subject: [PATCH] works very well for three pages document/simple scenarios --- app/components/viewer/index.js | 40 +++++++++++++++-------- app/components/viewer/thumbnails/index.js | 6 +--- 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/app/components/viewer/index.js b/app/components/viewer/index.js index c09dd30..3afae65 100644 --- a/app/components/viewer/index.js +++ b/app/components/viewer/index.js @@ -152,19 +152,33 @@ export default class ViewerComponent extends Component { } @action - onThumbnailsPositionChanged({original_pos, page_ids}) { - let all_pages, drop_placeholder_pos; - - drop_placeholder_pos = this.pages.findIndex(item => item.is_drop_placeholder); - - console.log(`onThumbnailsPositionChanged drop_placeholder_pos=${drop_placeholder_pos} original_pos=${original_pos} page_ids=${page_ids}`); - //all_pages = this.pages; - // - //this.pages = reposition_items({ - // items: all_pages, - // selected_ids: page_ids, - // drop_pos: drop_placeholder_pos - //}); + onThumbnailsPositionChanged(page_ids) { + /* + ``page_ids`` will be moved to the new position + indicated by drop placeholder. + Page is drop placeholder if ``page.is_drop_placeholder`` is true. + */ + let pages_without_placeholder, + drop_placeholder_pos; + + // learn where user wants to move pages by + // findind drop placeholder position + drop_placeholder_pos = this.pages.findIndex( + item => item.is_drop_placeholder + ); + + // remove placeholder from pages array + this.pages.splice(drop_placeholder_pos, 1); + pages_without_placeholder = this.pages; + + console.log(`repositioning items page_ids=${page_ids}`); + console.log(`repositioning items drop_pos=${drop_placeholder_pos}`); + // reposition pages + this.pages = reposition_items({ + items: pages_without_placeholder, + selected_ids: page_ids, + drop_pos: drop_placeholder_pos + }); } @action diff --git a/app/components/viewer/thumbnails/index.js b/app/components/viewer/thumbnails/index.js index bc8c324..c2be6d6 100644 --- a/app/components/viewer/thumbnails/index.js +++ b/app/components/viewer/thumbnails/index.js @@ -21,7 +21,6 @@ export default class ViewerThumbnailsComponent extends Component { let data, json_data, page_ids, - original_pos, drop_pos, source_doc_id; @@ -33,15 +32,12 @@ export default class ViewerThumbnailsComponent extends Component { } json_data = JSON.parse(data); - original_pos = json_data['original_pos'] page_ids = json_data['pages'].map(page => page.id); source_doc_id = json_data['source_doc_id']; if (source_doc_id == this.args.doc.id) { // pages moved within same document - this.args.onThumbnailsPositionChanged({ - original_pos, page_ids - }); + this.args.onThumbnailsPositionChanged(page_ids); } else { // pages moved to another document this.args.onIncomingPages({ -- GitLab