ENHANCEMENT Ensure extensions are told the internal item request class for gridfield detail form (#8164)

Fixes https://github.com/silverstripe/silverstripe-framework/issues/8136
This commit is contained in:
Damian Mooyman 2018-06-15 17:58:53 +12:00 committed by Aaron Carlino
parent e48ad4c9e2
commit 8181dc4fd2

View File

@ -129,7 +129,8 @@ class GridFieldDetailForm implements GridField_URLHandler
protected function getItemRequestHandler($gridField, $record, $requestHandler)
{
$class = $this->getItemRequestClass();
$this->extend('updateItemRequestClass', $class, $gridField, $record, $requestHandler);
$assignedClass = $this->itemRequestClass;
$this->extend('updateItemRequestClass', $class, $gridField, $record, $requestHandler, $assignedClass);
/** @var GridFieldDetailForm_ItemRequest $handler */
$handler = Injector::inst()->createWithArgs(
$class,
@ -234,7 +235,7 @@ class GridFieldDetailForm implements GridField_URLHandler
} elseif (ClassInfo::exists(static::class . "_ItemRequest")) {
return static::class . "_ItemRequest";
} else {
return __CLASS__ . '_ItemRequest';
return GridFieldDetailForm_ItemRequest::class;
}
}