- π¨π¦Canada Liam Morland Ontario, CA π¨π¦
Another related problem at would be solved by this: The paging is done in
NodeController::getRevisionIds()
; that returns 50 revisions at a time. Then in::revisionOverview()
, some of the revisions may be skipped. This can result in an empty results page. I've seen a pager with several pages, but only two revisions that actually appear anywhere. - Status changed to Postponed: needs info
2 months ago 12:17am 31 March 2025 - π¦πΊAustralia acbramley
Is this something we still can/want to/should consider?
- π¬π§United Kingdom catch
I think we should do this.
A language selector would allow for a closer equivalent to the current behaviour for people that need it, but the page just does not properly work as it currently is, so I think we could open a separate issue to add that, and keep things simple here.
- π¦πΊAustralia acbramley
Added related/dupe issues for core and Diff. I think the main issue here is the
isRevisionTranslationAffected
check.The generic revision UI also has this same check in VersionHistoryController::loadRevisions. Whatever fix we do for Node should apply there too.
Agreed that we should keep this one simple and potentially add a language filter in another issue if needed.
- π¦πΊAustralia acbramley
These conditions were added in #2465907: Node revision UI reverts multiple languages when only one language should be reverted β so it will be crucial we don't regress on that bug
Commit https://git.drupalcode.org/project/drupal/-/commit/7940793ae0bbfdb64fb5e...
- π¦πΊAustralia acbramley
After debugging this more it's clear that the current code is definitely masking some pretty weird issues.
E.g set up the following:
1. Install standard
2. Install content_translation module
3. Add another language (e.g Dutch)
4. Edit Basic page content type and mark it translatable
5. Create a node, then translate it to the new language, adding a revision log of "create LANGUAGE revision".At this point this will create 2 new revisions - one for English and one for Dutch. The English one will be marked with
revision_translation_affected = NULL
The node_revision table will have 2 records, but node_field_revision will have 3. 2 of those will be for vid 2, one for each language. Vid 2 for english will have values copied from vid 1 (i.e created/changed dates).
Since the revision_log field is not translateable, the node_revision table will have "create LANGUAGE revision" for vid 2, which is the default revision for english.6. Go to node/1/revisions (i.e the English revisions page). You'll see 1 revision marked as current, but this is actually revision 1. You won't see a revision log message, which IMO is incorrect. The reason this is incorrectly shown as the current revision is because of this code:
// We treat also the latest translation-affecting revision as current // revision, if it was the default revision, as its values for the // current language will be the same of the current default revision in // this case. $is_current_revision = $revision->isDefaultRevision() || (!$current_revision_displayed && $revision->wasDefaultRevision());
- Merge request !12274Issue #2722307: Filter revisions by langcode, remove conditions for showing revisions β (Open) created by acbramley
- Status changed to Needs review
2 days ago 2:11am 30 May 2025 - π¦πΊAustralia acbramley
This is green now.
Want to get a review on the code changes before going ahead with a full IS update + CR.
- πΊπΈUnited States smustgrave
Can the summary be updated with whatβs being proposed? Do we want a page with all revisions loaded? What if itβs 1000s of revisions