Improve comments

This commit is contained in:
Frédéric Guillot
2014-03-04 21:57:12 -05:00
parent ccc54c65cf
commit 19409360ca
10 changed files with 162 additions and 91 deletions

View File

@@ -16,7 +16,7 @@ class Acl extends Base
'app' => array('index'),
'board' => array('index', 'show', 'assign', 'assigntask', 'save'),
'project' => array('tasks', 'index', 'forbidden'),
'task' => array('show', 'create', 'save', 'edit', 'update', 'close', 'confirmclose', 'open', 'confirmopen'),
'task' => array('show', 'create', 'save', 'edit', 'update', 'close', 'confirmclose', 'open', 'confirmopen', 'comment'),
'user' => array('index', 'edit', 'update', 'forbidden', 'logout', 'index'),
'config' => array('index'),
);

50
models/comment.php Normal file
View File

@@ -0,0 +1,50 @@
<?php
namespace Model;
use \SimpleValidator\Validator;
use \SimpleValidator\Validators;
class Comment extends Base
{
const TABLE = 'comments';
public function getAll($task_id)
{
return $this->db
->table(self::TABLE)
->columns(
self::TABLE.'.id',
self::TABLE.'.date',
self::TABLE.'.comment',
\Model\User::TABLE.'.username'
)
->join(\Model\User::TABLE, 'id', 'user_id')
->orderBy(self::TABLE.'.date', 'ASC')
->eq(self::TABLE.'.task_id', $task_id)
->findAll();
}
public function create(array $values)
{
$values['date'] = time();
return (bool) $this->db->table(self::TABLE)->save($values);
}
public function validateCreation(array $values)
{
$v = new Validator($values, array(
new Validators\Required('task_id', t('This value is required')),
new Validators\Integer('task_id', t('This value must be an integer')),
new Validators\Required('user_id', t('This value is required')),
new Validators\Integer('user_id', t('This value must be an integer')),
new Validators\Required('comment', t('Comment is required'))
));
return array(
$v->execute(),
$v->getErrors()
);
}
}

View File

@@ -8,7 +8,6 @@ use \SimpleValidator\Validators;
class Task extends Base
{
const TABLE = 'tasks';
const COMMENTS = 'comments';
public function getColors()
{
@@ -58,21 +57,6 @@ class Task extends Base
}
}
public function getCommentsByTask($task_id)
{
return $this->db
->table(self::COMMENTS)
->columns(
self::COMMENTS.'.date',
self::COMMENTS.'.comment',
\Model\User::TABLE.'.username'
)
->join(\Model\User::TABLE, 'id', 'user_id')
->orderBy(self::COMMENTS.'.date', 'ASC')
->eq(self::COMMENTS.'.task_id', $task_id)
->findAll();
}
public function getAllByProjectId($project_id, array $status = array(1, 0))
{
return $this->db->table(self::TABLE)
@@ -188,25 +172,6 @@ class Task extends Base
->update(array('column_id' => $column_id, 'position' => $position));
}
public function addComment($values)
{
$values['date'] = time();
return (bool) $this->db->table(self::COMMENTS)->save($values);
}
public function validateComment(array $values)
{
$v = new Validator($values, array(
new Validators\Required('comment', t('Comment is required'))
));
return array(
$v->execute(),
$v->getErrors()
);
}
public function validateCreation(array $values)
{
$v = new Validator($values, array(