diff --git a/app/controllers/authenticated/document.js b/app/controllers/authenticated/document.js
index 7f4f96c5ffeae6d61693b38f4b02a609a2f3e211..13773048303dc5fa730cc4f6b6dceca9e03a5ecf 100644
--- a/app/controllers/authenticated/document.js
+++ b/app/controllers/authenticated/document.js
@@ -1,9 +1,12 @@
 import { action } from '@ember/object';
 import DualPanelBaseController from "./dualpanel_base";
+import { service } from '@ember/service';
 
 
 export default class DocumentController extends DualPanelBaseController {
 
+  @service router;
+
   @action
   async onPanelToggle(hint) {
     /*
@@ -38,17 +41,34 @@ export default class DocumentController extends DualPanelBaseController {
 
   @action
   onSwapPanels() {
-    console.log(`onSwapPanels`);
-  }
+    let document_id = this.router.currentRoute.params['document_id'],
+      query_params;
 
-  @action
-  onLeftDuplicate() {
-    console.log(`onLeftDuplicate`);
+    query_params = {
+      'queryParams': {
+        'extra_id': document_id,
+        'extra_type': 'doc'
+      }
+    };
+
+    if (this.extra_id && this.extra_type == 'folder') {
+      this.router.transitionTo(
+        'authenticated.nodes',
+        this.extra_id,
+        query_params
+      );
+    } else if (this.extra_id && this.extra_type == 'doc') {
+      this.router.transitionTo(
+        'authenticated.document',
+        this.extra_id,
+        query_params
+      )
+    }
   }
 
   @action
-  onRightDuplicate() {
-    console.log(`onRightDuplicate`);
+  onDuplicatePanel() {
+    console.log(`onDuplicatePanel`);
   }
 
 }
diff --git a/app/controllers/authenticated/nodes.js b/app/controllers/authenticated/nodes.js
index 490ff5d2724617dd378a1962b2dc073ee349a04b..1afc9d61dcf98f37204d63a8f2ff45107722e10c 100644
--- a/app/controllers/authenticated/nodes.js
+++ b/app/controllers/authenticated/nodes.js
@@ -40,32 +40,29 @@ export default class NodesController extends DualPanelBaseController {
 
   @action
   onSwapPanels() {
-    let node_id;
+    let node_id,
+      query_params;
+
+    node_id = this.router.currentRoute.params['node_id'];
+    query_params = {
+      'queryParams': {
+        'extra_id': node_id,
+        'extra_type': 'folder'
+      }
+    }
 
     if (this.extra_id && this.extra_type == 'folder') {
-      node_id = this.router.currentRoute.params['node_id'];
       this.router.transitionTo(
         'authenticated.nodes',
         this.extra_id,
-        {
-          'queryParams': {
-            'extra_id': node_id,
-            'extra_type': 'folder',
-          }
-        }
+        query_params
       );
     } else if (this.extra_id && this.extra_type == 'doc') {
-      node_id = this.router.currentRoute.params['node_id'];
       this.router.transitionTo(
         'authenticated.document',
         this.extra_id,
-        {
-          'queryParams': {
-            'extra_id': node_id,
-            'extra_type': 'folder'
-          }
-        }
-      )
+        query_params
+      );
     }
   }
 
diff --git a/app/templates/authenticated/document.hbs b/app/templates/authenticated/document.hbs
index ea82c27482da7a6edd8b5c84eca94e1413ddb3d9..a4e8dae1081251739d7f2a17c08415fb34c7ab62 100644
--- a/app/templates/authenticated/document.hbs
+++ b/app/templates/authenticated/document.hbs
@@ -6,7 +6,9 @@
     @extradoc={{@mode.extra.doc}}
     @onPanelToggle={{this.onPanelToggle}}
     @dualPanelMode={{this.dualpanel_mode}}
-    @hint="left" />
+    @hint="left"
+    @onSwapPanels={{this.onSwapPanels}}
+    @onDuplicatePanel={{this.onDuplicatePanel}} />
 
   {{#if @model.extra}}
     {{#if @model.extra.doc}}
@@ -17,7 +19,9 @@
         @extradoc={{@model.doc}}
         @onPanelToggle={{this.onPanelToggle}}
         @dualPanelMode={{this.dualpanel_mode}}
-        @hint="right" />
+        @hint="right"
+        @onSwapPanels={{this.onSwapPanels}}
+        @onDuplicatePanel={{this.onDuplicatePanel}} />
     {{else}}
       <Commander
         @node={{@model.extra.current_node}}
@@ -26,7 +30,9 @@
         @extradoc={{@model.doc}}
         @onPanelToggle={{this.onPanelToggle}}
         @dualPanelMode={{this.dualpanel_mode}}
-        @hint="right" />
+        @hint="right"
+        @onSwapPanels={{this.onSwapPanels}}
+        @onDuplicatePanel={{this.onDuplicatePanel}} />
     {{/if}}
   {{/if}}
 </div>