2nd Recurring Tasks Commit

New Trigger (move from first column)
New method to get last column of a board
Locales updated
API changes (createTask, updateTask)
API Docs & Examples
This commit is contained in:
David-Norris
2015-05-05 23:40:05 -04:00
parent a314bbb489
commit 58a0db28cc
22 changed files with 609 additions and 61 deletions

View File

@@ -314,6 +314,18 @@ class Board extends Base
return $this->db->table(self::TABLE)->eq('project_id', $project_id)->asc('position')->findOneColumn('id');
}
/**
* Get the last column id for a given project
*
* @access public
* @param integer $project_id Project id
* @return integer
*/
public function getLastColumn($project_id)
{
return $this->db->table(self::TABLE)->eq('project_id', $project_id)->desc('position')->findOneColumn('id');
}
/**
* Get the list of columns sorted by position [ column_id => title ]
*

View File

@@ -55,8 +55,9 @@ class Task extends Base
*
* @var integer
*/
const RECURE_TRIGGER_MOVE = 0;
const RECURE_TRIGGER_CLOSE = 1;
const RECURE_TRIGGER_FIRST = 0;
const RECURE_TRIGGER_LAST = 1;
const RECURE_TRIGGER_CLOSE = 2;
/**
* Recurrence: timeframe
@@ -134,7 +135,8 @@ class Task extends Base
public function getRecurrenceTriggerList()
{
return array (
Task::RECURE_TRIGGER_MOVE => t('When task is moved to last column'),
Task::RECURE_TRIGGER_FIRST => t('When task is moved from first column'),
Task::RECURE_TRIGGER_LAST => t('When task is moved to last column'),
Task::RECURE_TRIGGER_CLOSE => t('When task is closed'),
);
}

View File

@@ -40,10 +40,15 @@ class TaskPosition extends Base
$this->fireEvents($original_task, $column_id, $position, $swimlane_id);
}
if ($original_task['column_id'] != $column_id
&& $column_id == $this->board->getLastColumnPosition($project_id)
&& $original_task['recurrence_status'] == Task::RECURE_STATUS_PENDING
&& $original_task['recurrence_trigger'] == Task::RECURE_TRIGGER_MOVE)
if ($original_task['recurrence_status'] == Task::RECURE_STATUS_PENDING
&& $original_task['column_id'] != $column_id
&& (
($original_task['column_id'] == $this->board->getFirstColumn($project_id)
&& $original_task['recurrence_trigger'] == Task::RECURE_TRIGGER_FIRST)
|| ($column_id == $this->board->getLastColumn($project_id)
&& $original_task['recurrence_trigger'] == Task::RECURE_TRIGGER_LAST)
)
)
{
$this->taskDuplication->createRecurrence($task_id);
}