From 2dbebc02f5a37d0d6a915ebfd73ecae297e8cced Mon Sep 17 00:00:00 2001
From: Eugen Ciur <eugen@papermerge.com>
Date: Sat, 6 Nov 2021 06:48:25 +0100
Subject: [PATCH] use one single component for commander

---
 LICENSE                                       |  2 +-
 README.md                                     | 12 -----
 app/components/commander/index.hbs            | 18 ++++++++
 .../commander/{base.js => index.js}           |  3 +-
 app/components/commander/left.hbs             | 42 -----------------
 app/components/commander/left.js              |  7 ---
 app/components/commander/link_to_left.hbs     | 14 ++++++
 app/components/commander/link_to_right.hbs    |  6 +++
 app/components/commander/right.hbs            | 34 --------------
 app/components/commander/right.js             |  7 ---
 app/templates/authenticated/index.hbs         |  2 +-
 app/templates/authenticated/nodes.hbs         | 46 +++++++++++++++----
 12 files changed, 77 insertions(+), 116 deletions(-)
 create mode 100644 app/components/commander/index.hbs
 rename app/components/commander/{base.js => index.js} (83%)
 delete mode 100644 app/components/commander/left.hbs
 delete mode 100644 app/components/commander/left.js
 create mode 100644 app/components/commander/link_to_left.hbs
 create mode 100644 app/components/commander/link_to_right.hbs
 delete mode 100644 app/components/commander/right.hbs
 delete mode 100644 app/components/commander/right.js

diff --git a/LICENSE b/LICENSE
index 2b607d0..616620c 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,7 +1,7 @@
                                  Apache License
                            Version 2.0, January 2004
                         http://www.apache.org/licenses/
-                        
+
    Copyright 2021-Present Eugen Ciur <eugen@papermerge.com>
 
    TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
diff --git a/README.md b/README.md
index 419e81c..af2887c 100644
--- a/README.md
+++ b/README.md
@@ -36,21 +36,9 @@ Make use of the many generators for code, try `ember help generate` for more det
 ### Linting
 
 * `npm run lint`
-* `npm run lint:fix`
 
 ### Building
 
 * `ember build` (development)
 * `ember build --environment production` (production)
 
