|
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