From 61951ea45f01bbe05113c225e6dea2612278d113 Mon Sep 17 00:00:00 2001 From: Eugen Ciur <eugen@papermerge.com> Date: Sun, 28 Nov 2021 07:56:21 +0100 Subject: [PATCH] viewer controller and other real time goodies --- app/components/viewer/action_buttons.hbs | 25 +++++++++++---- app/components/viewer/index.hbs | 3 +- app/components/viewer/index.js | 28 ---------------- app/controllers/authenticated/document.js | 39 ++++++++++++++++++++++- app/services/websockets.js | 2 +- app/templates/authenticated/viewer.hbs | 2 ++ 6 files changed, 61 insertions(+), 38 deletions(-) delete mode 100644 app/components/viewer/index.js diff --git a/app/components/viewer/action_buttons.hbs b/app/components/viewer/action_buttons.hbs index c967b5c..7c89c90 100644 --- a/app/components/viewer/action_buttons.hbs +++ b/app/components/viewer/action_buttons.hbs @@ -1,11 +1,22 @@ <div> <Button::DownloadDocumentVersion @document_versions={{@document_versions}} /> - <button - class="btn btn-light" - type="button" - {{on "click" @onRunOCR}}> - <i class="fa fa-redo mr-1"></i> - Run OCR - </button> + {{#if @isLocked}} + <button + class="btn btn-light" + type="button" + disabled + {{on "click" @onRunOCR}}> + <i class="fa fa-redo mr-1"></i> + Run OCR + </button> + {{else}} + <button + class="btn btn-light" + type="button" + {{on "click" @onRunOCR}}> + <i class="fa fa-redo mr-1"></i> + Run OCR + </button> + {{/if}} </div> \ No newline at end of file diff --git a/app/components/viewer/index.hbs b/app/components/viewer/index.hbs index b96952d..2aefdfa 100644 --- a/app/components/viewer/index.hbs +++ b/app/components/viewer/index.hbs @@ -2,7 +2,8 @@ <div class="d-flex justify-content-between"> <Viewer::ActionButtons @document_versions={{@document_versions}} - @onRunOCR={{this.onRunOCR}} /> + @isLocked={{@isLocked}} + @onRunOCR={{@onRunOCR}} /> </div> <Breadcrumb diff --git a/app/components/viewer/index.js b/app/components/viewer/index.js deleted file mode 100644 index c9e0470..0000000 --- a/app/components/viewer/index.js +++ /dev/null @@ -1,28 +0,0 @@ -import Component from '@glimmer/component'; -import { action } from '@ember/object'; -import { inject as service } from '@ember/service'; - - -export default class ViewComponent extends Component { - - @service requests; - @service websockets; - - constructor(owner, args) { - super(owner, args); - - this.websockets.addHandler(this.messageHandler, this); - } - - messageHandler(message) { - console.log(message); - } - - @action - onRunOCR() { - this.requests.runOCR({ - doc_id: this.args.doc.id, - lang: 'deu' - }); - } -} \ No newline at end of file diff --git a/app/controllers/authenticated/document.js b/app/controllers/authenticated/document.js index 0d95f2b..c58eb34 100644 --- a/app/controllers/authenticated/document.js +++ b/app/controllers/authenticated/document.js @@ -4,13 +4,25 @@ import { tracked } from "@glimmer/tracking"; import { inject as service } from '@ember/service'; -export default class DocumentController extends Controller { +export default class ViewerController extends Controller { @service currentUser; + @service requests; + @service websockets; + @tracked extranode_id = null; @tracked extradoc_id = null; + @tracked is_ocred = false; + queryParams = ['extranode_id', 'extradoc_id'] + + constructor(owner, args) { + super(owner, args); + + this.websockets.addHandler(this.messageHandler, this); + } + @action onPanelToggle() { @@ -21,4 +33,29 @@ export default class DocumentController extends Controller { this.extranode_id = 75; } } + + messageHandler(message) { + // console.log(message); + if (message.type == 'ocrdocumenttask.tasksucceeded' ) { + if (message.document_id == this.model.doc.id) { + this.is_ocred = false; + //to do: retrieve again + // 1. document versions + // 2. document pages + } + } + } + + @action + onRunOCR() { + this.is_ocred = true; + this.requests.runOCR({ + doc_id: this.model.doc.id, + lang: 'deu' + }); + } + + get isLocked() { + return this.is_ocred; + } } diff --git a/app/services/websockets.js b/app/services/websockets.js index 4977875..9d27f7d 100644 --- a/app/services/websockets.js +++ b/app/services/websockets.js @@ -21,7 +21,7 @@ export default class Websockets extends Service { json_data = JSON.parse(event.data); item.handler.apply(item.context, [json_data, event]); } catch (err) { - console.log(`Error while parsing incoming data: ${event.data}`); + console.log(`Error ${err} while parsing incoming data: ${event.data}`); } }); } diff --git a/app/templates/authenticated/viewer.hbs b/app/templates/authenticated/viewer.hbs index fc5a08d..69b3801 100644 --- a/app/templates/authenticated/viewer.hbs +++ b/app/templates/authenticated/viewer.hbs @@ -7,6 +7,8 @@ @extranode={{this.extranode.current_node}} @onPanelToggle={{this.onPanelToggle}} @dualPanelMode={{this.dualpanel_mode}} + @onRunOCR={{this.onRunOCR}} + @isLocked={{this.isLocked}} @hint="left" /> {{#if this.dualpanel_mode}} -- GitLab