diff options
author | Frederic Guillot <fred@kanboard.net> | 2015-12-29 18:44:21 +0100 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2015-12-29 18:44:21 +0100 |
commit | 178eda18872f99840937dc3d23629b5d7aa7cee0 (patch) | |
tree | e2e27f289b5620e92b1accddcea9489286a65243 /app/Model/ProjectUserRoleFilter.php | |
parent | b4c5e36ee4cbf34020eb043e54e9b7294062acee (diff) |
Add autocompletion in textarea for user mentions
Diffstat (limited to 'app/Model/ProjectUserRoleFilter.php')
-rw-r--r-- | app/Model/ProjectUserRoleFilter.php | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/app/Model/ProjectUserRoleFilter.php b/app/Model/ProjectUserRoleFilter.php new file mode 100644 index 00000000..64403643 --- /dev/null +++ b/app/Model/ProjectUserRoleFilter.php @@ -0,0 +1,88 @@ +<?php + +namespace Kanboard\Model; + +/** + * Project User Role Filter + * + * @package model + * @author Frederic Guillot + */ +class ProjectUserRoleFilter extends Base +{ + /** + * Query + * + * @access protected + * @var \PicoDb\Table + */ + protected $query; + + /** + * Initialize filter + * + * @access public + * @return UserFilter + */ + public function create() + { + $this->query = $this->db->table(ProjectUserRole::TABLE); + return $this; + } + + /** + * Get all results of the filter + * + * @access public + * @param string $column + * @return array + */ + public function findAll($column = '') + { + if ($column !== '') { + return $this->query->asc($column)->findAllByColumn($column); + } + + return $this->query->findAll(); + } + + /** + * Get the PicoDb query + * + * @access public + * @return \PicoDb\Table + */ + public function getQuery() + { + return $this->query; + } + + /** + * Filter by project id + * + * @access public + * @param integer $project_id + * @return ProjectUserRoleFilter + */ + public function filterByProjectId($project_id) + { + $this->query->eq(ProjectUserRole::TABLE.'.project_id', $project_id); + return $this; + } + + /** + * Filter by username + * + * @access public + * @param string $input + * @return ProjectUserRoleFilter + */ + public function startWithUsername($input) + { + $this->query + ->join(User::TABLE, 'id', 'user_id') + ->ilike(User::TABLE.'.username', $input.'%'); + + return $this; + } +} |