Add the possibility to add a description directly from the task show view

This commit is contained in:
Frédéric Guillot
2014-03-04 22:45:58 -05:00
parent 19409360ca
commit 141616b48c
6 changed files with 108 additions and 25 deletions

View File

@@ -39,6 +39,42 @@ class Task extends Base
$this->response->text('FAILED');
}
// Display the template show task, common between different task view
private function showTask(array $task, array $comment_form = array(), array $description_form = array())
{
if (empty($comment_form)) {
$comment_form = array(
'values' => array(
'task_id' => $task['id'],
'user_id' => $this->acl->getUserId()
),
'errors' => array()
);
}
if (empty($description_form)) {
$description_form = array(
'values' => array(
'id' => $task['id'],
),
'errors' => array()
);
}
$this->response->html($this->template->layout('task_show', array(
'comment_form' => $comment_form,
'description_form' => $description_form,
'comments' => $this->comment->getAll($task['id']),
'task' => $task,
'columns_list' => $this->board->getColumnsList($task['project_id']),
'colors_list' => $this->task->getColors(),
'menu' => 'tasks',
'title' => $task['title'],
)));
}
// Show a task
public function show()
{
@@ -47,16 +83,7 @@ class Task extends Base
if (! $task) $this->notfound();
$this->checkProjectPermissions($task['project_id']);
$this->response->html($this->template->layout('task_show', array(
'comments' => $this->comment->getAll($task['id']),
'comment_errors' => array(),
'comment_values' => array('task_id' => $task['id'], 'user_id' => $this->acl->getUserId()),
'task' => $task,
'columns_list' => $this->board->getColumnsList($task['project_id']),
'colors_list' => $this->task->getColors(),
'menu' => 'tasks',
'title' => $task['title'],
)));
$this->showTask($task);
}
// Add a comment
@@ -82,16 +109,40 @@ class Task extends Base
$this->response->redirect('?controller=task&action=show&task_id='.$task['id']);
}
$this->response->html($this->template->layout('task_show', array(
'comments' => $this->comment->getAll($task['id']),
'comment_errors' => $errors,
'comment_values' => $values,
'task' => $task,
'columns_list' => $this->board->getColumnsList($task['project_id']),
'colors_list' => $this->task->getColors(),
'menu' => 'tasks',
'title' => $task['title'],
)));
$this->showTask(
$task,
array('values' => $values, 'errors' => $errors)
);
}
// Add a description from the show task page
public function description()
{
$task = $this->task->getById($this->request->getIntegerParam('task_id'), true);
$values = $this->request->getValues();
if (! $task) $this->notfound();
$this->checkProjectPermissions($task['project_id']);
list($valid, $errors) = $this->task->validateDescriptionCreation($values);
if ($valid) {
if ($this->task->update($values)) {
$this->session->flash(t('Task updated successfully.'));
}
else {
$this->session->flashError(t('Unable to update your task.'));
}
$this->response->redirect('?controller=task&action=show&task_id='.$task['id']);
}
$this->showTask(
$task,
array(),
array('values' => $values, 'errors' => $errors)
);
}
// Display a form to create a new task