From 9bd69b770fba76d20179bb392df6b8cf1859fdd2 Mon Sep 17 00:00:00 2001
From: Andreas Fernandez <a.fernandez@scripting-base.de>
Date: Mon, 20 Nov 2017 19:55:06 +0100
Subject: [PATCH] [BUGFIX] Page tree nodes can be (un)mounted again

(Un)mounting nodes in the page tree is now possible again by fixing calls
to the page tree objects.

Resolves: #83051
Releases: master, 8.7
Change-Id: I978308e301b712fa75d677337d790e4895dc997a
Reviewed-on: https://review.typo3.org/54706
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Riccardo De Contardi <erredeco@gmail.com>
Reviewed-by: Frank Naegler <frank.naegler@typo3.org>
Tested-by: Frank Naegler <frank.naegler@typo3.org>
---
 .../Public/JavaScript/ContextMenuActions.js         |  4 ++--
 .../extjs/components/pagetree/javascript/actions.js | 13 +++++++------
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/typo3/sysext/backend/Resources/Public/JavaScript/ContextMenuActions.js b/typo3/sysext/backend/Resources/Public/JavaScript/ContextMenuActions.js
index 41ff48d66097..6d6ed4894368 100644
--- a/typo3/sysext/backend/Resources/Public/JavaScript/ContextMenuActions.js
+++ b/typo3/sysext/backend/Resources/Public/JavaScript/ContextMenuActions.js
@@ -47,8 +47,8 @@ define(['jquery', 'TYPO3/CMS/Backend/Modal', 'TYPO3/CMS/Backend/Severity'], func
     ContextMenuActions.mountAsTreeRoot = function (table, uid) {
         // see actions.js -> mountAsTreeRoot
         if (table === 'pages' && typeof top.Ext.getCmp('typo3-pagetree') !== 'undefined') {
-            var node = top.Ext.getCmp('typo3-pagetree-tree').app.getSelected();
-            // var node = top.TYPO3.Backend.NavigationContainer.PageTree.getSelected();
+            var app = top.Ext.getCmp('typo3-pagetree-tree').app;
+            var node = app.getTree().getRootNode().findChild('realId', uid, true);
             if (node === null) {
                 return false;
             }
diff --git a/typo3/sysext/backend/Resources/Public/JavaScript/extjs/components/pagetree/javascript/actions.js b/typo3/sysext/backend/Resources/Public/JavaScript/extjs/components/pagetree/javascript/actions.js
index 2cfc3c439290..8c6229b74511 100644
--- a/typo3/sysext/backend/Resources/Public/JavaScript/extjs/components/pagetree/javascript/actions.js
+++ b/typo3/sysext/backend/Resources/Public/JavaScript/extjs/components/pagetree/javascript/actions.js
@@ -276,26 +276,27 @@ require(['TYPO3/CMS/Backend/Utility'], function(Utility) {
 			TYPO3.Components.PageTree.Commands.setTemporaryMountPoint(
 				node.attributes.nodeData,
 				function (response) {
+					var app = Ext.getCmp('typo3-pagetree-tree').app;
 					if (TYPO3.Components.PageTree.Configuration.temporaryMountPoint) {
-						TYPO3.Backend.NavigationContainer.PageTree.removeIndicator(
-							TYPO3.Backend.NavigationContainer.PageTree.temporaryMountPointInfoIndicator
+						app.removeIndicator(
+							app.temporaryMountPointInfoIndicator
 						);
 					}
 
 					TYPO3.Components.PageTree.Configuration.temporaryMountPoint = response;
-					Ext.getCmp('typo3-pagetree-tree').app.addTemporaryMountPointIndicator();
+					app.addTemporaryMountPointIndicator();
 
-					var selectedNode = Ext.getCmp('typo3-pagetree-tree').app.getSelected();
+					var selectedNode = app.getSelected();
 					tree.stateId = 'Pagetree' + TYPO3.Components.PageTree.Configuration.temporaryMountPoint;
 					tree.refreshTree(function () {
 						var nodeIsSelected = false;
 						if (selectedNode) {
-							nodeIsSelected = TYPO3.Backend.NavigationContainer.PageTree.select(
+							nodeIsSelected = app.select(
 								selectedNode.attributes.nodeData.id
 							);
 						}
 
-						var node = (nodeIsSelected ? TYPO3.Backend.NavigationContainer.PageTree.getSelected() : null);
+						var node = (nodeIsSelected ? app.getSelected() : null);
 						if (node) {
 							this.singleClick(node, tree);
 						} else {
-- 
GitLab