1919
2020define ( [
2121 'jquery' ,
22- 'prototype' ,
2322 'jquery/jstree/jquery.jstree' ,
2423 'mage/adminhtml/form'
2524] , function ( $ ) {
@@ -33,7 +32,7 @@ define([
3332 */
3433 function addLastNodeProperty ( nodes ) {
3534 return nodes . map ( node => {
36- return node . children && node . children . length >= 0 ? {
35+ return node . children ? {
3736 ...node ,
3837 children : addLastNodeProperty ( node . children )
3938 } : {
@@ -78,12 +77,13 @@ define([
7877 * @param {Object } node
7978 */
8079 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 ) ) ;
8282
83- if ( selectChildrenNodes . length <= 0 ) {
84- return ;
83+ if ( selectChildrenNodes . length > 0 ) {
84+ treeId . jstree ( false ) . select_node ( selectChildrenNodes ) ;
85+ }
8586 }
86- treeId . jstree ( false ) . select_node ( selectChildrenNodes ) ;
8787 }
8888
8989 /**
@@ -132,6 +132,8 @@ define([
132132
133133 /**
134134 * Add lastNode property to child who doesn't have children property
135+ *
136+ * @param {Object } treeData
135137 */
136138 function addLastNodeFlag ( treeData ) {
137139 if ( treeData . children ) {
@@ -143,6 +145,10 @@ define([
143145
144146 /**
145147 * Function to handle the 'success' callback of the AJAX request
148+ *
149+ * @param {Array } response
150+ * @param {Object } childNode
151+ * @param {Object } data
146152 */
147153 function handleSuccessResponse ( response , childNode , data ) {
148154 if ( response . length > 0 ) {
@@ -201,12 +207,12 @@ define([
201207 if ( data . action === 'ready' ) {
202208 return ;
203209 }
204- let clickedNodeID = data . node . id ;
210+ const clickedNodeID = data . node . id , currentCheckedNodes = data . instance . get_checked ( ) ;
205211
206212 if ( data . action === 'select_node' && ! checkedNodes . includes ( clickedNodeID ) ) {
207- checkedNodes . push ( clickedNodeID ) ;
213+ checkedNodes = currentCheckedNodes ;
208214 } else if ( data . action === 'deselect_node' ) {
209- checkedNodes = checkedNodes . filter ( ( nodeID ) => nodeID !== clickedNodeID ) ;
215+ checkedNodes = currentCheckedNodes . filter ( ( nodeID ) => nodeID !== clickedNodeID ) ;
210216 }
211217 checkedNodes . sort ( ( a , b ) => a - b ) ;
212218
0 commit comments