diff --git a/app/Action/TaskAssignDueDateOnMoveColumn.php b/app/Action/TaskAssignDueDateOnMoveColumn.php new file mode 100644 index 000000000..e6f414c76 --- /dev/null +++ b/app/Action/TaskAssignDueDateOnMoveColumn.php @@ -0,0 +1,97 @@ + t('Duration in days'), + 'column_id' => t('Column'), + ); + } +/** + * Get the required parameter for the event + * + * @access public + * @return string[] + */ + public function getEventRequiredParameters() + { + return array( + 'task_id', + 'task' => array( + 'project_id', + ), + 'src_column_id', + ); + } + + /** + * Execute the action (set the task color) + * + * @access public + * @param array $data Event data dictionary + * @return bool True if the action was executed or false when not executed + */ + public function doAction(array $data) + { + $values = array( + 'id' => $data['task_id'], + 'date_due' => strtotime('+'.$this->getParam('duration').'days'), + ); + + return $this->taskModificationModel->update($values, false); + } + + /** + * Check if the event data meet the action condition + * + * @access public + * @param array $data Event data dictionary + * @return bool + */ + public function hasRequiredCondition(array $data) + { + return true; + } +} diff --git a/app/ServiceProvider/ActionProvider.php b/app/ServiceProvider/ActionProvider.php index 1cfa79570..3d63a20a4 100644 --- a/app/ServiceProvider/ActionProvider.php +++ b/app/ServiceProvider/ActionProvider.php @@ -51,6 +51,8 @@ use Kanboard\Action\TaskAssignPrioritySwimlane; use Kanboard\Action\SubtaskTimerMoveTaskColumn; use Kanboard\Action\StopSubtaskTimerMoveTaskColumn; use Kanboard\Action\TaskMoveColumnOnStartDate; +use Kanboard\Action\TaskAssignDueDateOnMoveColumn; + /** * Action Provider @@ -116,7 +118,8 @@ class ActionProvider implements ServiceProviderInterface $container['actionManager']->register(new StopSubtaskTimerMoveTaskColumn($container)); $container['actionManager']->register(new TaskMoveColumnOnStartDate($container)); $container['actionManager']->register(new TaskAssignColorOnStartDate($container)); - + $container['actionManager']->register(new TaskAssignDueDateOnMoveColumn($container)); + return $container; } }