From f5f7ed08e475f0dd09a9b6226f6bea81f9af3f66 Mon Sep 17 00:00:00 2001 From: leocavalcante Date: Fri, 18 Mar 2016 21:05:23 -0300 Subject: [PATCH] Make available to extends Lists records --- modules/backend/behaviors/ListController.php | 15 ++++++++++++++- modules/backend/widgets/Lists.php | 10 ++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/modules/backend/behaviors/ListController.php b/modules/backend/behaviors/ListController.php index a1a8c7353..4d50006dd 100644 --- a/modules/backend/behaviors/ListController.php +++ b/modules/backend/behaviors/ListController.php @@ -157,6 +157,10 @@ class ListController extends ControllerBehavior $this->controller->listExtendQuery($query, $definition); }); + $widget->bindEvent('list.extendRecords', function ($records) use ($definition) { + $this->controller->listExtendRecords($records, $definition); + }); + $widget->bindEvent('list.injectRowClass', function ($record) use ($definition) { return $this->controller->listInjectRowClass($record, $definition); }); @@ -423,7 +427,16 @@ class ListController extends ControllerBehavior } /** - * Controller override: Extend the query used for populating the filter + * Controller override: Extend the records used for populating the list + * after the query is processed. + * @param Illuminate\Contracts\Pagination\LengthAwarePaginator|Illuminate\Database\Eloquent\Collection $records + */ + public function listExtendRecords($records, $definition = null) + { + } + + /** + * Controller override: Extend the query used for populating the filter * options before the default query is processed. * @param October\Rain\Database\Builder $query * @param array $scope diff --git a/modules/backend/widgets/Lists.php b/modules/backend/widgets/Lists.php index 17573b359..2d42c653f 100644 --- a/modules/backend/widgets/Lists.php +++ b/modules/backend/widgets/Lists.php @@ -504,6 +504,16 @@ class Lists extends WidgetBase } + /* + * Extensibility + */ + if ( + ($event = $this->fireEvent('list.extendRecords', [$records], true)) || + ($event = Event::fire('backend.list.extendRecords', [$this, $records], true)) + ) { + $records = $event; + } + return $this->records = $records; }