-### Deploying
-
-Specify what it takes to deploy your app.
-
-## Further Reading / Useful Links
-
-* [ember.js](https://emberjs.com/)
-* [ember-cli](https://ember-cli.com/)
-* Development Browser Extensions
-  * [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)
-  * [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/)
diff --git a/app/components/commander/index.hbs b/app/components/commander/index.hbs
new file mode 100644
index 0000000..7d28fda
--- /dev/null
+++ b/app/components/commander/index.hbs
@@ -0,0 +1,18 @@
+<div class="panel commander row">
+  <div class="d-flex justify-content-between">
+    <Commander::ActionButtons
+      @openNewFolderModal={{this.openNewFolderModal}} />
+
+    <Commander::ActionModes
+      @onPanelToggle={{@onPanelToggle}}
+      @dualPanelMode={{@dualPanelMode}} />
+  </div>
+
+  <Modal::NewFolder
+    id="new-folder"
+    @node={{@node}}
+    @onClose={{this.closeNewFolderModal}}
+    {{show-when this.show_new_folder_modal}} />
+
+  {{yield}}
+</div>
diff --git a/app/components/commander/base.js b/app/components/commander/index.js
similarity index 83%
rename from app/components/commander/base.js
rename to app/components/commander/index.js
index cfdeb69..6eff2ed 100644
--- a/app/components/commander/base.js
+++ b/app/components/commander/index.js
@@ -3,7 +3,7 @@ import { tracked } from '@glimmer/tracking';
 import { action } from '@ember/object';
 
 
-export default class BaseCommanderComponent extends Component {
+export default class CommanderComponent extends Component {
   @tracked show_new_folder_modal = false;
 
   @action
@@ -15,5 +15,4 @@ export default class BaseCommanderComponent extends Component {
   closeNewFolderModal() {
     this.show_new_folder_modal = false;
   }
-
 }
diff --git a/app/components/commander/left.hbs b/app/components/commander/left.hbs
deleted file mode 100644
index 163a2fd..0000000
--- a/app/components/commander/left.hbs
+++ /dev/null
@@ -1,42 +0,0 @@
-<div class="panel commander row">
-  <div class="d-flex justify-content-between">
-    <Commander::ActionButtons
-      @openNewFolderModal={{this.openNewFolderModal}} />
-
-    <Commander::ActionModes
-      @onPanelToggle={{@onPanelToggle}}
-      @dualPanelMode={{@dualPanelMode}} />
-  </div>
-
-  <Modal::NewFolder
-    id="new-folder"
-    @node={{@node}}
-    @onClose={{this.closeNewFolderModal}}
-    {{show-when this.show_new_folder_modal}} />
-
-  <Breadcrumb::Left
-    @node={{@node}}
-    @extranode={{@extranode}} />
-
-  {{#each @nodes as |node|}}
-    {{#let (component node.nodeType) as |NodeType|}}
-      {{! NodeType is either <Folder /> or <Document />}}
-      <NodeType @model={{node}}>
-        {{#if @extranode}}
-          <LinkTo
-            @route="authenticated.nodes"
-            @model={{node.id}}
-            @query={{hash extranode_id=@extranode.id}}>
-              {{node.title}}
-          </LinkTo>
-        {{else}}
-          <LinkTo
-            @route="authenticated.nodes"
-            @model={{node.id}}>
-              {{node.title}}
-          </LinkTo>
-        {{/if}}
-      </NodeType>
-    {{/let}}
-  {{/each}}
-</div>
diff --git a/app/components/commander/left.js b/app/components/commander/left.js
deleted file mode 100644
index 4529820..0000000
--- a/app/components/commander/left.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import BaseCommanderComponent from "./base";
-
-
-class LeftCommanderComponent extends BaseCommanderComponent {
-}
-
-export default LeftCommanderComponent;
diff --git a/app/components/commander/link_to_left.hbs b/app/components/commander/link_to_left.hbs
new file mode 100644
index 0000000..a58aa2c
--- /dev/null
+++ b/app/components/commander/link_to_left.hbs
@@ -0,0 +1,14 @@
+{{#if @extranode}}
+  <LinkTo
+    @route="authenticated.nodes"
+    @model={{@node.id}}
+    @query={{hash extranode_id=@extranode.id}}>
+      {{@node.title}}
+  </LinkTo>
+{{else}}
+  <LinkTo
+    @route="authenticated.nodes"
+    @model={{@node.id}}>
+      {{@node.title}}
+  </LinkTo>
+{{/if}}
\ No newline at end of file
diff --git a/app/components/commander/link_to_right.hbs b/app/components/commander/link_to_right.hbs
new file mode 100644
index 0000000..e4411f2
--- /dev/null
+++ b/app/components/commander/link_to_right.hbs
@@ -0,0 +1,6 @@
+<LinkTo
+  @route="authenticated.nodes"
+  @model={{@extranode.id}}
+  @query={{hash extranode_id=@node.id}}>
+    {{@node.title}}
+</LinkTo>
\ No newline at end of file
diff --git a/app/components/commander/right.hbs b/app/components/commander/right.hbs
deleted file mode 100644
index be8ad7d..0000000
--- a/app/components/commander/right.hbs
+++ /dev/null
@@ -1,34 +0,0 @@
-<div class="panel commander row">
-  <div class="d-flex justify-content-between">
-    <Commander::ActionButtons
-      @openNewFolderModal={{this.openNewFolderModal}} />
-
-    <Commander::ActionModes
-      @onPanelToggle={{@onPanelToggle}}
-      @dualPanelMode={{@dualPanelMode}} />
-  </div>
-
-  <Modal::NewFolder
-    id="new-folder"
-    @node={{@node}}
-    @onClose={{this.closeNewFolderModal}}
-    {{show-when this.show_new_folder_modal}} />
-
-  <Breadcrumb::Right
-    @node={{@node}}
-    @extranode={{@extranode}} />
-
-  {{#each @nodes as |node|}}
-    {{#let (component node.nodeType) as |NodeType|}}
-      {{! NodeType is either <Folder /> or <Document />}}
-      <NodeType @model={{node}}>
-        <LinkTo
-          @route="authenticated.nodes"
-          @model={{@extranode.id}}
-          @query={{hash extranode_id=node.id}}>
-            {{node.title}}
-        </LinkTo>
-      </NodeType>
-    {{/let}}
-  {{/each}}
-</div>
diff --git a/app/components/commander/right.js b/app/components/commander/right.js
deleted file mode 100644
index 7e2368a..0000000
--- a/app/components/commander/right.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import BaseCommanderComponent from "./base";
-
-
-class RightCommanderComponent extends BaseCommanderComponent {
-}
-
-export default RightCommanderComponent;
diff --git a/app/templates/authenticated/index.hbs b/app/templates/authenticated/index.hbs
index 603a3b6..fce3648 100644
--- a/app/templates/authenticated/index.hbs
+++ b/app/templates/authenticated/index.hbs
@@ -1,5 +1,5 @@
 <div class="panels d-flex">
-  <Commander::Left
+  <Commander
     @node={{@model}}
     @nodes={{@model.children}} />
 </div>
diff --git a/app/templates/authenticated/nodes.hbs b/app/templates/authenticated/nodes.hbs
index 3e90c4b..4f1010b 100644
--- a/app/templates/authenticated/nodes.hbs
+++ b/app/templates/authenticated/nodes.hbs
@@ -1,17 +1,43 @@
 <div class="panels d-flex">
-  <Commander::Left
-    @node={{this.mainnode}}
-    @nodes={{this.mainnode.children}}
-    @extranode={{this.extranode}}
+  <Commander
     @onPanelToggle={{this.onPanelToggle}}
-    @dualPanelMode={{this.dualpanel_mode}} />
+    @dualPanelMode={{this.dualpanel_mode}} >
+
+    <Breadcrumb::Left
+      @node={{@node}}
+      @extranode={{@extranode}} />
+
+    {{#each this.mainnode.children as |node|}}
+      {{#let (component node.nodeType) as |NodeType|}}
+        {{! NodeType is either <Folder /> or <Document />}}
+        <NodeType @model={{node}}>
+          <Commander::LinkToLeft
+            @node={{node}}
+            @extranode={{this.extranode}} />
+        </NodeType>
+      {{/let}}
+    {{/each}}
+  </Commander>
 
   {{#if this.dualpanel_mode}}
-    <Commander::Right
-      @node={{this.extranode}}
-      @nodes={{this.extranode.children}}
-      @extranode={{this.mainnode}}
+    <Commander
       @onPanelToggle={{this.onPanelToggle}}
-      @dualPanelMode={{this.dualpanel_mode}} />
+      @dualPanelMode={{this.dualpanel_mode}} >
+
+      <Breadcrumb::Right
+        @node={{@node}}
+        @extranode={{@extranode}} />
+
+        {{#each this.extranode.children as |node|}}
+          {{#let (component node.nodeType) as |NodeType|}}
+            {{! NodeType is either <Folder /> or <Document />}}
+            <NodeType @model={{node}}>
+              <Commander::LinkToRight
+                @node={{node}}
+                @extranode={{this.mainnode}} />
+            </NodeType>
+          {{/let}}
+        {{/each}}
+    </Commander>
   {{/if}}
 </div>
-- 
GitLab