Add a button island to leave the builder

Created on 29 July 2025, 15 days ago

Problem/Motivation

When we are in the display builder instances we don't have an easy way to leave and we need to rely on browser bac k button or the admin toolbar

Proposed resolution

Add a method in WithDisplayBuilderInterface and implement it 4 times:

  • in Page Layout: returns entity.page_layout.edit_form (/admin/structure/page-layout/{page_layout})
  • in Entity View display: return an URL object built from entity.entity_view_display.{entity_type}.view_mode
  • in Views: return an URL object built from entity.view.edit_display_form
  • in Devel: return an URL object built from display_builder_devel.edit

The name of this method needs to be discussed.

Use this method

  • in Display Builder's devel /admin/structure/display-builder/index in a new table col, for quick access to the config where the display builder was initialized
  • in a new "button" island plugin to put in the default config, alongside "state". The name and the wording of this island must be discussed.
Feature request
Status

Active

Version

1.0

Component

UI/UX/Islands

Created by

🇫🇷France pdureau Paris

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @pdureau
  • 🇫🇷France mogtofu33

    In the meantime we could clean the lists part for instances which is a bit everywhere, we have multiple path, class names and opertations, let's try to have a main DisplayBuilderListBuilder class with getOperationLinks, and each module extends if needed.
    Route path, names and page titles must be consistent as well.

    I don't have option on titles, just proposition to make it consistent.

    Page

    • List of page config with display config with instances
    • /admin/structure/page-layout
      • @todo move to /admin/structure/page-layout/display-builder for consistency
    • title: Page layouts
      • @todo change to: Page layouts with Display Builder
    • PageLayoutListBuilder
      • entity::getDefaultOperations + build display
      • @todo change to entity::getDefaultOperations + DisplayBuilderDevelHelper::getOperationLinks

    Views

    • List of instances in Views
    • /admin/structure/views/display_builder
      • @todo move to /admin/structure/views/display-builder for consistency
    • title: Display builders in Views
      • @todo change to: Views with Display Builder
    • ViewsManagementController::pageViewsIndex => @todo rename to ViewsDisplayBuilderList
      • has delete custom operation + build display
      • @todo change to delete custom operation + DisplayBuilderDevelHelper::getOperationLinks

    Entity - @todo nothing yet

    • List of instances in Entities
    • @todo create /admin/structure/entity/display-builder
    • title : Entities with Display Builder
    • EntityDisplayBuilderList
      • DisplayBuilderDevelHelper::getOperationLinks

    UI

    • Nothing yet, move from Devel
    • @todo: list of instances moved from devel
      • /admin/structure/display-builder/index
      • title: Entities with Display Builder
      • DisplayBuilderList
        • DisplayBuilderDevelHelper::getOperationLinks

    Devel @todo move to UI

    • List of all instances
    • /admin/structure/display-builder/index
    • title: Display Builder all instances
    • DisplayBuilderDevelController
      • DisplayBuilderDevelHelper::getOperationLinks
  • 🇫🇷France pdureau Paris

    Great idea. Standardization is welcomed.

    My personal feedbacks:

    Page

    • List of page config with display config with instances
    • /admin/structure/page-layout
      • @todo move to /admin/structure/page-layout/display-builder for consistency >> ⚠️ So what would be the content of /admin/structure/page-layout/ ?
    • title: Page layouts
      • @todo change to: Page layouts with Display Builder >> ⚠️ OK but let's keep the menu entry in /admin/structure simply "Page layouts" ?
    • PageLayoutListBuilder
      • entity::getDefaultOperations + build display
      • @todo change to entity::getDefaultOperations + DisplayBuilderDevelHelper::getOperationLinks

    Views

    • List of instances in Views
    • /admin/structure/views/display_builder
      • @todo move to /admin/structure/views/display-builder for consistency >>👍 cool
    • title: Display builders in Views
      • @todo change to: Views with Display Builder >> 👍 way better
    • ViewsManagementController::pageViewsIndex => @todo rename to ViewsDisplayBuilderList >> 👍 nice
      • has delete custom operation + build display
      • @todo change to delete custom operation + DisplayBuilderDevelHelper::getOperationLinks

    Entity - @todo nothing yet

    ⚠️ I am not sure about the purpose of this list (maybe too overkill for site builders and developers already have /admin/structure/display-builder/index) but we can add it now and move it to Devel later if users find it confusing.

    • List of instances in Entities
    • @todo create /admin/structure/entity/display-builder >> ⚠️ /admin/structure/entity is not a thing. Can we put it in an existing place? I don't see one to be honest. That may be the int this list is not expected.
    • title : Entities with Display Builder >> ⚠️ Would "Entity displays with Display Builder" be better? Or maybe "Entity view displays with Display Builder" to avoid future confusion with display_builder_entity_form?
    • EntityDisplayBuilderList
      • DisplayBuilderDevelHelper::getOperationLinks

    UI & Devel

    ⚠️ are you sure it would not be confusing for users to have access to /admin/structure/display-builder/index ? It looks like low level information and I am afraid we will move it back to Devel after some users feedbacks in beta phase.

    • mogtofu33 committed 569ed6ec on 1.0.x
      Issue #3538607 by pdureau, mogtofu33: Pre task: consistent paths dash
      
Production build 0.71.5 2024