Refactoring of internal task events

This commit is contained in:
Frederic Guillot
2016-07-19 22:38:30 -04:00
parent d9d3788222
commit 390082aa41
58 changed files with 1210 additions and 468 deletions

View File

@@ -216,7 +216,8 @@ abstract class Base extends \Kanboard\Core\Base
*/
public function hasRequiredProject(array $data)
{
return isset($data['project_id']) && $data['project_id'] == $this->getProjectId();
return (isset($data['project_id']) && $data['project_id'] == $this->getProjectId()) ||
(isset($data['task']['project_id']) && $data['task']['project_id'] == $this->getProjectId());
}
/**
@@ -226,10 +227,14 @@ abstract class Base extends \Kanboard\Core\Base
* @param array $data Event data dictionary
* @return bool True if all keys are there
*/
public function hasRequiredParameters(array $data)
public function hasRequiredParameters(array $data, array $parameters = array())
{
foreach ($this->getEventRequiredParameters() as $parameter) {
if (! isset($data[$parameter])) {
$parameters = $parameters ?: $this->getEventRequiredParameters();
foreach ($parameters as $key => $value) {
if (is_array($value)) {
return isset($data[$key]) && $this->hasRequiredParameters($data[$key], $value);
} else if (! isset($data[$value])) {
return false;
}
}

View File

@@ -55,7 +55,13 @@ class CommentCreationMoveTaskColumn extends Base
*/
public function getEventRequiredParameters()
{
return array('task_id', 'column_id');
return array(
'task_id',
'task' => array(
'column_id',
'project_id',
),
);
}
/**
@@ -71,7 +77,7 @@ class CommentCreationMoveTaskColumn extends Base
return false;
}
$column = $this->columnModel->getById($data['column_id']);
$column = $this->columnModel->getById($data['task']['column_id']);
return (bool) $this->commentModel->create(array(
'comment' => t('Moved to column %s', $column['title']),
@@ -89,6 +95,6 @@ class CommentCreationMoveTaskColumn extends Base
*/
public function hasRequiredCondition(array $data)
{
return $data['column_id'] == $this->getParam('column_id');
return $data['task']['column_id'] == $this->getParam('column_id');
}
}

View File

@@ -60,7 +60,10 @@ class TaskAssignCategoryColor extends Base
{
return array(
'task_id',
'color_id',
'task' => array(
'project_id',
'color_id',
),
);
}
@@ -90,6 +93,6 @@ class TaskAssignCategoryColor extends Base
*/
public function hasRequiredCondition(array $data)
{
return $data['color_id'] == $this->getParam('color_id');
return $data['task']['color_id'] == $this->getParam('color_id');
}
}

View File

@@ -60,7 +60,10 @@ class TaskAssignColorCategory extends Base
{
return array(
'task_id',
'category_id',
'task' => array(
'project_id',
'category_id',
),
);
}
@@ -90,6 +93,6 @@ class TaskAssignColorCategory extends Base
*/
public function hasRequiredCondition(array $data)
{
return $data['category_id'] == $this->getParam('category_id');
return $data['task']['category_id'] == $this->getParam('category_id');
}
}

View File

@@ -61,7 +61,10 @@ class TaskAssignColorColumn extends Base
{
return array(
'task_id',
'column_id',
'task' => array(
'project_id',
'column_id',
),
);
}
@@ -91,6 +94,6 @@ class TaskAssignColorColumn extends Base
*/
public function hasRequiredCondition(array $data)
{
return $data['column_id'] == $this->getParam('column_id');
return $data['task']['column_id'] == $this->getParam('column_id');
}
}

View File

@@ -60,7 +60,10 @@ class TaskAssignColorPriority extends Base
{
return array(
'task_id',
'priority',
'task' => array(
'project_id',
'priority',
),
);
}
@@ -90,6 +93,6 @@ class TaskAssignColorPriority extends Base
*/
public function hasRequiredCondition(array $data)
{
return $data['priority'] == $this->getParam('priority');
return $data['task']['priority'] == $this->getParam('priority');
}
}

View File

@@ -61,7 +61,10 @@ class TaskAssignColorUser extends Base
{
return array(
'task_id',
'owner_id',
'task' => array(
'project_id',
'owner_id',
),
);
}
@@ -91,6 +94,6 @@ class TaskAssignColorUser extends Base
*/
public function hasRequiredCondition(array $data)
{
return $data['owner_id'] == $this->getParam('user_id');
return $data['task']['owner_id'] == $this->getParam('user_id');
}
}

