Skip to content

Commit 13b38f8

Browse files
Tree working
1 parent 2125e23 commit 13b38f8

File tree

2 files changed

+76
-17
lines changed

2 files changed

+76
-17
lines changed

app/javascript/components/automate-entry-points/index.jsx

Lines changed: 63 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -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')) {

yarn.lock

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11746,6 +11746,7 @@ __metadata:
1174611746
prop-types: "npm:^15.6.0"
1174711747
proxy-polyfill: "npm:^0.1.7"
1174811748
react: "npm:~16.13.1"
11749+
react-accessible-treeview: "npm:^2.10.0"
1174911750
react-bootstrap: "npm:~0.33.0"
1175011751
react-codemirror2: "npm:^6.0.0"
1175111752
react-dom: "npm:~16.13.1"
@@ -14560,6 +14561,18 @@ __metadata:
1456014561
languageName: node
1456114562
linkType: hard
1456214563

14564+
"react-accessible-treeview@npm:^2.10.0":
14565+
version: 2.10.0
14566+
resolution: "react-accessible-treeview@npm:2.10.0"
14567+
peerDependencies:
14568+
classnames: ^2.2.6
14569+
prop-types: ^15.7.2
14570+
react: ^16.8.0 || ^17.0.0 || ^18.0.0
14571+
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
14572+
checksum: 10/2bdd0a1b04534e386a9cfb1392a6c6d5ae75a13c84829d573a2b7e7188a4f7a2d2a51a80f089122d80d35f32b5d6ddbf1896fefe35f0b0974a29f58f541796f9
14573+
languageName: node
14574+
linkType: hard
14575+
1456314576
"react-bootstrap@npm:~0.33.0":
1456414577
version: 0.33.1
1456514578
resolution: "react-bootstrap@npm:0.33.1"

0 commit comments

Comments
 (0)