[Studio] Fix blank unit selection for the static Quantity Value transformer - #682
Open
ValeriaMaltseva wants to merge 5 commits into
Open
[Studio] Fix blank unit selection for the static Quantity Value transformer#682ValeriaMaltseva wants to merge 5 commits into
ValeriaMaltseva wants to merge 5 commits into
Conversation
…former The unit select of the Quantity Value transformer was always empty when the unit source was set to "Static". `UnitDataResponse` documented its list under the OpenAPI property name `UnitList`, while the serializer emits the actual property name `unitList`. The generated API client therefore typed the response as `UnitList` and the transformer form read `unitData?.UnitList`, which was always undefined. The schema annotation was already corrected to `unitList`, but the committed OpenAPI snapshot and the generated client still carried the old name, so the type checker agreed with the broken access. Refresh the snapshot property, regenerate the client and read `unitList` in the transformer form. Consumers that worked around this by renaming `unitList` back to `UnitList` in the response must drop that workaround. Fixes pimcore/platform-version#148 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Fixes static Quantity Value unit selection by aligning the OpenAPI client and UI with the serialized unitList property.
Changes:
- Corrects
UnitListtounitList. - Adds DTO serialization/schema regression tests.
- Regenerates Studio frontend artifacts and manifests.
Reviewed changes
Copilot reviewed 11 out of 32 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
assets/studio/build/api/docs.jsonopenapi.json |
Corrects the schema property name. |
assets/studio/js/src/modules/data-importer/data-importer-api-slice.gen.ts |
Regenerates the API response type. |
assets/studio/js/src/modules/data-importer/dynamic-types/transformer/quantity-value/quantity-value-transformer-form.tsx |
Reads units from unitList. |
tests/unit/UnitDataResponseTest.php |
Tests schema and serialization consistency. |
src/Resources/public/studio/build/a0ef.../entrypoints.json |
Adds regenerated entrypoints. |
src/Resources/public/studio/build/a0ef.../exposeRemote.js |
Updates the remote bundle path. |
src/Resources/public/studio/build/a0ef.../main.html |
Updates generated script paths. |
src/Resources/public/studio/build/a0ef.../manifest.json |
Adds the regenerated asset manifest. |
src/Resources/public/studio/build/a0ef.../mf-manifest.json |
Updates federation metadata. |
src/Resources/public/studio/build/a0ef.../mf-stats.json |
Updates federation statistics. |
src/Resources/public/studio/build/a0ef.../static/js/remoteEntry.js |
Regenerates the federation entry. |
src/Resources/public/studio/build/a0ef.../static/js/remoteEntry.js.LICENSE.txt |
Adds generated licenses. |
src/Resources/public/studio/build/a0ef.../static/js/main.827b06d5.js.LICENSE.txt |
Adds generated license metadata. |
src/Resources/public/studio/build/a0ef.../static/js/109.4563ef16.js.LICENSE.txt |
Adds generated licenses. |
src/Resources/public/studio/build/a0ef.../static/js/async/67.8469aaea.js |
Adds generated dependency chunk. |
src/Resources/public/studio/build/a0ef.../static/js/async/67.8469aaea.js.LICENSE.txt |
Adds chunk licenses. |
src/Resources/public/studio/build/a0ef.../static/js/async/132.c328628b.js |
Adds generated dependency chunk. |
src/Resources/public/studio/build/a0ef.../static/js/async/272.5aa86da5.js |
Adds generated dependency chunk. |
src/Resources/public/studio/build/a0ef.../static/js/async/272.5aa86da5.js.LICENSE.txt |
Adds chunk licenses. |
src/Resources/public/studio/build/a0ef.../static/js/async/359.ef7a6289.js.LICENSE.txt |
Adds chunk licenses. |
src/Resources/public/studio/build/a0ef.../static/js/async/658.b1390ae9.js |
Adds generated dependency chunk. |
src/Resources/public/studio/build/a0ef.../static/js/async/668.1ae87f0f.js.LICENSE.txt |
Adds chunk licenses. |
src/Resources/public/studio/build/a0ef.../static/js/async/745.56a11b0d.js.LICENSE.txt |
Adds chunk licenses. |
src/Resources/public/studio/build/a0ef.../static/js/async/__federation_expose_default_export.619777ef.js.LICENSE.txt |
Adds generated license metadata. |
src/Resources/public/studio/build/9d52.../entrypoints.json |
Removes obsolete entrypoints. |
src/Resources/public/studio/build/9d52.../manifest.json |
Removes the obsolete manifest. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
The committed OpenAPI snapshot predated several `#[Property]` annotations in the bundle's schema classes. The generated API client therefore carried no descriptions for `currentConfig.label` and `userPermissions.update`/`delete`, and typed `dataPreview.data` as `any`. Refresh only the `BundleDataImporter*` schemas in the snapshot — 21 additions, all property descriptions and examples plus the `dataPreview.data` string type — and regenerate the client. Nothing outside the data-importer schemas is touched, so the snapshot keeps its existing 403 paths and 369 components. `CalculateTransformationResultTypeParameters::$currentConfig` documents `dataSourceIndex` items as `integer`, which contradicts both the frontend (string column identifiers throughout) and the bundle's own `ColumnHeadersResponse`, where `id` and `dataIndex` are `string`. That one property is deliberately left un-refreshed so `dataSourceIndex` stays `any` until the annotation itself is corrected. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Problem
The unit select of the Quantity Value transformer is always empty when Unit source is set to Static.
Fixes pimcore/platform-version#148
Root cause
UnitDataResponsedocumented its list under the OpenAPI property nameUnitList, while theserializer emits the actual property name —
unitList:The generated API client therefore typed the response as
UnitList, andquantity-value-transformer-form.tsxreadunitData?.UnitList, which was alwaysundefined→empty option list → blank select.
The schema annotation was already corrected to
unitListin 307aeb9 (documented in the 2026.2upgrade guide under API Schema Changes), but the committed OpenAPI snapshot and the generated
client still carried the old name — so the type checker agreed with the broken access and never
flagged it.
Change
assets/studio/build/api/docs.jsonopenapi.json— snapshot propertyUnitList→unitListdata-importer-api-slice.gen.ts— regenerated vianpm run build-api-client(one-line diff, no drift)quantity-value-transformer-form.tsx— readsunitData?.unitListtests/unit/UnitDataResponseTest.php— regression test: the documented OpenAPI property name mustmatch the key the serializer actually emits
Verification
npm run check-typesfailed exactly at the bug site(
Property 'UnitList' does not exist on type 'BundleDataImporterUnitDataResponse'. Did you mean 'unitList'?).npm run check-typesandnpm run lintare clean.fails with
missing: UnitListagainst a replica of the pre-fix schema.credentials) — CI validates it.
Manual test
Data Importer config → mapping to a Quantity Value field → add the Quantity Value transformer →
set Unit source to Static → the Unit select lists all quantity-value units and is searchable.
Note for consumers
Anyone who worked around this by renaming
unitListback toUnitListin the response (see theissue comment) must drop that workaround.
Follow-up
2026.xcarries the identical staleUnitListin both files — covered by the usual2026.2 → 2026.xforward-merge after this lands.