View File

@@ -59,7 +59,10 @@ class TaskAssignCurrentUserColumn extends Base
{
return array(
'task_id',
'column_id',
'task' => array(
'project_id',
'column_id',
),
);
}
@@ -93,6 +96,6 @@ class TaskAssignCurrentUserColumn extends Base
*/
public function hasRequiredCondition(array $data)
{
return $data['column_id'] == $this->getParam('column_id');
return $data['task']['column_id'] == $this->getParam('column_id');
}
}

View File

@@ -61,7 +61,10 @@ class TaskAssignSpecificUser extends Base
{
return array(
'task_id',
'column_id',
'task' => array(
'project_id',
'column_id',
),
);
}
@@ -91,6 +94,6 @@ class TaskAssignSpecificUser extends Base
*/
public function hasRequiredCondition(array $data)
{
return $data['column_id'] == $this->getParam('column_id');
return $data['task']['column_id'] == $this->getParam('column_id');
}
}

View File

@@ -55,7 +55,13 @@ class TaskCloseColumn extends Base
*/
public function getEventRequiredParameters()
{
return array('task_id', 'column_id');
return array(
'task_id',
'task' => array(
'project_id',
'column_id',
)
);
}
/**
@@ -79,6 +85,6 @@ class TaskCloseColumn extends Base
*/
public function hasRequiredCondition(array $data)
{
return $data['column_id'] == $this->getParam('column_id');
return $data['task']['column_id'] == $this->getParam('column_id');
}
}

View File

@@ -52,6 +52,7 @@ class TaskCreation extends Base
public function getEventRequiredParameters()
{
return array(
'project_id',
'reference',
'title',
);

View File

@@ -62,7 +62,10 @@ class TaskDuplicateAnotherProject extends Base
{
return array(
'task_id',
'column_id',
'task' => array(
'project_id',
'column_id',
)
);
}
@@ -76,7 +79,12 @@ class TaskDuplicateAnotherProject extends Base
public function doAction(array $data)
{
$destination_column_id = $this->columnModel->getFirstColumnId($this->getParam('project_id'));
return (bool) $this->taskProjectDuplicationModel->duplicateToProject($data['task_id'], $this->getParam('project_id'), null, $destination_column_id);
return (bool) $this->taskProjectDuplicationModel->duplicateToProject(
$data['task_id'],
$this->getParam('project_id'),
null,
$destination_column_id
);
}
/**
@@ -88,6 +96,6 @@ class TaskDuplicateAnotherProject extends Base
*/
public function hasRequiredCondition(array $data)
{
return $data['column_id'] == $this->getParam('column_id') && $data['project_id'] != $this->getParam('project_id');
return $data['task']['column_id'] == $this->getParam('column_id') && $data['task']['project_id'] != $this->getParam('project_id');
}
}

View File

@@ -62,7 +62,10 @@ class TaskEmail extends Base
{
return array(
'task_id',
'column_id',
'task' => array(
'project_id',
'column_id',
),
);
}
@@ -78,13 +81,14 @@ class TaskEmail extends Base
$user = $this->userModel->getById($this->getParam('user_id'));
if (! empty($user['email'])) {
$task = $this->taskFinderModel->getDetails($data['task_id']);
$this->emailClient->send(
$user['email'],
$user['name'] ?: $user['username'],
$this->getParam('subject'),
$this->template->render('notification/task_create', array('task' => $task, 'application_url' => $this->configModel->get('application_url')))
$this->template->render('notification/task_create', array(
'task' => $data['task'],
'application_url' => $this->configModel->get('application_url'),
))
);
return true;
@@ -102,6 +106,6 @@ class TaskEmail extends Base
*/
public function hasRequiredCondition(array $data)
{
return $data['column_id'] == $this->getParam('column_id');
return $data['task']['column_id'] == $this->getParam('column_id');
}
}

View File

