diff options
author | Frederic Guillot <fred@kanboard.net> | 2016-05-28 19:48:22 -0400 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2016-05-28 19:48:22 -0400 |
commit | 14713b0ec7ed93ca45578da069ad4e19a7d8addf (patch) | |
tree | 79972d53f6091a1ddb17f64a6a05a5523f5d5168 /app/Model/Category.php | |
parent | 936376ffe74c583d3cb819e98f53a85137fdf8bc (diff) |
Rename all models
Diffstat (limited to 'app/Model/Category.php')
-rw-r--r-- | app/Model/Category.php | 218 |
1 files changed, 0 insertions, 218 deletions
diff --git a/app/Model/Category.php b/app/Model/Category.php deleted file mode 100644 index 00690a41..00000000 --- a/app/Model/Category.php +++ /dev/null @@ -1,218 +0,0 @@ -<?php - -namespace Kanboard\Model; - -use Kanboard\Core\Base; - -/** - * Category model - * - * @package model - * @author Frederic Guillot - */ -class Category extends Base -{ - /** - * SQL table name - * - * @var string - */ - const TABLE = 'project_has_categories'; - - /** - * Return true if a category exists for a given project - * - * @access public - * @param integer $category_id Category id - * @return boolean - */ - public function exists($category_id) - { - return $this->db->table(self::TABLE)->eq('id', $category_id)->exists(); - } - - /** - * Get a category by the id - * - * @access public - * @param integer $category_id Category id - * @return array - */ - public function getById($category_id) - { - return $this->db->table(self::TABLE)->eq('id', $category_id)->findOne(); - } - - /** - * Get the category name by the id - * - * @access public - * @param integer $category_id Category id - * @return string - */ - public function getNameById($category_id) - { - return $this->db->table(self::TABLE)->eq('id', $category_id)->findOneColumn('name') ?: ''; - } - - /** - * Get a category id by the category name and project id - * - * @access public - * @param integer $project_id Project id - * @param string $category_name Category name - * @return integer - */ - public function getIdByName($project_id, $category_name) - { - return (int) $this->db->table(self::TABLE) - ->eq('project_id', $project_id) - ->eq('name', $category_name) - ->findOneColumn('id'); - } - - /** - * Return the list of all categories - * - * @access public - * @param integer $project_id Project id - * @param bool $prepend_none If true, prepend to the list the value 'None' - * @param bool $prepend_all If true, prepend to the list the value 'All' - * @return array - */ - public function getList($project_id, $prepend_none = true, $prepend_all = false) - { - $listing = $this->db->hashtable(self::TABLE) - ->eq('project_id', $project_id) - ->asc('name') - ->getAll('id', 'name'); - - $prepend = array(); - - if ($prepend_all) { - $prepend[-1] = t('All categories'); - } - - if ($prepend_none) { - $prepend[0] = t('No category'); - } - - return $prepend + $listing; - } - - /** - * Return all categories for a given project - * - * @access public - * @param integer $project_id Project id - * @return array - */ - public function getAll($project_id) - { - return $this->db->table(self::TABLE) - ->eq('project_id', $project_id) - ->asc('name') - ->findAll(); - } - - /** - * Create default categories during project creation (transaction already started in Project::create()) - * - * @access public - * @param integer $project_id - * @return boolean - */ - public function createDefaultCategories($project_id) - { - $results = array(); - $categories = explode(',', $this->config->get('project_categories')); - - foreach ($categories as $category) { - $category = trim($category); - - if (! empty($category)) { - $results[] = $this->db->table(self::TABLE)->insert(array( - 'project_id' => $project_id, - 'name' => $category, - )); - } - } - - return in_array(false, $results, true); - } - - /** - * Create a category (run inside a transaction) - * - * @access public - * @param array $values Form values - * @return bool|integer - */ - public function create(array $values) - { - return $this->db->table(self::TABLE)->persist($values); - } - - /** - * Update a category - * - * @access public - * @param array $values Form values - * @return bool - */ - public function update(array $values) - { - return $this->db->table(self::TABLE)->eq('id', $values['id'])->save($values); - } - - /** - * Remove a category - * - * @access public - * @param integer $category_id Category id - * @return bool - */ - public function remove($category_id) - { - $this->db->startTransaction(); - - $this->db->table(Task::TABLE)->eq('category_id', $category_id)->update(array('category_id' => 0)); - - if (! $this->db->table(self::TABLE)->eq('id', $category_id)->remove()) { - $this->db->cancelTransaction(); - return false; - } - - $this->db->closeTransaction(); - - return true; - } - - /** - * Duplicate categories from a project to another one, must be executed inside a transaction - * - * @author Antonio Rabelo - * @param integer $src_project_id Source project id - * @param integer $dst_project_id Destination project id - * @return boolean - */ - public function duplicate($src_project_id, $dst_project_id) - { - $categories = $this->db - ->table(self::TABLE) - ->columns('name', 'description') - ->eq('project_id', $src_project_id) - ->asc('name') - ->findAll(); - - foreach ($categories as $category) { - $category['project_id'] = $dst_project_id; - - if (! $this->db->table(self::TABLE)->save($category)) { - return false; - } - } - - return true; - } -} |