Skip to content

Add missing Asset\Image focalPoints - #1010

Open
blankse wants to merge 3 commits into
pimcore:2026.xfrom
blankse:missing_focal_points
Open

Add missing Asset\Image focalPoints#1010
blankse wants to merge 3 commits into
pimcore:2026.xfrom
blankse:missing_focal_points

Conversation

@blankse

@blankse blankse commented Nov 27, 2025

Copy link
Copy Markdown
Contributor

Adds a new focalPoints field to the GraphQL Asset\Image type, exposing the image's focal point as x and y coordinates.

The values are resolved from the asset's custom settings (focalPointX / focalPointY) via the new resolveFocalPoints resolver. The field resolves to null for non-image assets and for images without a focal point: returning an array of nulls would make graphql-php's default field resolver resolve every subfield on its own, so the response would contain focalPoints: {x: null, y: null} instead of focalPoints: null. The coordinates are cast to float to match the declared Float fields.

Covered by tests/GraphQL/Resolver/AssetTypeFocalPointsTest.php.

Retargeted from 2026.2 to 2026.x, since this is a new field rather than a bug fix.

@sonarqubecloud

Copy link
Copy Markdown

@blankse
blankse force-pushed the missing_focal_points branch from 4d7b860 to 4d7d597 Compare June 9, 2026 12:47
@blankse
blankse changed the base branch from 1.9 to 2026.1 June 9, 2026 12:47
@sonarqubecloud

sonarqubecloud Bot commented Jun 9, 2026

Copy link
Copy Markdown

@robertSt7
robertSt7 changed the base branch from 2026.1 to 2026.2 July 9, 2026 13:17
Copilot AI review requested due to automatic review settings July 22, 2026 16:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds focal-point coordinates to GraphQL assets while also regenerating Studio frontend artifacts.

Changes:

  • Adds focalPoints { x, y } to the asset GraphQL schema.
  • Resolves coordinates from image custom settings.
  • Replaces and duplicates generated Studio builds.

Reviewed changes

Copilot reviewed 24 out of 46 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/GraphQL/Resolver/AssetType.php Adds focal-point resolver.
src/GraphQL/AssetType/AssetType.php Adds focal-point GraphQL type and field.
src/Resources/public/studio/build/785fd5b2-5311-4070-9fc4-81949c904ac6/manifest.json Removes old build manifest.
src/Resources/public/studio/build/785fd5b2-5311-4070-9fc4-81949c904ac6/entrypoints.json Removes old entrypoints.
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/remoteEntry.js.LICENSE.txt Adds generated license notices.
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/main.9c3ad8a2.js.LICENSE.txt Adds generated license notice.
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/async/840.4693a4bb.js.LICENSE.txt Adds dependency licenses.
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/async/696.3b1d6da3.js.LICENSE.txt Adds generated license notice.
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/async/696.3b1d6da3.js Adds generated Studio chunk.
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/async/__federation_expose_plugins.c4cf01bd.js.LICENSE.txt Adds plugin chunk license.
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/async/__federation_expose_plugins.c4cf01bd.js Adds generated plugin chunk.
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/async/__federation_expose_default_export.87553f32.js.LICENSE.txt Adds SDK chunk license.
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/async/__federation_expose_default_export.87553f32.js Adds generated SDK chunk.
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/109.62a4c31b.js.LICENSE.txt Adds React license notices.
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/mf-stats.json Updates build public path.
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/mf-manifest.json Updates federation public path.
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/manifest.json Adds generated asset manifest.
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/main.html Adds generated HTML entry.
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/exposeRemote.js Registers generated remote.
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/entrypoints.json Adds conflicting build entrypoints.
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/remoteEntry.js.LICENSE.txt Adds generated license notices.
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/main.9c3ad8a2.js.LICENSE.txt Adds generated license notice.
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/async/840.b584be96.js.LICENSE.txt Adds dependency licenses.
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/async/499.4aead98c.js.LICENSE.txt Adds generated license notice.
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/async/499.4aead98c.js Adds generated Studio chunk.
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/async/__federation_expose_plugins.85a68c1a.js.LICENSE.txt Adds plugin chunk license.
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/async/__federation_expose_default_export.062d3a0b.js.LICENSE.txt Adds SDK chunk license.
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/async/__federation_expose_default_export.062d3a0b.js Adds generated SDK chunk.
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/109.62a4c31b.js.LICENSE.txt Adds React license notices.
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/mf-stats.json Adds federation build statistics.
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/mf-manifest.json Adds federation manifest.
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/manifest.json Adds generated asset manifest.
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/main.html Updates generated HTML paths.
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/exposeRemote.js Updates remote bundle path.
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/entrypoints.json Adds generated entrypoints.
Files not reviewed (3)
  • src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/async/499.4aead98c.js: Generated file
  • src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/async/__federation_expose_default_export.062d3a0b.js: Generated file
  • src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/async/__federation_expose_plugins.85a68c1a.js: Generated file

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@blankse
blankse force-pushed the missing_focal_points branch from 4883d20 to ba87899 Compare July 22, 2026 17:04
@sonarqubecloud

Copy link
Copy Markdown

blankse and others added 2 commits September 7, 2026 15:44
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Returning an array of nulls made graphql-php's default field resolver
resolve every subfield on its own, so the response contained
{x: null, y: null} instead of null. Cast the custom settings to float
to match the declared Float fields and cover the resolver with tests.
@blankse
blankse force-pushed the missing_focal_points branch from 5c8e127 to 29b126a Compare September 7, 2026 13:56
@blankse
blankse changed the base branch from 2026.2 to 2026.x September 7, 2026 13:56
@sonarqubecloud

sonarqubecloud Bot commented Sep 7, 2026

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants