summaryrefslogtreecommitdiff
path: root/app/Controller
diff options
context:
space:
mode:
authorRamón Cahenzli <rca@psy-q.ch>2017-11-16 19:12:33 +0100
committerRamón Cahenzli <rca@psy-q.ch>2017-11-16 19:12:33 +0100
commitda28bb45a7b6627a2bd6f1bef6b83b9412b3dff5 (patch)
tree54770a90b9472536ec723accb876b7cc91f49e64 /app/Controller
parent7d678780c1a3ef313a7e66ed46006d5c430347cf (diff)
Allow searching for users in the user list.
Squashed commit of the following: commit 46595b7ae0bccfc8e5252daf8101e59ff53fdcdf Author: Ramón Cahenzli <rca@psy-q.ch> Date: Thu Nov 16 19:12:11 2017 +0100 Preserve search terms and sort order commit 5445816f1dd7e7de876e226cf8479660a92c07ad Author: Ramón Cahenzli <rca@psy-q.ch> Date: Thu Nov 16 18:53:43 2017 +0100 First working user search. commit 620b9787ef7998c4bf219d25075e35f4cfa3d1ee Author: Ramón Cahenzli <rca@psy-q.ch> Date: Thu Nov 16 16:06:37 2017 +0100 Moving user search to its own action commit 0c17ac2428c2b38c9535f7a63f8be7582e4e332b Author: Ramón Cahenzli <rca@psy-q.ch> Date: Thu Nov 16 14:58:34 2017 +0100 WIP on user search, adding search form
Diffstat (limited to 'app/Controller')
-rw-r--r--app/Controller/UserListController.php33
1 files changed, 33 insertions, 0 deletions
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
+ )));
+ }
+
}