Skip to content

Commit 95626aa

Browse files
author
Alexander Akimov
authored
Merge pull request #2121 from magento-panda/PANDA-FIXES-2.2
[PANDA] Bugfixes for 2.2
2 parents f9dd1b1 + eb12e9e commit 95626aa

File tree

32 files changed

+1101
-181
lines changed

32 files changed

+1101
-181
lines changed

app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/checkboxes/tree.phtml

Lines changed: 21 additions & 177 deletions
Original file line numberDiff line numberDiff line change
@@ -5,187 +5,31 @@
55
*/
66

77
// @codingStandardsIgnoreFile
8-
8+
/**
9+
* @var $block \Magento\Catalog\Block\Adminhtml\Category\Tree
10+
*/
911
?>
1012

1113
<?php $_divId = 'tree-div_' . time() ?>
1214
<div id="<?= /* @escapeNotVerified */ $_divId ?>" class="tree"></div>
1315
<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-
});
7816

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+
})
19135
</script>

0 commit comments

Comments
 (0)