19
19
20
20
define ( [
21
21
'jquery' ,
22
- 'prototype' ,
23
22
'jquery/jstree/jquery.jstree' ,
24
23
'mage/adminhtml/form'
25
24
] , function ( $ ) {
@@ -33,7 +32,7 @@ define([
33
32
*/
34
33
function addLastNodeProperty ( nodes ) {
35
34
return nodes . map ( node => {
36
- return node . children && node . children . length >= 0 ? {
35
+ return node . children ? {
37
36
...node ,
38
37
children : addLastNodeProperty ( node . children )
39
38
} : {
@@ -78,12 +77,13 @@ define([
78
77
* @param {Object } node
79
78
*/
80
79
function getCheckedNodeIds ( node ) {
81
- const selectChildrenNodes = node . children_d . filter ( item => checkedNodes . includes ( item ) ) ;
80
+ if ( node . children_d && node . children_d . length > 0 ) {
81
+ const selectChildrenNodes = node . children_d . filter ( item => checkedNodes . includes ( item ) ) ;
82
82
83
- if ( selectChildrenNodes . length <= 0 ) {
84
- return ;
83
+ if ( selectChildrenNodes . length > 0 ) {
84
+ treeId . jstree ( false ) . select_node ( selectChildrenNodes ) ;
85
+ }
85
86
}
86
- treeId . jstree ( false ) . select_node ( selectChildrenNodes ) ;
87
87
}
88
88
89
89
/**
@@ -132,6 +132,8 @@ define([
132
132
133
133
/**
134
134
* Add lastNode property to child who doesn't have children property
135
+ *
136
+ * @param {Object } treeData
135
137
*/
136
138
function addLastNodeFlag ( treeData ) {
137
139
if ( treeData . children ) {
@@ -143,6 +145,10 @@ define([
143
145
144
146
/**
145
147
* Function to handle the 'success' callback of the AJAX request
148
+ *
149
+ * @param {Array } response
150
+ * @param {Object } childNode
151
+ * @param {Object } data
146
152
*/
147
153
function handleSuccessResponse ( response , childNode , data ) {
148
154
if ( response . length > 0 ) {
@@ -201,12 +207,12 @@ define([
201
207
if ( data . action === 'ready' ) {
202
208
return ;
203
209
}
204
- let clickedNodeID = data . node . id ;
210
+ const clickedNodeID = data . node . id , currentCheckedNodes = data . instance . get_checked ( ) ;
205
211
206
212
if ( data . action === 'select_node' && ! checkedNodes . includes ( clickedNodeID ) ) {
207
- checkedNodes . push ( clickedNodeID ) ;
213
+ checkedNodes = currentCheckedNodes ;
208
214
} else if ( data . action === 'deselect_node' ) {
209
- checkedNodes = checkedNodes . filter ( ( nodeID ) => nodeID !== clickedNodeID ) ;
215
+ checkedNodes = currentCheckedNodes . filter ( ( nodeID ) => nodeID !== clickedNodeID ) ;
210
216
}
211
217
checkedNodes . sort ( ( a , b ) => a - b ) ;
212
218
0 commit comments