|
<?php |
|
|
|
namespace Kanboard\Model; |
|
|
|
use Kanboard\Core\Base; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CustomFilterModel extends Base |
|
{ |
|
|
|
|
|
|
|
|
|
|
|
const TABLE = 'custom_filters'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getAll($project_id, $user_id) |
|
{ |
|
return $this->db |
|
->table(self::TABLE) |
|
->columns( |
|
UserModel::TABLE.'.name as owner_name', |
|
UserModel::TABLE.'.username as owner_username', |
|
self::TABLE.'.id', |
|
self::TABLE.'.user_id', |
|
self::TABLE.'.project_id', |
|
self::TABLE.'.filter', |
|
self::TABLE.'.name', |
|
self::TABLE.'.is_shared', |
|
self::TABLE.'.append' |
|
) |
|
->asc(self::TABLE.'.name') |
|
->join(UserModel::TABLE, 'id', 'user_id') |
|
->beginOr() |
|
->eq('is_shared', 1) |
|
->eq('user_id', $user_id) |
|
->closeOr() |
|
->eq('project_id', $project_id) |
|
->findAll(); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getById($filter_id) |
|
{ |
|
return $this->db->table(self::TABLE)->eq('id', $filter_id)->findOne(); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function create(array $values) |
|
{ |
|
return $this->db->table(self::TABLE)->persist($values); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function update(array $values) |
|
{ |
|
$updates = $values; |
|
unset($updates['id']); |
|
return $this->db->table(self::TABLE) |
|
->eq('id', $values['id']) |
|
->update($updates); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function remove($filter_id) |
|
{ |
|
return $this->db->table(self::TABLE)->eq('id', $filter_id)->remove(); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function duplicate($src_project_id, $dst_project_id) |
|
{ |
|
$filters = $this->db |
|
->table(self::TABLE) |
|
->columns( |
|
self::TABLE.'.user_id', |
|
self::TABLE.'.filter', |
|
self::TABLE.'.name', |
|
self::TABLE.'.is_shared', |
|
self::TABLE.'.append' |
|
) |
|
->eq('project_id', $src_project_id) |
|
->findAll(); |
|
|
|
foreach ($filters as $filter) { |
|
$filter['project_id'] = $dst_project_id; |
|
|
|
$filter['is_shared'] = $filter['is_shared'] ?: 0; |
|
$filter['append'] = $filter['append'] ?: 0; |
|
|
|
if (! $this->db->table(self::TABLE)->save($filter)) { |
|
return false; |
|
} |
|
} |
|
|
|
return true; |
|
} |
|
} |
|
|