From 31b25a407053bf22708b766fcbf459adfa6eb6f1 Mon Sep 17 00:00:00 2001
From: Eugen Ciur <eugen@papermerge.com>
Date: Sat, 4 Dec 2021 08:56:05 +0100
Subject: [PATCH] okish dual panel mode. Need some tests and documentation

---
 app/components/breadcrumb/index.js       |  9 +++++++--
 app/components/dual_link_to/index.js     | 25 +++++++++++++-----------
 app/components/viewer/index.hbs          |  1 +
 app/templates/authenticated/document.hbs |  6 ++++--
 app/templates/authenticated/nodes.hbs    |  6 ++++--
 5 files changed, 30 insertions(+), 17 deletions(-)

diff --git a/app/components/breadcrumb/index.js b/app/components/breadcrumb/index.js
index 3ed1644..c1b8d9f 100644
--- a/app/components/breadcrumb/index.js
+++ b/app/components/breadcrumb/index.js
@@ -18,10 +18,15 @@ export default class BreadcrumbComponent extends Component {
   }
 
   get query() {
-
     if (this.args.extranode) {
       return {
-        extranode_id: this.args.extranode.id
+        extra_id: this.args.extranode.id,
+        extra_type: 'folder'
+      }
+    } else if (this.args.extradoc) {
+      return {
+        extra_id: this.args.extradoc.id,
+        extra_type: 'doc'
       }
     }
 
diff --git a/app/components/dual_link_to/index.js b/app/components/dual_link_to/index.js
index f5b1718..51b6fe4 100644
--- a/app/components/dual_link_to/index.js
+++ b/app/components/dual_link_to/index.js
@@ -9,6 +9,7 @@ export default class DualLinkToComponent extends Component {
 
       @node - main node, which is visually located on left panel
       @extranode - extra node, visually on right panel
+      @extradoc - extra document on the right
       @hint = can be either "left" "right". Indicates in which panel
       is current <DualLinkTo /> located at this very moment.
 
@@ -115,11 +116,13 @@ export default class DualLinkToComponent extends Component {
   get query() {
     let node,
       extranode,
+      extradoc,
       hint,
       result = {};
 
     node = this.args.node;
     extranode = this.args.extranode;
+    extradoc = this.args.extradoc;
     hint = this.args.hint;
 
     if (this.args.query) {
@@ -127,17 +130,17 @@ export default class DualLinkToComponent extends Component {
     }
 
     if ((hint === 'left') && extranode) {
-      if (extranode.get('nodeType') === 'document') {
-        return {
-          'extra_id': extranode.get('id'),
-          'extra_type': 'doc'
-        };
-      } else if (extranode.get('nodeType') === 'folder') {
-        return {
-          'extra_id': extranode.get('id'),
-          'extra_type': 'folder'
-        };
-      }
+      return {
+        'extra_id': extranode.get('id'),
+        'extra_type': 'folder'
+      };
+    }
+
+    if ((hint === 'left') && extradoc) {
+      return {
+        'extra_id': extradoc.get('id'),
+        'extra_type': 'doc'
+      };
     }
 
     if (hint === 'right' && node) {
diff --git a/app/components/viewer/index.hbs b/app/components/viewer/index.hbs
index 879576f..db0f1d1 100644
--- a/app/components/viewer/index.hbs
+++ b/app/components/viewer/index.hbs
@@ -15,6 +15,7 @@
   <Breadcrumb
     @node={{@doc}}
     @extranode={{@extranode}}
+    @extradoc={{@extradoc}}
     @hint={{@hint}} />
 
   <div class="d-flex">
diff --git a/app/templates/authenticated/document.hbs b/app/templates/authenticated/document.hbs
index 3d551f0..ea82c27 100644
--- a/app/templates/authenticated/document.hbs
+++ b/app/templates/authenticated/document.hbs
@@ -2,7 +2,8 @@
   <Viewer
     @doc={{@model.doc}}
     @pages={{@model.pages}}
-    @extranode={{this.extranode.current_node}}
+    @extranode={{@model.extra.current_node}}
+    @extradoc={{@mode.extra.doc}}
     @onPanelToggle={{this.onPanelToggle}}
     @dualPanelMode={{this.dualpanel_mode}}
     @hint="left" />
@@ -12,7 +13,8 @@
       <Viewer
         @doc={{@model.extra.doc}}
         @pages={{@model.extra.pages}}
-        @extranode={{this.extranode.current_node}}
+        @extranode={{@model.extra.current_node}}
+        @extradoc={{@model.doc}}
         @onPanelToggle={{this.onPanelToggle}}
         @dualPanelMode={{this.dualpanel_mode}}
         @hint="right" />
diff --git a/app/templates/authenticated/nodes.hbs b/app/templates/authenticated/nodes.hbs
index 4648f4b..4a04596 100644
--- a/app/templates/authenticated/nodes.hbs
+++ b/app/templates/authenticated/nodes.hbs
@@ -1,9 +1,11 @@
 <div class="panels d-flex row">
   <Commander
     @node={{@model.current_node}}
-    @extranode={{@model.extra.current_node}}
     @children={{@model.children}}
     @pagination={{@model.pagination}}
+    {{! extranode/extradoc are passed to breadcrumb and local dual links }}
+    @extranode={{@model.extra.current_node}}
+    @extradoc={{@model.extra.doc}}
     @onPanelToggle={{this.onPanelToggle}}
     @dualPanelMode={{this.dualpanel_mode}}
     @hint="left" />
@@ -20,9 +22,9 @@
     {{else}}
       <Commander
         @node={{@model.extra.current_node}}
-        @extranode={{@model.current_node}}
         @children={{@model.extra.children}}
         @pagination={{@model.extra.pagination}}
+        @extranode={{@model.current_node}}
         @onPanelToggle={{this.onPanelToggle}}
         @dualPanelMode={{this.dualpanel_mode}}
         @hint="right" />
-- 
GitLab