From 4da88cd052e22d672bc4c5f4027b6e6465f59b5b Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Tue, 16 Dec 2025 15:13:41 +0100 Subject: [PATCH 1/4] feat --- .../Data/Browser/DataBrowser.react.js | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/src/dashboard/Data/Browser/DataBrowser.react.js b/src/dashboard/Data/Browser/DataBrowser.react.js index b55994347..cf7411b7a 100644 --- a/src/dashboard/Data/Browser/DataBrowser.react.js +++ b/src/dashboard/Data/Browser/DataBrowser.react.js @@ -1031,6 +1031,12 @@ export default class DataBrowser extends React.Component { const menuItems = []; + // Add "Get related records from..." menu item + const relatedRecordsMenuItem = this.getRelatedObjectsMenuItemForPanel(objectId, className); + if (relatedRecordsMenuItem) { + menuItems.push(relatedRecordsMenuItem); + } + // Add Scripts menu if there are valid scripts if (validScripts.length && this.props.onEditSelectedRow) { menuItems.push({ @@ -1067,6 +1073,45 @@ export default class DataBrowser extends React.Component { } } + getRelatedObjectsMenuItemForPanel(objectId, pointerClassName) { + const { schema, onPointerClick } = this.props; + + if (!pointerClassName || !schema || !onPointerClick) { + return undefined; + } + + const relatedRecordsMenuItem = { + text: 'Get related records from...', + items: [], + }; + + schema.data + .get('classes') + .sortBy((v, k) => k) + .forEach((cl, className) => { + cl.forEach((column, field) => { + if (column.targetClass !== pointerClassName) { + return; + } + relatedRecordsMenuItem.items.push({ + text: `${className}`, + subtext: `${field}`, + callback: () => { + const relatedObject = new Parse.Object(pointerClassName); + relatedObject.id = objectId; + onPointerClick({ + className, + id: relatedObject.toPointer(), + field, + }); + }, + }); + }); + }); + + return relatedRecordsMenuItem.items.length ? relatedRecordsMenuItem : undefined; + } + freezeColumns(index) { this.setState({ frozenColumnIndex: index }); } From 8f8331cec9fd42f1ac2196ec2a1c79ddda6613f6 Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Tue, 16 Dec 2025 15:14:35 +0100 Subject: [PATCH 2/4] tab --- src/dashboard/Data/Browser/DataBrowser.react.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/dashboard/Data/Browser/DataBrowser.react.js b/src/dashboard/Data/Browser/DataBrowser.react.js index cf7411b7a..e8ad15267 100644 --- a/src/dashboard/Data/Browser/DataBrowser.react.js +++ b/src/dashboard/Data/Browser/DataBrowser.react.js @@ -1074,9 +1074,9 @@ export default class DataBrowser extends React.Component { } getRelatedObjectsMenuItemForPanel(objectId, pointerClassName) { - const { schema, onPointerClick } = this.props; + const { schema, onPointerCmdClick } = this.props; - if (!pointerClassName || !schema || !onPointerClick) { + if (!pointerClassName || !schema || !onPointerCmdClick) { return undefined; } @@ -1099,7 +1099,7 @@ export default class DataBrowser extends React.Component { callback: () => { const relatedObject = new Parse.Object(pointerClassName); relatedObject.id = objectId; - onPointerClick({ + onPointerCmdClick({ className, id: relatedObject.toPointer(), field, From 7e49a09be866a639d9d57557488b193335b1d4dc Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Tue, 16 Dec 2025 15:27:07 +0100 Subject: [PATCH 3/4] Update DataBrowser.react.js --- src/dashboard/Data/Browser/DataBrowser.react.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/dashboard/Data/Browser/DataBrowser.react.js b/src/dashboard/Data/Browser/DataBrowser.react.js index e8ad15267..3fbf028f9 100644 --- a/src/dashboard/Data/Browser/DataBrowser.react.js +++ b/src/dashboard/Data/Browser/DataBrowser.react.js @@ -1097,11 +1097,9 @@ export default class DataBrowser extends React.Component { text: `${className}`, subtext: `${field}`, callback: () => { - const relatedObject = new Parse.Object(pointerClassName); - relatedObject.id = objectId; onPointerCmdClick({ className, - id: relatedObject.toPointer(), + id: objectId, field, }); }, From 9a2222a6fd5e348ec186d23ef82f321c0caf6be8 Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Tue, 16 Dec 2025 15:32:15 +0100 Subject: [PATCH 4/4] re-fix --- src/dashboard/Data/Browser/DataBrowser.react.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/dashboard/Data/Browser/DataBrowser.react.js b/src/dashboard/Data/Browser/DataBrowser.react.js index 0d3a789ac..5694d4b8c 100644 --- a/src/dashboard/Data/Browser/DataBrowser.react.js +++ b/src/dashboard/Data/Browser/DataBrowser.react.js @@ -1097,9 +1097,11 @@ export default class DataBrowser extends React.Component { text: `${className}`, subtext: `${field}`, callback: () => { + const relatedObject = new Parse.Object(pointerClassName); + relatedObject.id = objectId; onPointerCmdClick({ className, - id: objectId, + id: relatedObject.toPointer(), field, }); },