From a9326c52f37d417af2acabddec966e46d4c274bd Mon Sep 17 00:00:00 2001 From: Tymoteusz Motylewski <t.motylewski@gmail.com> Date: Tue, 12 Dec 2017 13:13:05 +0100 Subject: [PATCH] [BUGFIX] Register page tree navigation component after it is initialized Now Viewport.NavigationContainer.setComponentInstance(tree); is called after the tree is initialized. A check to prevent multiple initialization calls is added. Also position of the title edit imput is corrected in case where there are multiple mount points. Releases: master Resolves: #83299 Change-Id: I5b9cc14b362ab20ecb7631babe3f3f83eb8bfb48 Reviewed-on: https://review.typo3.org/55043 Tested-by: TYPO3com <no-reply@typo3.com> Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch> Tested-by: Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by: Stefan Neufeind <typo3.neufeind@speedpartner.de> Tested-by: Stefan Neufeind <typo3.neufeind@speedpartner.de> Reviewed-by: Frans Saris <franssaris@gmail.com> Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl> Tested-by: Frans Saris <franssaris@gmail.com> Reviewed-by: Tymoteusz Motylewski <t.motylewski@gmail.com> Tested-by: Tymoteusz Motylewski <t.motylewski@gmail.com> --- .../Public/JavaScript/PageTree/PageTree.js | 3 +- .../JavaScript/PageTree/PageTreeDragDrop.js | 3 +- .../JavaScript/PageTree/PageTreeElement.js | 30 +++++++++---------- 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/typo3/sysext/backend/Resources/Public/JavaScript/PageTree/PageTree.js b/typo3/sysext/backend/Resources/Public/JavaScript/PageTree/PageTree.js index 170c48c7db9c..bd247ae34ee6 100644 --- a/typo3/sysext/backend/Resources/Public/JavaScript/PageTree/PageTree.js +++ b/typo3/sysext/backend/Resources/Public/JavaScript/PageTree/PageTree.js @@ -412,8 +412,7 @@ define(['jquery', .append('input') .attr('class', 'node-edit') .style('top', function () { - var top = _this.data.nodes.indexOf(node) * _this.settings.nodeHeight; - top = top + 15; //svg margin top + var top = node.y + 15; //svg margin top return top + 'px'; }) .style('left', (node.x + _this.textPosition + 5) + 'px') diff --git a/typo3/sysext/backend/Resources/Public/JavaScript/PageTree/PageTreeDragDrop.js b/typo3/sysext/backend/Resources/Public/JavaScript/PageTree/PageTreeDragDrop.js index 66d8ac120961..d07b8f1511d1 100644 --- a/typo3/sysext/backend/Resources/Public/JavaScript/PageTree/PageTreeDragDrop.js +++ b/typo3/sysext/backend/Resources/Public/JavaScript/PageTree/PageTreeDragDrop.js @@ -752,8 +752,7 @@ define([ .append('input') .attr('class', 'node-edit') .style('top', function () { - var top = _this.tree.data.nodes.indexOf(newNode) * _this.tree.settings.nodeHeight; - top = top + 15; //svg margin top + var top = newNode.y + 15; //svg margin top return top + 'px'; }) .style('left', (newNode.x + _this.tree.textPosition + 5) + 'px') diff --git a/typo3/sysext/backend/Resources/Public/JavaScript/PageTree/PageTreeElement.js b/typo3/sysext/backend/Resources/Public/JavaScript/PageTree/PageTreeElement.js index be22f694928c..a39725abb4b1 100644 --- a/typo3/sysext/backend/Resources/Public/JavaScript/PageTree/PageTreeElement.js +++ b/typo3/sysext/backend/Resources/Public/JavaScript/PageTree/PageTreeElement.js @@ -46,25 +46,23 @@ define(['jquery', * @param {String} selector */ PageTreeElement.initialize = function (selector) { - $(document).ready(function () { + $(function () { var $element = $(selector); - var tree = new PageTree(); - if ($element.html().trim().length === 0) { - $element.append(PageTreeElement.template); + if ($element.html().trim().length !== 0) { + return; } - if ($('.node-loader').html().trim().length === 0) { - Icons.getIcon('spinner-circle-light', Icons.sizes.small).done(function (spinner) { - $('.node-loader').append(spinner); - }); - } + var tree = new PageTree(); + $element.append(PageTreeElement.template); - if ($('.svg-tree-loader').html().trim().length === 0) { - Icons.getIcon('spinner-circle-light', Icons.sizes.large).done(function (spinner) { - $('.svg-tree-loader').append(spinner); - }); - } + Icons.getIcon('spinner-circle-light', Icons.sizes.small).done(function (spinner) { + $('.node-loader').append(spinner); + }); + + Icons.getIcon('spinner-circle-light', Icons.sizes.large).done(function (spinner) { + $('.svg-tree-loader').append(spinner); + }); var dataUrl = top.TYPO3.settings.ajaxUrls.page_tree_data; var configurationUrl = top.TYPO3.settings.ajaxUrls.page_tree_configuration; @@ -74,9 +72,9 @@ define(['jquery', dataUrl: dataUrl, showIcons: true, })); - }); - Viewport.NavigationContainer.setComponentInstance(tree); + Viewport.NavigationContainer.setComponentInstance(tree); + }); if (!$('#svg-toolbar').data('tree-show-toolbar')) { var pageTreeToolbar = new PageTreeToolbar(); -- GitLab