diff --git a/lib/Listing/Handler.php b/lib/Listing/Handler.php index 3bf601f331..6142429a4e 100644 --- a/lib/Listing/Handler.php +++ b/lib/Listing/Handler.php @@ -94,6 +94,20 @@ class Handler { ]; } + public function getListingDefinition(array $data): ListingDefinition { + $data = $this->processData($data); + return new ListingDefinition( + $data['group'], + $data['filter'] ?? [], + $data['search'], + $data['params'] ?? [], + $data['sort_by'], + $data['sort_order'], + $data['offset'], + $data['limit'] + ); + } + private function setSearch(ORMWrapper $model, array $data) { if (empty($data['search'])) { return; diff --git a/lib/Listing/ListingDefinition.php b/lib/Listing/ListingDefinition.php new file mode 100644 index 0000000000..d54a8e69e4 --- /dev/null +++ b/lib/Listing/ListingDefinition.php @@ -0,0 +1,83 @@ +group = $group; + $this->filters = $filters; + $this->search = $search; + $this->parameters = $parameters; + $this->sortBy = $sortBy; + $this->sortOrder = $sortOrder; + $this->offset = $offset; + $this->limit = $limit; + } + + /** @return string|null */ + public function getGroup() { + return $this->group; + } + + public function getFilters(): array { + return $this->filters; + } + + /** @return string|null */ + public function getSearch() { + return $this->search; + } + + public function getParameters(): array { + return $this->parameters; + } + + public function getSortBy(): string { + return $this->sortBy; + } + + public function getSortOrder(): string { + return $this->sortOrder; + } + + public function getOffset(): int { + return $this->offset; + } + + public function getLimit(): int { + return $this->limit; + } +}