Skip to content

Commit 4da88cd

Browse files
committed
feat
1 parent 0f4bfc4 commit 4da88cd

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

src/dashboard/Data/Browser/DataBrowser.react.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1031,6 +1031,12 @@ export default class DataBrowser extends React.Component {
10311031

10321032
const menuItems = [];
10331033

1034+
// Add "Get related records from..." menu item
1035+
const relatedRecordsMenuItem = this.getRelatedObjectsMenuItemForPanel(objectId, className);
1036+
if (relatedRecordsMenuItem) {
1037+
menuItems.push(relatedRecordsMenuItem);
1038+
}
1039+
10341040
// Add Scripts menu if there are valid scripts
10351041
if (validScripts.length && this.props.onEditSelectedRow) {
10361042
menuItems.push({
@@ -1067,6 +1073,45 @@ export default class DataBrowser extends React.Component {
10671073
}
10681074
}
10691075

1076+
getRelatedObjectsMenuItemForPanel(objectId, pointerClassName) {
1077+
const { schema, onPointerClick } = this.props;
1078+
1079+
if (!pointerClassName || !schema || !onPointerClick) {
1080+
return undefined;
1081+
}
1082+
1083+
const relatedRecordsMenuItem = {
1084+
text: 'Get related records from...',
1085+
items: [],
1086+
};
1087+
1088+
schema.data
1089+
.get('classes')
1090+
.sortBy((v, k) => k)
1091+
.forEach((cl, className) => {
1092+
cl.forEach((column, field) => {
1093+
if (column.targetClass !== pointerClassName) {
1094+
return;
1095+
}
1096+
relatedRecordsMenuItem.items.push({
1097+
text: `${className}`,
1098+
subtext: `${field}`,
1099+
callback: () => {
1100+
const relatedObject = new Parse.Object(pointerClassName);
1101+
relatedObject.id = objectId;
1102+
onPointerClick({
1103+
className,
1104+
id: relatedObject.toPointer(),
1105+
field,
1106+
});
1107+
},
1108+
});
1109+
});
1110+
});
1111+
1112+
return relatedRecordsMenuItem.items.length ? relatedRecordsMenuItem : undefined;
1113+
}
1114+
10701115
freezeColumns(index) {
10711116
this.setState({ frozenColumnIndex: index });
10721117
}

0 commit comments

Comments
 (0)