@@ -61,8 +61,10 @@ class TaskMoveAnotherProject extends Base
{
return array(
'task_id',
'column_id',
'project_id',
'task' => array(
'project_id',
'column_id',
)
);
}
@@ -87,6 +89,6 @@ class TaskMoveAnotherProject extends Base
*/
public function hasRequiredCondition(array $data)
{
return $data['column_id'] == $this->getParam('column_id') && $data['project_id'] != $this->getParam('project_id');
return $data['task']['column_id'] == $this->getParam('column_id') && $data['task']['project_id'] != $this->getParam('project_id');
}
}

View File

@@ -61,8 +61,13 @@ class TaskMoveColumnAssigned extends Base
{
return array(
'task_id',
'column_id',
'owner_id'
'task' => array(
'project_id',
'column_id',
'owner_id',
'position',
'swimlane_id',
)
);
}
@@ -75,14 +80,12 @@ class TaskMoveColumnAssigned extends Base
*/
public function doAction(array $data)
{
$original_task = $this->taskFinderModel->getById($data['task_id']);
return $this->taskPositionModel->movePosition(
$data['project_id'],
$data['task']['project_id'],
$data['task_id'],
$this->getParam('dest_column_id'),
$original_task['position'],
$original_task['swimlane_id'],
$data['task']['position'],
$data['task']['swimlane_id'],
false
);
}
@@ -96,6 +99,6 @@ class TaskMoveColumnAssigned extends Base
*/
public function hasRequiredCondition(array $data)
{
return $data['column_id'] == $this->getParam('src_column_id') && $data['owner_id'] > 0;
return $data['task']['column_id'] == $this->getParam('src_column_id') && $data['task']['owner_id'] > 0;
}
}

View File

@@ -60,8 +60,13 @@ class TaskMoveColumnCategoryChange extends Base
{
return array(
'task_id',
'column_id',
'category_id',
'task' => array(
'project_id',
'column_id',
'category_id',
'position',
'swimlane_id',
)
);
}
@@ -74,14 +79,12 @@ class TaskMoveColumnCategoryChange extends Base
*/
public function doAction(array $data)
{
$original_task = $this->taskFinderModel->getById($data['task_id']);
return $this->taskPositionModel->movePosition(
$data['project_id'],
$data['task']['project_id'],
$data['task_id'],
$this->getParam('dest_column_id'),
$original_task['position'],
$original_task['swimlane_id'],
$data['task']['position'],
$data['task']['swimlane_id'],
false
);
}
@@ -95,6 +98,6 @@ class TaskMoveColumnCategoryChange extends Base
*/
public function hasRequiredCondition(array $data)
{
return $data['column_id'] != $this->getParam('dest_column_id') && $data['category_id'] == $this->getParam('category_id');
return $data['task']['column_id'] != $this->getParam('dest_column_id') && $data['task']['category_id'] == $this->getParam('category_id');
}
}

View File

@@ -61,8 +61,13 @@ class TaskMoveColumnUnAssigned extends Base
{
return array(
'task_id',
'column_id',
'owner_id'
'task' => array(
'project_id',
'column_id',
'owner_id',
'position',
'swimlane_id',
)
);
}
@@ -75,14 +80,12 @@ class TaskMoveColumnUnAssigned extends Base
*/
public function doAction(array $data)
{
$original_task = $this->taskFinderModel->getById($data['task_id']);
return $this->taskPositionModel->movePosition(
$data['project_id'],
$data['task']['project_id'],
$data['task_id'],
$this->getParam('dest_column_id'),
$original_task['position'],
$original_task['swimlane_id'],
$data['task']['position'],
$data['task']['swimlane_id'],
false
);
}
@@ -96,6 +99,6 @@ class TaskMoveColumnUnAssigned extends Base
*/
public function hasRequiredCondition(array $data)
{
return $data['column_id'] == $this->getParam('src_column_id') && $data['owner_id'] == 0;
return $data['task']['column_id'] == $this->getParam('src_column_id') && $data['task']['owner_id'] == 0;
}
}

View File

@@ -59,7 +59,10 @@ class TaskUpdateStartDate extends Base
{
return array(
'task_id',
'column_id',
'task' => array(
'project_id',
'column_id',
),
);
}
@@ -89,6 +92,6 @@ class TaskUpdateStartDate extends Base
*/
public function hasRequiredCondition(array $data)
{
return $data['column_id'] == $this->getParam('column_id');
return $data['task']['column_id'] == $this->getParam('column_id');
}
}