diff --git a/code/Report.php b/code/Report.php index 3a87e659..5eee3d0c 100644 --- a/code/Report.php +++ b/code/Report.php @@ -346,12 +346,7 @@ class Report extends ViewableData */ public function getReportField() { - $params = []; - if (Injector::inst()->has(HTTPRequest::class)) { - /** @var HTTPRequest $request */ - $request = Injector::inst()->get(HTTPRequest::class); - $params = $request->param('filters') ?: $request->requestVar('filters') ?: []; - } + $params = $this->getSourceParams(); $items = $this->sourceRecords($params, null, null); $gridFieldConfig = GridFieldConfig::create()->addComponents( @@ -484,4 +479,23 @@ class Report extends ViewableData { return []; } + + /** + * Get source params for the report to filter by + * + * @return array + */ + protected function getSourceParams() + { + $params = []; + if (Injector::inst()->has(HTTPRequest::class)) { + /** @var HTTPRequest $request */ + $request = Injector::inst()->get(HTTPRequest::class); + $params = $request->param('filters') ?: $request->requestVar('filters') ?: []; + } + + $this->extend('updateSourceParams', $params); + + return $params; + } }