Example #1
0
 /**
  * Filter by comments
  *
  * @access public
  * @param  string  $string
  * @return TaskFilter
  */
 public function filterByComment($string)
 {
     $this->query->beginOr();
     $this->query->ilike(Comment::TABLE . '.comment', '%' . $string . '%');
     $this->query->join(Comment::TABLE, 'task_id', 'id');
     $this->query->closeOr();
 }
Example #2
0
 /**
  * Filter by column name
  *
  * @access public
  * @param  array    $values   List of column name
  * @return TaskFilter
  */
 public function filterByColumnName(array $values)
 {
     $this->query->beginOr();
     foreach ($values as $project) {
         $this->query->ilike(Board::TABLE . '.title', $project);
     }
     $this->query->closeOr();
 }
Example #3
0
 /**
  * Filter by assignee names
  *
  * @access public
  * @param  array    $values   List of assignees
  * @return TaskFilter
  */
 public function filterByAssignee(array $values)
 {
     $this->query->beginOr();
     foreach ($values as $assignee) {
         switch ($assignee) {
             case 'me':
                 $this->query->eq(Task::TABLE . '.owner_id', $this->userSession->getId());
                 break;
             case 'nobody':
                 $this->query->eq(Task::TABLE . '.owner_id', 0);
                 break;
             default:
                 $this->query->ilike(User::TABLE . '.username', '%' . $assignee . '%');
                 $this->query->ilike(User::TABLE . '.name', '%' . $assignee . '%');
         }
     }
     $this->query->closeOr();
 }
 /**
  * Apply subquery filter
  *
  * @access protected
  * @param  Table $subquery
  * @return Table
  */
 protected function applySubQueryFilter(Table $subquery)
 {
     if (is_int($this->value) || ctype_digit($this->value)) {
         $subquery->eq(Subtask::TABLE . '.user_id', $this->value);
     } else {
         switch ($this->value) {
             case 'me':
                 $subquery->eq(Subtask::TABLE . '.user_id', $this->currentUserId);
                 break;
             case 'nobody':
                 $subquery->eq(Subtask::TABLE . '.user_id', 0);
                 break;
             default:
                 $subquery->beginOr();
                 $subquery->ilike(User::TABLE . '.username', $this->value . '%');
                 $subquery->ilike(User::TABLE . '.name', '%' . $this->value . '%');
                 $subquery->closeOr();
         }
     }
     return $subquery;
 }
Example #5
0
 /**
  * Filter by title
  *
  * @access public
  * @param  string  $title
  * @return TaskFilter
  */
 public function filterByTitle($title)
 {
     $this->query->ilike('title', '%' . $title . '%');
     return $this;
 }