Problem/Motivation

Over in #2375589: Convert custom block library page to views it was identified that various listing pages in core don't abide by our UX guidelines for empty text

Use Text pattern "There are no [things] available. Add [a thing]".
The "Add a [thing]" link is the same action as the Local action link on the same page.

So we added a one-off plugin for block content, this issue is to generalise it and apply it to existing listings.

Proposed resolution

Create a generic area handler, add a test.

More details

  • Add code in views_views_data() which iterates over all entity types and provide one empty area, which is looking a bit like this:
    
        $data[$entity_base_table]['listing_empty'] = array(
          'title' => t('Empty %label', $entity_type->getLabel()),
          'help' => t('Provides a link to the %label add overview page.', $entity_type->getLabel()),
          'area' => array(
            'id' => 'entity_listing_empty',
          ),
        );
    
  • Provide a new area handler plugin, for example living in core/modules/views/src/views/Plugin/views/area/EntityListingEmpty.php
  • This area plugin should look similar to \Drupal\node\Plugin\views\area\ListingEmpty, but be generic and work for all entity types
  • In order to do that in a generic way, we probably need a new link template on entity types, 'add'
  • Therefore we would have to rename the existing routes from node.add_page to "entity.node.add"
  • Once done, you can use Url::fromRoute("entity.$entity_type_id.add" in your area handler itself

Remaining tasks

Everything

User interface changes

New strings

API changes

New plugin

CommentFileSizeAuthor
#4 empty_behaviour-2453733-4.patch11.17 KBrosinegrean

Comments

dawehner’s picture

Issue summary: View changes
rosinegrean’s picture

Assigned: Unassigned » rosinegrean
rosinegrean’s picture

Just one small question: in order to do this I need to refactor all the entities add routes to be of the form entity.entity_type_id.add ?

rosinegrean’s picture

Status: Active » Needs review
StatusFileSize
new11.17 KB

This is the first patch. Still need an answer for #3

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

Drupal 8.0.6 was released on April 6 and is the final bugfix release for the Drupal 8.0.x series. Drupal 8.0.x will not receive any further development aside from security fixes. Drupal 8.1.0-rc1 is now available and sites should prepare to update to 8.1.0.

Bug reports should be targeted against the 8.1.x-dev branch from now on, and new development or disruptive changes should 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.

dawehner’s picture

Status: Needs review » Needs work

I'm wondering whether we could geralize things a bit, by providing not a area plugin but rather an actual block and then integrate the block system into areas?

+++ b/core/modules/help/help.module
diff --git a/core/modules/node/node.links.action.yml b/core/modules/node/node.links.action.yml
index 22079cd..5bb18a1 100644

index 22079cd..5bb18a1 100644
--- a/core/modules/node/node.links.action.yml

--- a/core/modules/node/node.links.action.yml
+++ b/core/modules/node/node.links.action.yml

+++ b/core/modules/node/node.links.action.yml
+++ b/core/modules/node/node.links.action.yml
@@ -3,8 +3,8 @@ node.type_add:

@@ -3,8 +3,8 @@ node.type_add:
   title: 'Add content type'
   appears_on:
     - entity.node_type.collection
-node.add_page:
-  route_name: node.add_page
+entity.node.add:
+  route_name: entity.node.add
   title: 'Add content'
   appears_on:
     - system.admin_content
diff --git a/core/modules/node/node.links.menu.yml b/core/modules/node/node.links.menu.yml

diff --git a/core/modules/node/node.links.menu.yml b/core/modules/node/node.links.menu.yml
index b4edf23..c05e73b 100644

index b4edf23..c05e73b 100644
--- a/core/modules/node/node.links.menu.yml

--- a/core/modules/node/node.links.menu.yml
+++ b/core/modules/node/node.links.menu.yml

+++ b/core/modules/node/node.links.menu.yml
+++ b/core/modules/node/node.links.menu.yml
@@ -3,6 +3,6 @@ entity.node_type.collection:

@@ -3,6 +3,6 @@ entity.node_type.collection:
   parent: system.admin_structure
   description: 'Manage content types, including default status, front page promotion, comment settings, etc.'
   route_name: entity.node_type.collection
-node.add_page:
+entity.node.add:
   title: 'Add content'

This seems a bit outside of the scope of this issue

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

Drupal 8.1.9 was released on September 7 and is the final bugfix release for the Drupal 8.1.x series. Drupal 8.1.x will not receive any further development aside from security fixes. Drupal 8.2.0-rc1 is now available and sites should prepare to upgrade to 8.2.0.

Bug reports should be targeted against the 8.2.x-dev branch from now on, and new development or disruptive changes should 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.2.x-dev » 8.3.x-dev

Drupal 8.2.6 was released on February 1, 2017 and is the final full bugfix release for the Drupal 8.2.x series. Drupal 8.2.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.3.0 on April 5, 2017. (Drupal 8.3.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.3.x-dev branch from now on, and new development or disruptive changes should 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.3.x-dev » 8.4.x-dev

Drupal 8.3.6 was released on August 2, 2017 and is the final full bugfix release for the Drupal 8.3.x series. Drupal 8.3.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.4.0 on October 4, 2017. (Drupal 8.4.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.4.x-dev branch from now on, and new development or disruptive changes should 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.4.x-dev » 8.5.x-dev

Drupal 8.4.4 was released on January 3, 2018 and is the final full bugfix release for the Drupal 8.4.x series. Drupal 8.4.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.5.0 on March 7, 2018. (Drupal 8.5.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.5.x-dev branch from now on, and new development or disruptive changes should 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.5.x-dev » 8.6.x-dev

Drupal 8.5.6 was released on August 1, 2018 and is the final bugfix release for the Drupal 8.5.x series. Drupal 8.5.x will not receive any further development aside from security fixes. Sites should prepare to update to 8.6.0 on September 5, 2018. (Drupal 8.6.0-rc1 is available for testing.)

Bug reports should be targeted against the 8.6.x-dev branch from now on, and new development or disruptive changes should 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.6.x-dev » 8.8.x-dev

Drupal 8.6.x will not receive any further development aside from security fixes. Bug reports should be targeted against the 8.8.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.9.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: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.7 was released on June 3, 2020 and is the final full bugfix release for the Drupal 8.8.x series. Drupal 8.8.x will not receive any further development aside from security fixes. Sites should prepare to update to Drupal 8.9.0 or Drupal 9.0.0 for ongoing support.

Bug reports should be targeted against the 8.9.x-dev branch from now on, and new development or disruptive changes should 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.

avpaderno’s picture

Assigned: rosinegrean » Unassigned

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

Drupal 8 is end-of-life as of November 17, 2021. There will not be further changes made to Drupal 8. Bugfixes are now made to the 9.3.x and higher branches only. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

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

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

Drupal 9.3.15 was released on June 1st, 2022 and is the final full bugfix release for the Drupal 9.3.x series. Drupal 9.3.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.4.x-dev branch from now on, and new development or disruptive changes should 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.4.x-dev » 9.5.x-dev

Drupal 9.4.9 was released on December 7, 2022 and is the final full bugfix release for the Drupal 9.4.x series. Drupal 9.4.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.5.x-dev branch from now on, and new development or disruptive changes should 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: 9.5.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. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 11.x-dev » main

Drupal core is now using the main branch as the primary development branch. New developments and disruptive changes should now be targeted to the main branch.

Read more in the announcement.