diff --git a/app/components/viewer/document/index.hbs b/app/components/viewer/document/index.hbs index 3b3a77eb07885f199e0aca7297c54ee63e7fc558..f8b00f0b94af016cdba5ff4a8b4d4f33641a88aa 100644 --- a/app/components/viewer/document/index.hbs +++ b/app/components/viewer/document/index.hbs @@ -4,7 +4,8 @@ @pages={{@pages}} @selectedPages={{@selectedPages}} @onDblClick={{this.onThumbnailDblClick}} - @onCheckboxChange={{@onCheckboxChange}} /> + @onCheckboxChange={{@onCheckboxChange}} + @onThumbnailsPositionChanged={{@onThumbnailsPositionChanged}}/> {{/if}} <Viewer::ThumbnailsSwitch @onThumbnailsToggle={{this.onThumbnailsToggle}} diff --git a/app/components/viewer/index.hbs b/app/components/viewer/index.hbs index 9a506cdb219356ef459f88bcd521406e6021c7d6..b30b1bdd796c2ddfc69c4d7eb1da9c1a60436e81 100644 --- a/app/components/viewer/index.hbs +++ b/app/components/viewer/index.hbs @@ -33,5 +33,6 @@ @pages={{this.pages}} @selectedPages={{this.selected_pages}} @thumbnails_visible={{this.thumbnails_visible}} - @onCheckboxChange={{this.onThumbnailCheckboxChange}} /> + @onCheckboxChange={{this.onThumbnailCheckboxChange}} + @onThumbnailsPositionChanged={{this.onThumbnailsPositionChanged}} /> </div> diff --git a/app/components/viewer/index.js b/app/components/viewer/index.js index e821fd596dd4fce6ac65424417ea27a7031df50e..0b8af271e6f9e4d2e6ff10f4f16d3f0c2a211440 100644 --- a/app/components/viewer/index.js +++ b/app/components/viewer/index.js @@ -143,6 +143,13 @@ export default class ViewerComponent extends Component { } } + @action + onThumbnailsPositionChanged({original_pos, drop_pos, page_ids}) { + console.log(`onThumbnailsPositionChanged`); + console.log(`original_pos=${original_pos}, drop_pos=${drop_pos}, page_ids=${page_ids}`); + this._pages = []; + } + @action openConfirmDeletionModal() { this.show_confirm_pages_deletion_modal = true; @@ -189,6 +196,8 @@ export default class ViewerComponent extends Component { get pages() { + console.log('get pages'); + if (this.__pages__) { // workaround for tracking changes in array } @@ -196,10 +205,12 @@ export default class ViewerComponent extends Component { if (this._pages.length > 0) { // If newer version of the pages is available // (e.g. document was OCRed) then just use it + console.log(`rendering this._pages`); return this._pages; } // Initial version of the pages + console.log(`rendering this.args.pages`); return this.args.pages; } diff --git a/app/components/viewer/thumbnails/index.js b/app/components/viewer/thumbnails/index.js index d0057704bf7547d67e51ec6b96d2e2e3561b1571..6f52da196155cae3433321a6d2faf6fe3e4a2968 100644 --- a/app/components/viewer/thumbnails/index.js +++ b/app/components/viewer/thumbnails/index.js @@ -1,16 +1,20 @@ import Component from '@glimmer/component'; import Point from 'papermerge/utils/point'; +import { action } from '@ember/object'; import { get_cursor_pos_within_element } from 'papermerge/utils/dom'; export default class ViewerThumbnailsComponent extends Component { + @action onDragendCancel() { } + @action onDragendSuccess() { } + @action onDrop({event, element}) { let data, json_data, page_ids, original_pos, drop_pos; @@ -24,18 +28,22 @@ export default class ViewerThumbnailsComponent extends Component { drop_pos = get_cursor_pos_within_element( element, new Point(event.clientX, event.clientY) - ) - console.log(`Thumbnails received: dropped page_ids=${page_ids}`); - console.log(`original position=${original_pos}`); - console.log(`drop position=${drop_pos}`); + ); + + this.args.onThumbnailsPositionChanged({ + original_pos, drop_pos, page_ids + }); } + @action onDragOver() { } + @action onDragEnter() { } + @action onDragLeave() { } } diff --git a/app/utils/dom.js b/app/utils/dom.js index ce3f14df946f033ba78cd29b6d46bf43844f4940..c4fc74cfb10761b18db694a2df8b783de302617e 100644 --- a/app/utils/dom.js +++ b/app/utils/dom.js @@ -65,7 +65,7 @@ function get_cursor_pos_within_element(element, cursor_coord) { } }); - pos = children.length - cursor_before_child + pos = children.length - cursor_before_child; return pos; }