Skip to content
Snippets Groups Projects
Verified Commit 1f94e17f authored by Alex Pott's avatar Alex Pott
Browse files

Issue #2833116 by smustgrave, mohit_aghera, Ratan Priya, _pratik_, _shY,...

Issue #2833116 by smustgrave, mohit_aghera, Ratan Priya, _pratik_, _shY, alexpott, nitin_lama, acbramley, quietone, larowlan, Peter van den Heuvel, ameymudras, alexpott: When Placing a Block on 'Configure Block' page the originally selected region is lost
parent 23bb407d
No related branches found
No related tags found
31 merge requests!12227Issue #3181946 by jonmcl, mglaman,!11131[10.4.x-only-DO-NOT-MERGE]: Issue ##2842525 Ajax attached to Views exposed filter form does not trigger callbacks,!9470[10.3.x-only-DO-NOT-MERGE]: #3331771 Fix file_get_contents(): Passing null to parameter,!8540Issue #3457061: Bootstrap Modal dialog Not closing after 10.3.0 Update,!8528Issue #3456871 by Tim Bozeman: Support NULL services,!8373Issue #3427374 by danflanagan8, Vighneshh: taxonomy_tid ViewsArgumentDefault...,!7526Expose roles in response,!7352Draft: Resolve #3203489 "Set filename as",!5423Draft: Resolve #3329907 "Test2",!3878Removed unused condition head title for views,!3818Issue #2140179: $entity->original gets stale between updates,!3742Issue #3328429: Create item list field formatter for displaying ordered and unordered lists,!3731Claro: role=button on status report items,!3651Issue #3347736: Create new SDC component for Olivero (header-search),!3531Issue #3336994: StringFormatter always displays links to entity even if the user in context does not have access,!3478Issue #3337882: Deleted menus are not removed from content type config,!3355Issue #3209129: Scrolling problems when adding a block via layout builder,!3154Fixes #2987987 - CSRF token validation broken on routes with optional parameters.,!3133core/modules/system/css/components/hidden.module.css,!2964Issue #2865710 : Dependencies from only one instance of a widget are used in display modes,!2812Issue #3312049: [Followup] Fix Drupal.Commenting.FunctionComment.MissingReturnType returns for NULL,!2794Issue #3100732: Allow specifying `meta` data on JSON:API objects,!2378Issue #2875033: Optimize joins and table selection in SQL entity query implementation,!2062Issue #3246454: Add weekly granularity to views date sort,!1105Issue #3025039: New non translatable field on translatable content throws error,!1073issue #3191727: Focus states on mobile second level navigation items fixed,!10223132456: Fix issue where views instances are emptied before an ajax request is complete,!877Issue #2708101: Default value for link text is not saved,!579Issue #2230909: Simple decimals fail to pass validation,!560Move callback classRemove outside of the loop,!555Issue #3202493
Pipeline #121172 canceled
...@@ -115,6 +115,7 @@ public function save(array $form, FormStateInterface $form_state) { ...@@ -115,6 +115,7 @@ public function save(array $form, FormStateInterface $form_state) {
[ [
'plugin_id' => 'block_content:' . $block->uuid(), 'plugin_id' => 'block_content:' . $block->uuid(),
'theme' => $theme, 'theme' => $theme,
'region' => $this->getRequest()->query->getString('region'),
] ]
); );
} }
......
...@@ -4,13 +4,42 @@ ...@@ -4,13 +4,42 @@
use Drupal\Core\Menu\LocalActionDefault; use Drupal\Core\Menu\LocalActionDefault;
use Drupal\Core\Routing\RouteMatchInterface; use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\Core\Routing\RouteProviderInterface;
use Drupal\Core\Url; use Drupal\Core\Url;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\RequestStack;
/** /**
* Modifies the 'Add content block' local action. * Modifies the 'Add content block' local action.
*/ */
class BlockContentAddLocalAction extends LocalActionDefault { class BlockContentAddLocalAction extends LocalActionDefault {
/**
* Constructs a BlockContentAddLocalAction object.
*/
public function __construct(
array $configuration,
$plugin_id,
$plugin_definition,
RouteProviderInterface $routeProvider,
protected RequestStack $requestStack,
) {
parent::__construct($configuration, $plugin_id, $plugin_definition, $routeProvider);
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static(
$configuration,
$plugin_id,
$plugin_definition,
$container->get('router.route_provider'),
$container->get('request_stack'),
);
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
...@@ -20,6 +49,12 @@ public function getOptions(RouteMatchInterface $route_match) { ...@@ -20,6 +49,12 @@ public function getOptions(RouteMatchInterface $route_match) {
if ($theme = $route_match->getParameter('theme')) { if ($theme = $route_match->getParameter('theme')) {
$options['query']['theme'] = $theme; $options['query']['theme'] = $theme;
} }
// If the current request has a region, append it to the query string.
if ($region = $this->requestStack->getCurrentRequest()->query->getString('region')) {
$options['query']['region'] = $region;
}
// Adds a destination on content block listing. // Adds a destination on content block listing.
if ($route_match->getRouteName() == 'entity.block_content.collection') { if ($route_match->getRouteName() == 'entity.block_content.collection') {
$options['query']['destination'] = Url::fromRoute('<current>')->toString(); $options['query']['destination'] = Url::fromRoute('<current>')->toString();
......
...@@ -71,6 +71,22 @@ protected function setUp(): void { ...@@ -71,6 +71,22 @@ protected function setUp(): void {
]); ]);
} }
/**
* Tests the region value when a new block is saved.
*/
public function testBlockRegionPlacement(): void {
$this->drupalLogin($this->drupalCreateUser($this->permissions));
$this->drupalGet("admin/structure/block/library/stark", ['query' => ['region' => 'content']]);
$this->clickLink('Add content block');
$this->assertSession()->statusCodeEquals(200);
$edit = [
'info[0][value]' => 'foo',
];
$this->submitForm($edit, 'Save');
$this->assertSession()->fieldValueEquals('region', 'content');
}
/** /**
* Tests the content block listing page with different permissions. * Tests the content block listing page with different permissions.
*/ */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment