Update task links, assignee and time tracking (#775), group links by label (#669)

Merge and modification of pull-request #785
This commit is contained in:
Frederic Guillot
2015-05-09 22:09:09 -04:00
parent 0e019e8669
commit 5d5ba44337
31 changed files with 488 additions and 84 deletions

View File

@@ -197,7 +197,7 @@ class Board extends Base
{
$task = $this->getTask();
$this->response->html($this->template->render('board/tasklinks', array(
'links' => $this->taskLink->getLinks($task['id']),
'links' => $this->taskLink->getAll($task['id']),
'task' => $task,
)));
}

View File

@@ -36,7 +36,7 @@ class Task extends Base
'project' => $project,
'comments' => $this->comment->getAll($task['id']),
'subtasks' => $this->subtask->getAll($task['id']),
'links' => $this->taskLink->getLinks($task['id']),
'links' => $this->taskLink->getAllGroupedByLabel($task['id']),
'task' => $task,
'columns_list' => $this->board->getColumnsList($task['project_id']),
'colors_list' => $this->color->getList(),
@@ -72,7 +72,7 @@ class Task extends Base
'images' => $this->file->getAllImages($task['id']),
'comments' => $this->comment->getAll($task['id']),
'subtasks' => $subtasks,
'links' => $this->taskLink->getLinks($task['id']),
'links' => $this->taskLink->getAllGroupedByLabel($task['id']),
'task' => $task,
'values' => $values,
'link_label_list' => $this->link->getList(0, false),

View File

@@ -38,13 +38,7 @@ class Tasklink extends Base
$task = $this->getTask();
$ajax = $this->request->isAjax() || $this->request->getIntegerParam('ajax');
if (empty($values)) {
$values = array(
'task_id' => $task['id'],
);
}
if ($ajax) {
if ($ajax && empty($errors)) {
$this->response->html($this->template->render('tasklink/create', array(
'values' => $values,
'errors' => $errors,
@@ -81,19 +75,72 @@ class Tasklink extends Base
if ($this->taskLink->create($values['task_id'], $values['opposite_task_id'], $values['link_id'])) {
$this->session->flash(t('Link added successfully.'));
if ($ajax) {
$this->response->redirect($this->helper->url('board', 'show', array('project_id' => $task['project_id'])));
}
$this->response->redirect($this->helper->url('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])).'#links');
}
else {
$this->session->flashError(t('Unable to create your link.'));
}
$errors = array('title' => array(t('The exact same link already exists')));
$this->session->flashError(t('Unable to create your link.'));
}
$this->create($values, $errors);
}
/**
* Edit form
*
* @access public
*/
public function edit(array $values = array(), array $errors = array())
{
$task = $this->getTask();
$task_link = $this->getTaskLink();
if (empty($values)) {
$opposite_task = $this->taskFinder->getById($task_link['opposite_task_id']);
$values = $task_link;
$values['title'] = '#'.$opposite_task['id'].' - '.$opposite_task['title'];
}
$this->response->html($this->taskLayout('tasklink/edit', array(
'values' => $values,
'errors' => $errors,
'task_link' => $task_link,
'task' => $task,
'labels' => $this->link->getList(0, false),
'title' => t('Edit link')
)));
}
/**
* Validation and update
*
* @access public
*/
public function update()
{
$task = $this->getTask();
$values = $this->request->getValues();
list($valid, $errors) = $this->taskLink->validateModification($values);
if ($valid) {
if ($this->taskLink->update($values['id'], $values['task_id'], $values['opposite_task_id'], $values['link_id'])) {
$this->session->flash(t('Link updated successfully.'));
$this->response->redirect($this->helper->url('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])).'#links');
}
$this->session->flashError(t('Unable to update your link.'));
}
$this->edit($values, $errors);
}
/**
* Confirmation dialog before removing a link
*
@@ -127,6 +174,6 @@ class Tasklink extends Base
$this->session->flashError(t('Unable to remove this link.'));
}
$this->response->redirect($this->helper->url('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])));
$this->response->redirect($this->helper->url('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])).'#links');
}
}