In doing the Twig conversion, we are moving many concatenation-based theme functions into templates. Some of these are for administrative forms, which are based on tables.

Most of these follow a similar design pattern:


HEADING
-------

[ Global operation button(s) ]

[ Filter form ]

[ Operations form ]

[ Show/hide details link ]

+===========================================+
| HEADING        | HEADING     | OPERATIONS |
+================+=============+============+
| Foo            | Oof         | edit del   +
+ ---------------|-------------|------------+
| Bar            | Rab         | edit del   +
+ ---------------|-------------|------------+
| Baz            | Zab         | edit del   +
+===========================================+

[ Global operation button(s) ]

This pattern is similar to what we sometimes accomplish with http://drupal.org/project/views_bulk_operations

Below are some URLs in core where these exist (this is not an exhaustive list).

/admin/content
/admin/content/comment
/admin/structure/types
/admin/people
/admin/people/roles
/admin/config/content/formats
/admin/config/media/image-styles
/admin/config/regional/date-time
/admin/modules (similar)

Many of these provide a theme function to style the form they use. It seems better that we should provide instead a consolidated "administrative interface" theme component so that we can reduce the duplication in the theme system

Comments

c4rl’s picture

Issue tags: +D8UX usability

Tagging

tim.plunkett’s picture

Issue tags: -D8UX usability

I'd like to think that this is a duplicate of #1864980: [meta] Figure out how to integrate Views into core / #1823450: [Meta] Convert core listings to Views.
Dries has decided that these listings should be views, and we're working on converting them.
I'd hate to see any work done to convert them to Twig, only to have that work ripped out.

catch’s picture

tim.plunkett’s picture

Issue tags: +D8UX usability

Everything on that list that isn't getting a View should get a ListController, like #1872870: Implement a RoleListController and RoleFormController

tkoleary’s picture

@tim.plunkett

Just out of curiosity why not make them all views?

tim.plunkett’s picture

Until Views has an entity_query backend, it cannot list anything stored as a ConfigEntity (image styles, menu links, text formats). There are many blockers for that to happen, which are spread across several issues. But when it happens, it will be easier to transition a ListController into a view than the custom code anyway.

tkoleary’s picture

Good to know. thx

c4rl’s picture

Yeah, my purpose with opening this issue is to acknowledge the design pattern, and whether the backend is driven by views or some other controller, perhaps there's some common ground.

Nevertheless, I don't wish to shoehorn administrative UI into something that isn't appropriate or flexible, but at minimum we can reduce the UI duplication.

tkoleary’s picture

Linking #2022297: [META] Unified toolset for Views in core since it's a similar concept, if more UI focussed

joelpittet’s picture

Version: 8.0.x-dev » 8.1.x-dev
Status: Active » Postponed

There are lots of admin views now, we are in RC, bumping this to 8.1.x if someone wants to create a component for this.

Version: 8.1.x-dev » 8.2.x-dev

Drupal 8.1.0-beta1 was released on March 2, 2016, which means new developments and disruptive changes should now be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

joelpittet’s picture

Status: Postponed » Active

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.0-beta1 was released on August 3, 2016, which means new developments and disruptive changes should now be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.0-alpha1 will be released the week of January 30, 2017, which means new developments and disruptive changes should now be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.0-alpha1 will be released the week of July 31, 2017, which means new developments and disruptive changes should now be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.0-alpha1 will be released the week of January 17, 2018, which means new developments and disruptive changes should now be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.7.x-dev

Drupal 8.6.0-alpha1 will be released the week of July 16, 2018, which means new developments and disruptive changes should now be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.7.x-dev » 8.8.x-dev

Drupal 8.7.0-alpha1 will be released the week of March 11, 2019, which means new developments and disruptive changes should now be targeted against the 8.8.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 9.1.x-dev » 9.2.x-dev

Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.