/** * 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(); }
/** * Prepare filter for Gantt chart * * @access public * @return TaskFilter */ public function gantt() { $this->query = $this->db->table(Task::TABLE); $this->query->join(Board::TABLE, 'id', 'column_id', Task::TABLE); $this->query->join(User::TABLE, 'id', 'owner_id', Task::TABLE); $this->query->columns(Task::TABLE . '.id', Task::TABLE . '.title', Task::TABLE . '.project_id', Task::TABLE . '.column_id', Task::TABLE . '.color_id', Task::TABLE . '.date_started', Task::TABLE . '.date_due', Task::TABLE . '.date_creation', Task::TABLE . '.is_active', Task::TABLE . '.position', Board::TABLE . '.position AS column_position', Board::TABLE . '.title AS column_title', User::TABLE . '.name AS assignee_name', User::TABLE . '.username AS assignee_username'); return $this; }
/** * Filter by category * * @access public * @param array $values List of assignees * @return TaskFilter */ public function filterByCategoryName(array $values) { $this->query->join(Category::TABLE, 'id', 'category_id'); $this->query->beginOr(); foreach ($values as $category) { if ($category === 'none') { $this->query->eq(Task::TABLE . '.category_id', 0); } else { $this->query->eq(Category::TABLE . '.name', $category); } } $this->query->closeOr(); }
/** * Filter by username * * @access public * @param string $input * @return ProjectUserRoleFilter */ public function startWithUsername($input) { $this->query->join(GroupMember::TABLE, 'group_id', 'group_id', ProjectGroupRole::TABLE)->join(User::TABLE, 'id', 'user_id', GroupMember::TABLE)->ilike(User::TABLE . '.username', $input . '%'); 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; }