From 8a309525e79fe41633ec45c46bc0ee9e27355f5d Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Tue, 2 Feb 2016 20:41:26 +0100 Subject: [PATCH] (mvc) add easier model wrapper for default search behavior --- .../app/library/OPNsense/Base/UIModelGrid.php | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/opnsense/mvc/app/library/OPNsense/Base/UIModelGrid.php b/src/opnsense/mvc/app/library/OPNsense/Base/UIModelGrid.php index 12bf440d3..ab2016749 100644 --- a/src/opnsense/mvc/app/library/OPNsense/Base/UIModelGrid.php +++ b/src/opnsense/mvc/app/library/OPNsense/Base/UIModelGrid.php @@ -49,6 +49,31 @@ class UIModelGrid $this->DataField = $DataField; } + /** + * default model search + * @param $request request variable + * @param array $fields to collect + * @param null|string $defaultSort default sort order + * @return array + */ + public function fetchBindRequest($request, $fields, $defaultSort = null) + { + $itemsPerPage = $request->get('rowCount', 'int', 9999); + $currentPage = $request->get('current', 'int', 1); + $sortBy = array($defaultSort); + $sortDescending = false; + + if ($request->has('sort') && is_array($request->get("sort"))) { + $sortBy = array_keys($request->get("sort")); + if ($request->get("sort")[$sortBy[0]] == "desc") { + $sortDescending = true; + } + } + + $searchPhrase = $request->get('searchPhrase', 'string', ''); + return $this->fetch($fields, $itemsPerPage, $currentPage, $sortBy, $sortDescending, $searchPhrase); + } + /** * Fetch data from Array type field (Base\FieldTypes\ArrayField), sorted by specified fields and optionally filtered * @param array $fields select fieldnames