summaryrefslogtreecommitdiff
path: root/app/Model/Category.php
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2016-05-28 19:48:22 -0400
committerFrederic Guillot <fred@kanboard.net>2016-05-28 19:48:22 -0400
commit14713b0ec7ed93ca45578da069ad4e19a7d8addf (patch)
tree79972d53f6091a1ddb17f64a6a05a5523f5d5168 /app/Model/Category.php
parent936376ffe74c583d3cb819e98f53a85137fdf8bc (diff)
Rename all models
Diffstat (limited to 'app/Model/Category.php')
-rw-r--r--app/Model/Category.php218
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;
- }
-}