@@ -245,7 +245,7 @@ const DirectoryTreeView = () => {
245245 useEffect ( ( ) => {
246246 console . log ( treeData ) ;
247247 if ( treeData . length > 3 ) {
248- setExpandedIds ( [ 'datastore_folder' , '11785' ] ) ;
248+ setExpandedIds ( [ 'datastore_folder' ] ) ;
249249 // setKey(treeData.length + 1);
250250 }
251251 } , [ treeData ] ) ;
@@ -284,55 +284,101 @@ const DirectoryTreeView = () => {
284284 } ;
285285
286286 const onExpand = ( value ) => {
287- console . log ( value ) ;
287+ console . log ( value . element ) ;
288288 const tempData = treeData ;
289+ // if (value && value.element && value.element.id !== 'datastore_folder') {
290+ // API.get(`/api/automate/${value.element.name}?depth=-1`).then((newNodes) => {
291+ // console.log(newNodes);
292+ // const newChildren = [];
293+ // newNodes.resources.forEach((newNode) => {
294+ // if (value.element.id !== newNode.id) {
295+ // newChildren.
296+ // }
297+ // });
298+ // });
299+ // }
289300
301+ // if (value.element.metadata && value.element.metadata.fqname) {
302+ // console.log(value);
303+ // console.log('STOP');
304+ // }
290305 if ( value && value . element && value . element . id !== 'datastore_folder' ) {
291- API . get ( `/api/automate/${ value . element . name } ?depth=1` ) . then ( ( newNodes ) => {
306+ let path = value . element . name ;
307+ if ( value . element . metadata && value . element . metadata . fqname ) {
308+ path = value . element . metadata . fqname ;
309+ }
310+ API . get ( `/api/automate/${ path } ?depth=1` ) . then ( ( newNodes ) => {
292311 const newChildren = [ ] ;
293312 newNodes . resources . forEach ( ( newNode ) => {
294313 if ( value . element . id !== newNode . id ) {
295- newChildren . push ( {
296- id : newNode . id ,
297- name : newNode . name ,
298- children : [ ] ,
299- parent : value . element . id ,
300- metadata : { } ,
301- } ) ;
314+ if ( newNode . klass !== 'MiqAeClass' ) {
315+ newChildren . push ( {
316+ id : newNode . id ,
317+ name : newNode . name ,
318+ children : [ `${ newNode . id } _child_placeholder` ] ,
319+ parent : value . element . id ,
320+ metadata : { fqname : newNode . fqname } ,
321+ } ) ;
322+ newChildren . push ( {
323+ id : `${ newNode . id } _child_placeholder` ,
324+ name : 'Loading' ,
325+ children : [ ] ,
326+ parent : newNode . id ,
327+ metadata : { } ,
328+ } ) ;
329+ } else {
330+ newChildren . push ( {
331+ id : newNode . id ,
332+ name : newNode . name ,
333+ children : [ ] ,
334+ parent : value . element . id ,
335+ metadata : { fqname : newNode . fqname } ,
336+ } ) ;
337+ }
302338 }
303339 } ) ;
304- console . log ( newChildren ) ;
305340 return newChildren ;
306341 } ) . then ( ( newChildrenArray ) => {
307- console . log ( newChildrenArray ) ;
308342 const tempIdsArray = treeIds ;
309343 newChildrenArray . forEach ( ( node ) => {
310344 if ( ! treeIds . includes ( node . id ) ) {
311345 tempIdsArray . push ( node . id ) ;
312346 tempData . forEach ( ( parentNode ) => {
313347 if ( parentNode . id === node . parent ) {
348+ setExpandedIds ( [ ...expandedIds , value . element . id ] ) ;
314349 const childrenNodesToKeep = [ ] ;
315350 parentNode . children . forEach ( ( child ) => {
316- console . log ( typeof child === 'string' ) ;
317- console . log ( child ) ;
318351 if ( typeof child === 'string' ) {
319352 childrenNodesToKeep . push ( child ) ;
320353 }
321354 } ) ;
322- console . log ( childrenNodesToKeep ) ;
323355 parentNode . children = childrenNodesToKeep ;
324- parentNode . children = parentNode . children . concat ( node . id ) ;
356+ if ( parentNode . children . length >= 1 ) {
357+ parentNode . children . forEach ( ( child ) => {
358+ if ( child . includes ( '_placeholder' ) ) {
359+ parentNode . children . shift ( ) ;
360+ }
361+ } ) ;
362+ }
363+ if ( ! parentNode . children . includes ( node . id ) ) {
364+ parentNode . children = parentNode . children . concat ( node . id ) ;
365+ }
366+ if ( node . id . includes ( '_placeholder' ) ) {
367+ // console.log(node);
368+ // console.log(parentNode);
369+ // console.log(value);
370+ }
325371 }
326372 } ) ;
327373 tempData . push ( node ) ;
328- console . log ( tempData ) ;
329374 setTreeIds ( tempIdsArray ) ;
330375 setTreeData ( tempData ) ;
331376 setKey ( Math . random ( ) ) ;
332377 }
333378 } ) ;
334379 } ) ;
335380 }
381+
336382 // if (value && value.element && value.element.id === 'datastore_folder') {
337383 // const ids = value.element.id.split('_');
338384 // if (ids.includes('folder')) {
0 commit comments