Skip to content
Snippets Groups Projects
Commit f341fd00 authored by catch's avatar catch
Browse files

Issue #3488768 by plopesc, m4olivei, atul_ghate: Menu blocks specific to...

Issue #3488768 by plopesc, m4olivei, atul_ghate: Menu blocks specific to Navigation are leaking into the Block layout UI
parent 1af51d41
No related branches found
No related tags found
11 merge requests!11197Issue #3506427 by eduardo morales alberti: Remove responsive_image.ajax from hook,!11131[10.4.x-only-DO-NOT-MERGE]: Issue ##2842525 Ajax attached to Views exposed filter form does not trigger callbacks,!10786Issue #3490579 by shalini_jha, mstrelan: Add void return to all views...,!3878Removed unused condition head title for views,!3818Issue #2140179: $entity->original gets stale between updates,!3154Fixes #2987987 - CSRF token validation broken on routes with optional parameters.,!2964Issue #2865710 : Dependencies from only one instance of a widget are used in display modes,!2062Issue #3246454: Add weekly granularity to views date sort,!10223132456: Fix issue where views instances are emptied before an ajax request is complete,!617Issue #3043725: Provide a Entity Handler for user cancelation,!579Issue #2230909: Simple decimals fail to pass validation
Pipeline #349678 passed with warnings
Pipeline: drupal

#349693

    Pipeline: drupal

    #349689

      Pipeline: drupal

      #349680

        ......@@ -154,27 +154,26 @@ public function pluginFilterLayoutLayoutBuilderAlter(array &$definitions, array
        */
        #[Hook('block_alter')]
        public function blockAlter(&$definitions) : void {
        // Hide Navigation specific blocks from the generic UI.
        $hidden = ['navigation_user', 'navigation_shortcuts', 'navigation_menu', 'navigation_link'];
        foreach ($hidden as $block_id) {
        if (isset($definitions[$block_id])) {
        $definitions[$block_id]['_block_ui_hidden'] = TRUE;
        }
        }
        // Add the allow_in_navigation attribute to those blocks valid for Navigation.
        // @todo Refactor to use actual block Attribute once
        // https://www.drupal.org/project/drupal/issues/3443882 is merged.
        array_walk($definitions, function (&$definition, $block_id) {
        [$base_plugin_id] = explode(PluginBase::DERIVATIVE_SEPARATOR, $block_id);
        // Add the allow_in_navigation attribute to those blocks valid for Navigation.
        // @todo Refactor to use actual block Attribute once
        // https://www.drupal.org/project/drupal/issues/3443882 is merged.
        $allow_in_navigation = [
        'navigation_user',
        'navigation_shortcuts',
        'navigation_menu',
        ];
        [$base_plugin_id] = explode(PluginBase::DERIVATIVE_SEPARATOR, $block_id);
        if (in_array($base_plugin_id, $allow_in_navigation, TRUE)) {
        $definition['allow_in_navigation'] = TRUE;
        }
        // Hide Navigation specific blocks from the generic UI.
        $hidden = ['navigation_user', 'navigation_shortcuts', 'navigation_menu', 'navigation_link'];
        if (in_array($base_plugin_id, $hidden, TRUE)) {
        $definition['_block_ui_hidden'] = TRUE;
        }
        });
        }
        ......
        ......@@ -16,7 +16,7 @@ class NavigationSafeBlockDefinitionTest extends BrowserTestBase {
        /**
        * {@inheritdoc}
        */
        protected static $modules = ['navigation', 'navigation_test'];
        protected static $modules = ['navigation', 'navigation_test', 'block'];
        /**
        * {@inheritdoc}
        ......@@ -40,6 +40,7 @@ protected function setUp(): void {
        $this->adminUser = $this->drupalCreateUser([
        'configure navigation layout',
        'access navigation',
        'administer blocks',
        ]);
        $this->drupalLogin($this->adminUser);
        ......@@ -73,4 +74,18 @@ public function testNavigationSafeBlockDefinition(): void {
        $this->assertSession()->linkNotExists('Navigation Shortcuts');
        }
        /**
        * Tests logic to exclude blocks in Block Layout UI.
        */
        public function testNavigationBlocksHiddenInBlockLayout(): void {
        $block_url = '/admin/structure/block';
        $this->drupalGet($block_url);
        $this->clickLink('Place block');
        $this->assertSession()->linkByHrefNotExists('/admin/structure/block/add/navigation_menu%3Aadmin/stark');
        $this->assertSession()->linkByHrefNotExists('/admin/structure/block/add/navigation_menu%3Acontent/stark');
        $this->assertSession()->linkByHrefNotExists('/admin/structure/block/add/navigation_shortcuts/stark');
        $this->assertSession()->linkByHrefNotExists('/admin/structure/block/add/navigation_user/stark');
        $this->assertSession()->linkByHrefNotExists('/admin/structure/block/add/navigation_link/stark');
        }
        }
        0% Loading or .
        You are about to add 0 people to the discussion. Proceed with caution.
        Finish editing this message first!
        Please register or to comment