Opened 6 months ago
Last modified 4 hours ago
#57957 assigned defect (bug)
Media title falsely has kebab case when inserted via REST API (e.g. in Block Editor)
Reported by: |
|
Owned by: |
|
---|---|---|---|
Milestone: | 6.4 | Priority: | normal |
Severity: | major | Version: | 6.1.1 |
Component: | REST API | Keywords: | has-patch has-unit-tests reporter-feedback changes-requested |
Focuses: | rest-api | Cc: |
Description (last modified by )
Reproduction I: "Upload New Media" creates media title "My Great Photo"
1) Media > Add New
2) Drag-n-drop "My Great Photo.jpg"
3) Inspecting this in "Edit Media" shows a media title "My Great Photo".
Reproduction II: Insertion via Block Editor (Gutenberg) creates media title "My-Super-Photo"
1) Edit an existing page or create a new page.
2) Set the cursor into an empty block.
3) Drag-n-drop "My Super Photo.jpg" into this block. This automatically creates a media page behind the scenes.
4) Save the page.
5) Inspecting the media title via "Edit Media"
- Actual: The media title is "My-Super-Photo".
- Expected: The media title should be "My Super Photo".
- The media title should be the filename portion (without the suffix) in its purest possible form (UTF-8) and only the slug and filename should then be transformed according settings regarding ascii/whitespace/transliteration/escaping/punycode/etc.
- Achieving the same goal via different means (Upload New Media vs. drag-n-drop in editor) should result in the same outcome. Otherwise this is an inconsistency.
Analysis & Fix
@adamsilverstein already analyzed and fixed this bug in the Gutenberg issue tracker and asked to re-file here in WordPress Core for review & adding to the codebase.
Adam's Analysis
This is actually something that happens on the core side where the logic to set the title is currently different in the REST API vs. the regular media uploader.
Adam's Fix which should be reviewed
I proposed a fix in WordPress/wordpress-develop #3981 that works in my testing. Would be good to have some additional feedback, maybe from the REST API team.
Environment
- First reported on 2021-08-19 in WordPress v5.8 , confirmed/patched in 2023-02 on a WordPress v6.1.1 instance.
Priority
- If the fix is deemed solid and the review process goes quickly without bumps: Is there a chance that the fix can make it into the 6.2 release? If not, no worry, am happy whenever this will get eventually fixed.
References
- Gutenberg: Discussion and investigation details where it was determined to be a Core issue.
Attachments (1)
Change History (31)
This ticket was mentioned in PR #3981 on WordPress/wordpress-develop by @adamsilverstein.
6 months ago
#3
- Keywords has-patch added
Match the naming behavior for uploaded media in the REST API to the way media is named when uploading in the media library.
Fixes https://github.com/WordPress/gutenberg/issues/34149
Trac ticket: https://core.trac.wordpress.org/ticket/57957
#4
@
6 months ago
- Description modified (diff)
Adding a link to the original bug report from Gutenberg.
@hellofromTonya commented on PR #3981:
6 months ago
#5
Description updated. This PR is now linked to the Trac ticket ✅
@adamsilverstein are there existing unit tests to validate this fix? If no, would you mind adding tests?
#6
@
6 months ago
- Keywords needs-unit-tests added
@adamsilverstein are there existing unit tests to validate this fix? If no, would you mind adding tests?
Good suggestion @hellofromTonya, will do.
I'd also like to get some more REST API component maintainer feedback, maybe @TimothyBlynJacobs or @spacedmonkey can review?
@adamsilverstein commented on PR #3981:
6 months ago
#7
@adamsilverstein are there existing unit tests to validate this fix? If no, would you mind adding tests?
I'll take a look, thanks for the suggestion.
5 months ago
#8
Any idea when this will be ready?
And if it is ready, in which WP version will it be included?
Asking to estimate for myself whether my upcoming mass picture placement session can count on this feature already or whether I must use a workaround. Thanks.
This ticket was mentioned in Slack in #core by audrasjb. View the logs.
5 months ago
This ticket was mentioned in Slack in #core by audrasjb. View the logs.
5 months ago
#11
@
5 months ago
- Milestone changed from 6.2.1 to 6.2.2
Since WordPress 6.2.1 Release candidate 1 is planned today, let's move this ticket to 6.2.2 to give it more time to add unit test cases and proper testing.
#13
@
5 months ago
@abitofmind for the moment, this patch still needs unit tests.
Anyone is welcome to refresh the patch to add unit test cases, so this ticket could be considered for the next minor or major release.
#14
@
5 months ago
My question is: What's the challenge with the unit tests? And what timeline to expect roughly.
#15
@
5 months ago
No specific challenge, we are just waiting for someone wanting to handle them. No timeline for now as we're still waiting for these tests :)
#19
@
3 months ago
57957.diff includes a new unit test to validate the fix, also on the PR
@adamsilverstein commented on PR #3981:
3 months ago
#20
are there existing unit tests to validate this fix? If no, would you mind adding tests?
@hellofromtonya - tests added
#21
@
3 months ago
- Keywords has-unit-tests needs-testing reporter-feedback added; needs-unit-tests removed
@abitofmind - can you test if the latest patch fixes the issue for you?
#22
@
3 months ago
- Focuses rest-api added
- Owner set to adamsilverstein
- Status changed from new to assigned
#23
@
3 months ago
While the unit tests passed, this didn't actually work in Gutenberg as written: no "Content-Disposition" header is being passed.
Instead we can use the $files
data which contains the original filename of the uploaded file, from which we can extract the correct media title. I have updated the PR to use this approach.
This ticket was mentioned in Slack in #core-restapi by spacedmonkey. View the logs.
3 months ago
@spacedmonkey commented on PR #3981:
3 months ago
#25
Here is where this is handled elsewhere in core.
#26
@
8 weeks ago
- Milestone changed from 6.2.3 to 6.4
Moving to 6.4 for now, as there are no plans for 6.2.3 at this time, and this does not appear to be a regression in 6.3.
#27
@
7 weeks ago
What needs to happen next that we get progress?
- Must this whole issue be handled "elsewhere in core"?
- Or is this just a hint/reference to apply the same practices for this very issue?
Hello and thanks for the detailed ticket!
This is an annoying bug, but since it wasn't introduced in WP 6.2 development cycle and as we're about to release RC3, it's far too late to fix it during this cycle :)
We can of course fix it in 6.3, but we can also consider this for 6.2.1. For the moment, I'm moving it to 6.2.1 for visibility.