Skip to content

IBX-12039: Migrated versions tab tables to ibexa.Table component#1960

Open
ciastektk wants to merge 9 commits into
5.0from
ibx-12039-versions-table-column-provider
Open

IBX-12039: Migrated versions tab tables to ibexa.Table component#1960
ciastektk wants to merge 9 commits into
5.0from
ibx-12039-versions-table-column-provider

Conversation

@ciastektk

@ciastektk ciastektk commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

⚠️ Remove temp commit

Revert 2d7d50dd0 ([CI] Added temporary dev dependency on ibexa/twig-components) before merge.

🎫 Issue IBX-12039

Related PRs:

Description:

Rework of this PR after review feedback (thanks @ViniTou): instead of introducing a versions-specific column-provider mechanism, the Versions tab tables are migrated to the ibexa.Table TwigComponent — the same extension point already used by product-catalog and connector-quable. Any package contributes a column with a plain PostMountEvent subscriber; no second mechanism, no new public contracts.

  • VersionsTableSubscriber provides the core columns (checkbox, version, modified language, contributor, created, last saved, actions) from content/tab/versions/columns.html.twig blocks. Priorities 110–90 / 40–10; the 50–89 band is reserved for third-party columns.
  • All four render sites now mount the component: draft / published / archived tables in tab.html.twig and the draft-conflict modal. Forms, bulk-delete header tools, Pagerfanta pagination and the admin-ui-versions-table-before component group are preserved.
  • The headline is rendered through the component (headline prop), so subscribers may replace it (ibexa/workflow restores its "Drafts to review" headline this way).
  • The provider mechanism from the previous iteration of this PR is gone — it was never released, so there is no BC impact from removing it.

For QA:

On a content item with drafts, published and archived versions verify: bulk delete of drafts/archived (select-all, trash button enable, confirmation modal, POST to ibexa.version.remove), drafts pagination (page param + #ibexa-tab-location-view-versions fragment), draft-conflict modal table (no checkbox column, no "Created" column), per-row actions menu, archived restore. With ibexa/workflow enabled: "Workflow" column + "Drafts to review" headline on the drafts table for content in a workflow. With translations-management: "Translation status" column on drafts of auto-translated content.

Documentation:

Template BC breakcontent/tab/versions/table.html.twig is removed, together with its override blocks (custom_column_headers, custom_actions_column_headers, custom_columns, custom_actions_column) and the table_template_path variable. Projects that overrode this template or those blocks must migrate to a PostMountEvent subscriber adding a column to the ibexa.Table component (guard on Table::$type === 'versions'; see VersionsTableSubscriber and the workflow/TM subscribers as references). Needs an upgrade note on doc.ibexa.co.

@mnocon mnocon added the Doc needed The changes require some documentation label Jul 8, 2026

@ViniTou ViniTou 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.

Not going into details, but isnt this case covered by
ibexa/twig-components#25
?

@ciastektk
ciastektk force-pushed the ibx-12039-versions-table-column-provider branch from b46c4ca to 2d7d50d Compare July 9, 2026 07:33
@ciastektk ciastektk changed the title IBX-12039: Added table column extension point IBX-12039: Migrated versions tab tables to ibexa.Table component Jul 9, 2026

@bnowak bnowak 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.

looks good 💪 More likely, I'll reuse that part in async content publishing :)

don't forget to remove dependencies.json before merging 😉

'form' => $form,
'version' => $version,
]),
110,

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.

What is that value, priority/order? we could left some comment at least here 😉

as well as below

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed: 297421f

@ciastektk
ciastektk requested a review from ViniTou July 10, 2026 11:25
@mnocon

mnocon commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Hi! When talking with @Steveb-p about ibexa/twig-components#25 (ibexa/twig-components#25 (comment) , discussed on Quable daily ), the Table component was meant to be internal for now.

Given this, do you still think it needs to be mentioned in the doc somehow?

@ciastektk

ciastektk commented Jul 14, 2026

Copy link
Copy Markdown
Contributor Author

Hi! When talking with @Steveb-p about ibexa/twig-components#25 (ibexa/twig-components#25 (comment) , discussed on Quable daily ), the Table component was meant to be internal for now.

Given this, do you still think it needs to be mentioned in the doc somehow?

Hi! If there is some reasons that ibexa.Table component should be internal then IMO we should still not mention this component in the doc.

@mnocon mnocon removed the Doc needed The changes require some documentation label Jul 14, 2026
@juskora
juskora force-pushed the ibx-12039-versions-table-column-provider branch from 9e02f66 to a28d0d2 Compare July 14, 2026 12:52
@sonarqubecloud

Copy link
Copy Markdown

@Steveb-p

Copy link
Copy Markdown
Contributor

Hi! When talking with @Steveb-p about ibexa/twig-components#25 (ibexa/twig-components#25 (comment) , discussed on Quable daily ), the Table component was meant to be internal for now.
Given this, do you still think it needs to be mentioned in the doc somehow?

Hi! If there is some reasons that ibexa.Table component should be internal then IMO we should still not mention this component in the doc.

It is not intended for external use. At least not yet. Experimental at best.

@juskora
juskora force-pushed the ibx-12039-versions-table-column-provider branch from a28d0d2 to 1cc89e7 Compare July 16, 2026 08:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants