From da28bb45a7b6627a2bd6f1bef6b83b9412b3dff5 Mon Sep 17 00:00:00 2001 From: Ramón Cahenzli Date: Thu, 16 Nov 2017 19:12:33 +0100 Subject: Allow searching for users in the user list. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Squashed commit of the following: commit 46595b7ae0bccfc8e5252daf8101e59ff53fdcdf Author: Ramón Cahenzli Date: Thu Nov 16 19:12:11 2017 +0100 Preserve search terms and sort order commit 5445816f1dd7e7de876e226cf8479660a92c07ad Author: Ramón Cahenzli Date: Thu Nov 16 18:53:43 2017 +0100 First working user search. commit 620b9787ef7998c4bf219d25075e35f4cfa3d1ee Author: Ramón Cahenzli Date: Thu Nov 16 16:06:37 2017 +0100 Moving user search to its own action commit 0c17ac2428c2b38c9535f7a63f8be7582e4e332b Author: Ramón Cahenzli Date: Thu Nov 16 14:58:34 2017 +0100 WIP on user search, adding search form --- app/Controller/UserListController.php | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'app/Controller/UserListController.php') diff --git a/app/Controller/UserListController.php b/app/Controller/UserListController.php index 6096923a..580c853c 100644 --- a/app/Controller/UserListController.php +++ b/app/Controller/UserListController.php @@ -2,6 +2,8 @@ namespace Kanboard\Controller; +use Kanboard\Filter\UserNameFilter; + /** * Class User List Controller * @@ -24,4 +26,35 @@ class UserListController extends BaseController 'paginator' => $paginator, ))); } + + /** + * Search in users + * + * @access public + */ + public function search() + { + $search = urldecode($this->request->getStringParam('search')); + $paginator = $this->userPagination->getListingPaginator(); + + if ($search !== '' && ! $paginator->isEmpty()) { + + $paginator = $paginator + ->setUrl('UserListController', 'search', array('search' => $search)) + ->setQuery($this->userQuery + ->withFilter(new UserNameFilter($search)) + ->getQuery() + ) + ->calculate(); + } + + $this->response->html($this->helper->layout->app('user_list/listing', array( + 'title' => t('Users').' ('.$paginator->getTotal().')', + 'values' => array( + 'search' => $search, + ), + 'paginator' => $paginator + ))); + } + } -- cgit v1.2.3