This commit is contained in:
Jan Prochazka 2022-12-30 10:30:38 +01:00
parent 646a83b288
commit 380ab2e69e
5 changed files with 25 additions and 11 deletions

View File

@ -51,7 +51,7 @@ function addObjectToColumns(columns: PerspectiveDataPatternColumn[], row) {
if (!column.types.includes(type)) {
column.types.push(type);
}
if (_isPlainObject(value)) {
if (_isPlainObject(value) && type != 'oid') {
addObjectToColumns(column.columns, value);
}
if (_isArray(value)) {

View File

@ -54,7 +54,7 @@ export class PerspectiveDataProvider {
...props,
bindingValues: uncached,
});
// console.log('COUNTS', counts);
// console.log('loadDataNested COUNTS', counts);
for (const resetItem of uncached) {
tableCache.storeGroupSize(props, resetItem, 0);
}

View File

@ -1248,7 +1248,7 @@ export class PerspectiveCustomJoinTreeNode extends PerspectiveTableNode {
}
matchChildRow(parentRow: any, childRow: any): boolean {
// console.log('MATCH ROW', parentRow, childRow);
console.log('MATCH ROW', parentRow, childRow);
for (const column of this.customJoin.columns) {
if (parentRow[getPerspectiveMostNestedChildColumnName(column.baseColumnName)] != childRow[column.refColumnName]) {
return false;

View File

@ -79,8 +79,12 @@
const lastVisibleRowIndexRef = createRef(0);
const disableLoadNextRef = createRef(false);
// Essential function !!
// Fills nested data into parentRows (assigns into array parentRows[i][node.fieldName])
// eg. when node is CustomJoinTreeNode, loads data from data provider
async function loadLevelData(node: PerspectiveTreeNode, parentRows: any[], counts) {
/// console.log('loadLevelData', node, parentRows, counts);
// console.log('loadLevelData', node.codeName, node.fieldName, parentRows);
// console.log('COUNTS', node.codeName, counts);
dbg('load level data', counts);
// const loadProps: PerspectiveDataLoadPropsWithNode[] = [];
const loadChildNodes = [];
@ -115,6 +119,9 @@
incompleteRowsIndicator: [node.designerId],
});
}
} else {
// this is needed for nested call
rows = _.compact(_.flatten(parentRows.map(x => x[node.fieldName])));
}
// console.log('TESTING NODE', node);
@ -127,14 +134,21 @@
// if (child.preloadedLevelData) console.log('LOADING CHILD DATA', rows);
// console.log(child.preloadedLevelData, child);
// console.log('LOADING FOR CHILD', child.codeName, child.columnName, child);
// console.log('ROWS', child.preloadedLevelData ? parentRows : rows);
// console.log('CALL CHILD', child.codeName, rows, parentRows);
await loadLevelData(
child,
child.preloadedLevelData
? _.compact(_.flatten(parentRows.map(x => x[child.columnName])))
: node.preloadedLevelData
? parentRows
: rows,
rows,
// node.preloadedLevelData
// ? _.compact(_.flatten(parentRows.map(x => x[child.columnName])))
// : child.preloadedLevelData
// ? parentRows
// : rows,
// child.preloadedLevelData
// ? _.compact(_.flatten(parentRows.map(x => x[child.columnName])))
// : node.preloadedLevelData
// ? parentRows
// : rows,
counts
);
// loadProps.push(child.getNodeLoadProps());

View File

@ -258,7 +258,7 @@ const driver = {
const count = await collection.countDocuments(convertObjectId(options.condition) || {});
return { count };
} else if (options.aggregate) {
let cursor = await collection.aggregate(options.aggregate);
let cursor = await collection.aggregate(convertObjectId(options.aggregate));
const rows = await cursor.toArray();
return { rows: rows.map(transformMongoData) };
} else {