|
5 | 5 | */
|
6 | 6 |
|
7 | 7 | // @codingStandardsIgnoreFile
|
8 |
| - |
| 8 | +/** |
| 9 | + * @var $block \Magento\Catalog\Block\Adminhtml\Category\Tree |
| 10 | + */ |
9 | 11 | ?>
|
10 | 12 |
|
11 | 13 | <?php $_divId = 'tree-div_' . time() ?>
|
12 | 14 | <div id="<?= /* @escapeNotVerified */ $_divId ?>" class="tree"></div>
|
13 | 15 | <script id="ie-deferred-loader" defer="defer" src="//:"></script>
|
14 |
| -<script> |
15 |
| - require([ |
16 |
| - 'jquery', |
17 |
| - "prototype", |
18 |
| - "extjs/ext-tree-checkbox", |
19 |
| - "mage/adminhtml/form" |
20 |
| - ], function(jQuery){ |
21 |
| - |
22 |
| -//<![CDATA[ |
23 |
| - |
24 |
| -// TODO: cleanup this script. It was copypasted from catalog/category/tree |
25 |
| - |
26 |
| -var tree; |
27 |
| - |
28 |
| -/** |
29 |
| - * Fix ext compatibility with prototype 1.6 |
30 |
| - */ |
31 |
| -Ext.lib.Event.getTarget = function(e) { |
32 |
| - var ee = e.browserEvent || e; |
33 |
| - return ee.target ? Event.element(ee) : null; |
34 |
| -}; |
35 |
| - |
36 |
| -Ext.tree.TreePanel.Enhanced = function(el, config) |
37 |
| -{ |
38 |
| - Ext.tree.TreePanel.Enhanced.superclass.constructor.call(this, el, config); |
39 |
| -}; |
40 |
| - |
41 |
| -Ext.extend(Ext.tree.TreePanel.Enhanced, Ext.tree.TreePanel, { |
42 |
| - |
43 |
| - loadTree : function(config, firstLoad) |
44 |
| - { |
45 |
| - var parameters = config['parameters']; |
46 |
| - var data = config['data']; |
47 |
| - |
48 |
| - if ((typeof parameters['root_visible']) != 'undefined') { |
49 |
| - this.rootVisible = parameters['root_visible']*1; |
50 |
| - } |
51 |
| - |
52 |
| - var root = new Ext.tree.TreeNode(parameters); |
53 |
| - |
54 |
| - this.nodeHash = {}; |
55 |
| - this.setRootNode(root); |
56 |
| - |
57 |
| - if (firstLoad) { |
58 |
| - this.addListener('click', this.categoryClick.createDelegate(this)); |
59 |
| - } |
60 |
| - |
61 |
| - this.loader.buildCategoryTree(root, data); |
62 |
| - this.el.dom.innerHTML = ''; |
63 |
| - // render the tree |
64 |
| - this.render(); |
65 |
| - }, |
66 |
| - |
67 |
| - categoryClick : function(node, e) |
68 |
| - { |
69 |
| - node.getUI().check(!node.getUI().checked()); |
70 |
| - } |
71 |
| -}); |
72 |
| - |
73 |
| -jQuery(function() |
74 |
| -{ |
75 |
| - var categoryLoader = new Ext.tree.TreeLoader({ |
76 |
| - dataUrl: '<?= /* @escapeNotVerified */ $block->getLoadTreeUrl() ?>' |
77 |
| - }); |
78 | 16 |
|
79 |
| - categoryLoader.createNode = function(config) { |
80 |
| - config.uiProvider = Ext.tree.CheckboxNodeUI; |
81 |
| - var node; |
82 |
| - var _node = Object.clone(config); |
83 |
| - if (config.children && !config.children.length) { |
84 |
| - delete(config.children); |
85 |
| - node = new Ext.tree.AsyncTreeNode(config); |
86 |
| - } else { |
87 |
| - node = new Ext.tree.TreeNode(config); |
88 |
| - } |
89 |
| - |
90 |
| - return node; |
91 |
| - }; |
92 |
| - |
93 |
| - categoryLoader.buildCategoryTree = function(parent, config) |
94 |
| - { |
95 |
| - if (!config) return null; |
96 |
| - |
97 |
| - if (parent && config && config.length){ |
98 |
| - for (var i = 0; i < config.length; i++) { |
99 |
| - config[i].uiProvider = Ext.tree.CheckboxNodeUI; |
100 |
| - var node; |
101 |
| - var _node = Object.clone(config[i]); |
102 |
| - if (_node.children && !_node.children.length) { |
103 |
| - delete(_node.children); |
104 |
| - node = new Ext.tree.AsyncTreeNode(_node); |
105 |
| - } else { |
106 |
| - node = new Ext.tree.TreeNode(config[i]); |
107 |
| - } |
108 |
| - parent.appendChild(node); |
109 |
| - node.loader = node.getOwnerTree().loader; |
110 |
| - if (_node.children) { |
111 |
| - this.buildCategoryTree(node, _node.children); |
112 |
| - } |
113 |
| - } |
114 |
| - } |
115 |
| - }; |
116 |
| - |
117 |
| - categoryLoader.buildHash = function(node) |
118 |
| - { |
119 |
| - var hash = {}; |
120 |
| - |
121 |
| - hash = this.toArray(node.attributes); |
122 |
| - |
123 |
| - if (node.childNodes.length>0 || (node.loaded==false && node.loading==false)) { |
124 |
| - hash['children'] = new Array; |
125 |
| - |
126 |
| - for (var i = 0, len = node.childNodes.length; i < len; i++) { |
127 |
| - if (!hash['children']) { |
128 |
| - hash['children'] = new Array; |
129 |
| - } |
130 |
| - hash['children'].push(this.buildHash(node.childNodes[i])); |
131 |
| - } |
132 |
| - } |
133 |
| - |
134 |
| - return hash; |
135 |
| - }; |
136 |
| - |
137 |
| - categoryLoader.toArray = function(attributes) { |
138 |
| - var data = {}; |
139 |
| - for (var key in attributes) { |
140 |
| - var value = attributes[key]; |
141 |
| - data[key] = value; |
142 |
| - } |
143 |
| - |
144 |
| - return data; |
145 |
| - }; |
146 |
| - |
147 |
| - categoryLoader.on("beforeload", function(treeLoader, node) { |
148 |
| - treeLoader.baseParams.id = node.attributes.id; |
149 |
| - }); |
150 |
| - |
151 |
| - categoryLoader.on("load", function(treeLoader, node, config) { |
152 |
| - varienWindowOnload(); |
153 |
| - }); |
154 |
| - |
155 |
| - tree = new Ext.tree.TreePanel.Enhanced('<?= /* @escapeNotVerified */ $_divId ?>', { |
156 |
| - animate: false, |
157 |
| - loader: categoryLoader, |
158 |
| - enableDD: false, |
159 |
| - containerScroll: true, |
160 |
| - selModel: new Ext.tree.CheckNodeMultiSelectionModel(), |
161 |
| - rootVisible: '<?= /* @escapeNotVerified */ $block->getRoot()->getIsVisible() ?>', |
162 |
| - useAjax: <?= /* @escapeNotVerified */ $block->getUseAjax() ?>, |
163 |
| - currentNodeId: <?= (int) $block->getCategoryId() ?>, |
164 |
| - addNodeTo: false, |
165 |
| - rootUIProvider: Ext.tree.CheckboxNodeUI |
166 |
| - }); |
167 |
| - |
168 |
| - tree.on('check', function(node, checked) { |
169 |
| - <?= /* @escapeNotVerified */ $block->getJsFormObject() ?>.updateElement.value = this.getChecked().join(', '); |
170 |
| - varienElementMethods.setHasChanges(node.getUI().checkbox); |
171 |
| - }, tree); |
172 |
| - |
173 |
| - // set the root node |
174 |
| - var parameters = { |
175 |
| - text: '<?= /* @escapeNotVerified */ htmlentities($block->getRoot()->getName()) ?>', |
176 |
| - draggable: false, |
177 |
| - checked:'<?= /* @escapeNotVerified */ $block->getRoot()->getChecked() ?>', |
178 |
| - uiProvider: Ext.tree.CheckboxNodeUI, |
179 |
| - allowDrop: <?php if ($block->getRoot()->getIsVisible()): ?>true<?php else : ?>false<?php endif; ?>, |
180 |
| - id: <?= (int) $block->getRoot()->getId() ?>, |
181 |
| - expanded: <?= (int) $block->getIsWasExpanded() ?>, |
182 |
| - category_id: <?= (int) $block->getCategoryId() ?> |
183 |
| - }; |
184 |
| - |
185 |
| - tree.loadTree({parameters:parameters, data:<?= /* @escapeNotVerified */ $block->getTreeJson() ?>},true); |
186 |
| - |
187 |
| -}); |
188 |
| -//]]> |
189 |
| - |
190 |
| -}); |
| 17 | +<script> |
| 18 | + require(["Magento_Catalog/js/category-checkbox-tree"], function (element) { |
| 19 | + element({ |
| 20 | + "dataUrl": "<?= /* @escapeNotVerified */ $block->getLoadTreeUrl() ?>" , |
| 21 | + "divId": "<?= /* @escapeNotVerified */$_divId ?>", |
| 22 | + "rootVisible": <?php if ($block->getRoot()->getIsVisible()): ?>true<?php else : ?>false<?php endif; ?>, |
| 23 | + "useAjax": <?= /* @escapeNotVerified */ $block->getUseAjax() ?>, |
| 24 | + "currentNodeId": <?= (int)$block->getCategoryId() ?>, |
| 25 | + "jsFormObject": <?= /* @escapeNotVerified */ $block->getJsFormObject() ?>, |
| 26 | + "name": "<?= /* @escapeNotVerified */ htmlentities($block->getRoot()->getName()) ?>", |
| 27 | + "checked": "<?= /* @escapeNotVerified */ $block->getRoot()->getChecked() ?>", |
| 28 | + "allowDrop": <?php if ($block->getRoot()->getIsVisible()): ?>true<?php else : ?>false<?php endif; ?>, |
| 29 | + "rootId": <?= (int)$block->getRoot()->getId() ?>, |
| 30 | + "expanded": <?= (int)$block->getIsWasExpanded() ?>, |
| 31 | + "categoryId": <?= (int)$block->getCategoryId() ?>, |
| 32 | + "treeJson": <?= /* @escapeNotVerified */ $block->getTreeJson() ?> |
| 33 | + }); |
| 34 | + }) |
191 | 35 | </script>
|
0 commit comments