[BUGFIX] TCA tree fail to load with IRRE 50/12850/6
authorXavier Perseguers <xavier@typo3.org>
Mon, 4 Mar 2013 08:51:02 +0000 (09:51 +0100)
committerFrans Saris <franssaris@gmail.com>
Wed, 16 Apr 2014 17:42:09 +0000 (19:42 +0200)
The TCA tree element fail to load inside IRRE, in some condition
(when the record is not loaded/opened)

Change-Id: Id077a71e2191b0cf91003611e11dc5aefafab0c9
Resolves: #39035
Releases: 6.2, 6.1
Reviewed-on: https://review.typo3.org/12850
Reviewed-by: Markus Klein
Reviewed-by: Laurent Cherpit
Reviewed-by: Dominique Feyer
Tested-by: Dominique Feyer
Reviewed-by: Fabien Udriot
Reviewed-by: Frans Saris
Tested-by: Frans Saris
typo3/sysext/backend/Classes/Form/Element/TreeElement.php

index cba65d3..4c5468e 100644 (file)
@@ -188,7 +188,16 @@ class TreeElement {
                                                if (node.id !== "root") {
                                                        top.TYPO3.BackendUserSettings.ExtDirect.addToList("tcaTrees." + this.ucId, node.attributes.uid);
                                                }
-                                       }
+                                       },
+                                       beforerender: function(treeCmp) {
+                                               // Check if that tree element is already rendered. It is appended on the first tceforms_inline call.
+                                               if (Ext.fly(treeCmp.getId())) {
+                                                       return false;
+                                               }
+                                       }' . ($expanded ? ',
+                                       afterrender: function(treeCmp) {
+                                               treeCmp.expandAll();
+                                       }' : '') . '
                                },
                                tcaMaxItems: ' . ($PA['fieldConf']['config']['maxitems'] ? (int)$PA['fieldConf']['config']['maxitems'] : 99999) . ',
                                tcaSelectRecursiveAllowed: ' . ($appearance['allowRecursiveMode'] ? 'true' : 'false') . ',
@@ -197,7 +206,14 @@ class TreeElement {
                                ucId: "' . md5(($table . '|' . $field)) . '",
                                selModel: TYPO3.Components.Tree.EmptySelectionModel,
                                disabled: ' . ($PA['fieldConf']['config']['readOnly'] ? 'true' : 'false') . '
-                       });' . LF . ($autoSizeMax ? 'tree' . $id . '.bodyStyle = "max-height: ' . $autoSizeMax . 'px;min-height: ' . $height . 'px;";' : 'tree' . $id . '.height = ' . $height . ';') . LF . 'tree' . $id . '.render("tree_' . $id . '");' . ($expanded ? 'tree' . $id . '.expandAll();' : '') . '
+                       });' . LF .
+                               ($autoSizeMax
+                                       ? 'tree' . $id . '.bodyStyle = "max-height: ' . $autoSizeMax . 'px;min-height: ' . $height . 'px;";'
+                                       : 'tree' . $id . '.height = ' . $height . ';'
+                               ) . LF .
+                               '(function() {
+                                       tree' . $id . '.render("tree_' . $id . '");
+                               }).defer(20);
                ');
                $formField = '
                        <div class="typo3-tceforms-tree">