From a314bbb489eff2d419481ad001805ce13edb5352 Mon Sep 17 00:00:00 2001 From: David-Norris Date: Sun, 3 May 2015 00:12:28 -0400 Subject: Initial Recurring Tasks Commit Initial Recurring Tasks Commit No Locales Updated. --- app/Model/TaskPosition.php | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'app/Model/TaskPosition.php') diff --git a/app/Model/TaskPosition.php b/app/Model/TaskPosition.php index ab5fe43b..8589cac5 100644 --- a/app/Model/TaskPosition.php +++ b/app/Model/TaskPosition.php @@ -39,6 +39,14 @@ class TaskPosition extends Base if ($fire_events) { $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) + { + $this->taskDuplication->createRecurrence($task_id); + } } return $result; -- cgit v1.2.3 From 58a0db28cccd6096a129620ddd0e631c1732fc9e Mon Sep 17 00:00:00 2001 From: David-Norris Date: Tue, 5 May 2015 23:40:05 -0400 Subject: 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 --- app/Locale/da_DK/translations.php | 24 ++++ app/Locale/de_DE/translations.php | 24 ++++ app/Locale/es_ES/translations.php | 33 +++++- app/Locale/fi_FI/translations.php | 24 ++++ app/Locale/fr_FR/translations.php | 24 ++++ app/Locale/hu_HU/translations.php | 24 ++++ app/Locale/it_IT/translations.php | 24 ++++ app/Locale/ja_JP/translations.php | 24 ++++ app/Locale/nl_NL/translations.php | 24 ++++ app/Locale/pl_PL/translations.php | 24 ++++ app/Locale/pt_BR/translations.php | 24 ++++ app/Locale/ru_RU/translations.php | 24 ++++ app/Locale/sr_Latn_RS/translations.php | 24 ++++ app/Locale/sv_SE/translations.php | 24 ++++ app/Locale/th_TH/translations.php | 24 ++++ app/Locale/tr_TR/translations.php | 24 ++++ app/Locale/zh_CN/translations.php | 24 ++++ app/Model/Board.php | 12 ++ app/Model/Task.php | 8 +- app/Model/TaskPosition.php | 13 ++- docs/api-json-rpc.markdown | 206 +++++++++++++++++++++++++-------- jsonrpc.php | 14 ++- 22 files changed, 609 insertions(+), 61 deletions(-) (limited to 'app/Model/TaskPosition.php') diff --git a/app/Locale/da_DK/translations.php b/app/Locale/da_DK/translations.php index f06f87c1..b26d1958 100644 --- a/app/Locale/da_DK/translations.php +++ b/app/Locale/da_DK/translations.php @@ -868,4 +868,28 @@ return array( // 'Help on Sendgrid integration' => '', // 'Disable two factor authentication' => '', // 'Do you really want to disable the two factor authentication for this user: "%s"?' => '', + // 'Action date' => '', + // 'Base date to calculate new due date' => '', + // 'Base date to calculate new due date: %s' => '', + // 'Created recurrent task: %s' => '', + // 'Day(s)' => '', + // 'Edit recurrence' => '', + // 'Existing due date' => '', + // 'Factor to calculate new due date' => '', + // 'Factor to calculate new due date: %s' => '', + // 'Generate recurrent task' => '', + // 'Month(s)' => '', + // 'No recurrent task is scheduled to generate' => '', + // 'Recurrence' => '', + // 'Recurrent task created by: %s' => '', + // 'Recurrent task has been generated' => '', + // 'Recurrent task is scheduled to generate' => '', + // 'Timeframe to calculate new due date' => '', + // 'Timeframe to calculate new due date: %s' => '', + // 'Trigger to generate recurrent task' => '', + // 'Trigger to generate recurrent task: %s' => '', + // 'When task is closed' => '', + // 'When task is moved from first column' => '', + // 'When task is moved to last column' => '', + // 'Year(s)' => '', ); diff --git a/app/Locale/de_DE/translations.php b/app/Locale/de_DE/translations.php index 1d43cf0c..9ff10a55 100644 --- a/app/Locale/de_DE/translations.php +++ b/app/Locale/de_DE/translations.php @@ -868,4 +868,28 @@ return array( // 'Help on Sendgrid integration' => '', // 'Disable two factor authentication' => '', // 'Do you really want to disable the two factor authentication for this user: "%s"?' => '', + // 'Action date' => '', + // 'Base date to calculate new due date' => '', + // 'Base date to calculate new due date: %s' => '', + // 'Created recurrent task: %s' => '', + // 'Day(s)' => '', + // 'Edit recurrence' => '', + // 'Existing due date' => '', + // 'Factor to calculate new due date' => '', + // 'Factor to calculate new due date: %s' => '', + // 'Generate recurrent task' => '', + // 'Month(s)' => '', + // 'No recurrent task is scheduled to generate' => '', + // 'Recurrence' => '', + // 'Recurrent task created by: %s' => '', + // 'Recurrent task has been generated' => '', + // 'Recurrent task is scheduled to generate' => '', + // 'Timeframe to calculate new due date' => '', + // 'Timeframe to calculate new due date: %s' => '', + // 'Trigger to generate recurrent task' => '', + // 'Trigger to generate recurrent task: %s' => '', + // 'When task is closed' => '', + // 'When task is moved from first column' => '', + // 'When task is moved to last column' => '', + // 'Year(s)' => '', ); diff --git a/app/Locale/es_ES/translations.php b/app/Locale/es_ES/translations.php index 3edb17d5..e519aaaa 100644 --- a/app/Locale/es_ES/translations.php +++ b/app/Locale/es_ES/translations.php @@ -614,7 +614,7 @@ return array( 'Remove a swimlane' => 'Remover un carril', 'Rename' => 'Renombrar', 'Show default swimlane' => 'Mostrar carril por defecto', - 'Swimlane modification for the project "%s"' => '', + // 'Swimlane modification for the project "%s"' => '', 'Swimlane not found.' => 'Carril no encontrado', 'Swimlane removed successfully.' => 'Carril removido correctamente', 'Swimlanes' => 'Carriles', @@ -653,7 +653,7 @@ return array( 'Filter by status' => 'Filtrar por estado', 'Calendar' => 'Calendario', 'Next' => 'Siguiente', - '#%d' => '', + // '#%d' => '', 'Filter by color' => 'Filtrar por color', 'Filter by swimlane' => 'Filtrar por carril', 'All swimlanes' => 'Todos los carriles', @@ -846,8 +846,8 @@ return array( 'Secret key: ' => 'Clave secreta: ', 'Test your device' => 'Probar tu dispositivo', 'Assign a color when the task is moved to a specific column' => 'Asignar un color al mover la tarea a una columna específica', - '%s via Kanboard' => '%s vía Kanboard', - 'uploaded by: %s' => 'cargado por: %s', + '%s via Kanboard' => '%s vía Kanboard', + 'uploaded by: %s' => 'cargado por: %s', 'uploaded on: %s' => 'cargado en: %s', 'size: %s' => 'tamaño: %s', 'Burndown chart for "%s"' => 'Trabajo pendiente para "%s"', @@ -868,5 +868,28 @@ return array( 'Help on Sendgrid integration' => 'Ayuda sobre la integración con Sendgrid', 'Disable two factor authentication' => 'Desactivar la autenticación de dos factores', 'Do you really want to disable the two factor authentication for this user: "%s"?' => '¿Realmentes quieres desactuvar la autenticación de dos factores para este usuario: "%s?"', + // 'Action date' => '', + // 'Base date to calculate new due date' => '', + // 'Base date to calculate new due date: %s' => '', + // 'Created recurrent task: %s' => '', + // 'Day(s)' => '', + // 'Edit recurrence' => '', + // 'Existing due date' => '', + // 'Factor to calculate new due date' => '', + // 'Factor to calculate new due date: %s' => '', + // 'Generate recurrent task' => '', + // 'Month(s)' => '', + // 'No recurrent task is scheduled to generate' => '', + // 'Recurrence' => '', + // 'Recurrent task created by: %s' => '', + // 'Recurrent task has been generated' => '', + // 'Recurrent task is scheduled to generate' => '', + // 'Timeframe to calculate new due date' => '', + // 'Timeframe to calculate new due date: %s' => '', + // 'Trigger to generate recurrent task' => '', + // 'Trigger to generate recurrent task: %s' => '', + // 'When task is closed' => '', + // 'When task is moved from first column' => '', + // 'When task is moved to last column' => '', + // 'Year(s)' => '', ); - diff --git a/app/Locale/fi_FI/translations.php b/app/Locale/fi_FI/translations.php index 9ca386d6..eb2a8387 100644 --- a/app/Locale/fi_FI/translations.php +++ b/app/Locale/fi_FI/translations.php @@ -868,4 +868,28 @@ return array( // 'Help on Sendgrid integration' => '', // 'Disable two factor authentication' => '', // 'Do you really want to disable the two factor authentication for this user: "%s"?' => '', + // 'Action date' => '', + // 'Base date to calculate new due date' => '', + // 'Base date to calculate new due date: %s' => '', + // 'Created recurrent task: %s' => '', + // 'Day(s)' => '', + // 'Edit recurrence' => '', + // 'Existing due date' => '', + // 'Factor to calculate new due date' => '', + // 'Factor to calculate new due date: %s' => '', + // 'Generate recurrent task' => '', + // 'Month(s)' => '', + // 'No recurrent task is scheduled to generate' => '', + // 'Recurrence' => '', + // 'Recurrent task created by: %s' => '', + // 'Recurrent task has been generated' => '', + // 'Recurrent task is scheduled to generate' => '', + // 'Timeframe to calculate new due date' => '', + // 'Timeframe to calculate new due date: %s' => '', + // 'Trigger to generate recurrent task' => '', + // 'Trigger to generate recurrent task: %s' => '', + // 'When task is closed' => '', + // 'When task is moved from first column' => '', + // 'When task is moved to last column' => '', + // 'Year(s)' => '', ); diff --git a/app/Locale/fr_FR/translations.php b/app/Locale/fr_FR/translations.php index c05dd689..7f133179 100644 --- a/app/Locale/fr_FR/translations.php +++ b/app/Locale/fr_FR/translations.php @@ -870,4 +870,28 @@ return array( 'Help on Sendgrid integration' => 'Aide sur l\'intégration avec Sendgrid', 'Disable two factor authentication' => 'Désactiver l\'authentification à deux facteurs', 'Do you really want to disable the two factor authentication for this user: "%s"?' => 'Voulez-vous vraiment désactiver l\'authentification à deux facteurs pour cet utilisateur : « %s » ?', + // 'Action date' => '', + // 'Base date to calculate new due date' => '', + // 'Base date to calculate new due date: %s' => '', + // 'Created recurrent task: %s' => '', + // 'Day(s)' => '', + // 'Edit recurrence' => '', + // 'Existing due date' => '', + // 'Factor to calculate new due date' => '', + // 'Factor to calculate new due date: %s' => '', + // 'Generate recurrent task' => '', + // 'Month(s)' => '', + // 'No recurrent task is scheduled to generate' => '', + // 'Recurrence' => '', + // 'Recurrent task created by: %s' => '', + // 'Recurrent task has been generated' => '', + // 'Recurrent task is scheduled to generate' => '', + // 'Timeframe to calculate new due date' => '', + // 'Timeframe to calculate new due date: %s' => '', + // 'Trigger to generate recurrent task' => '', + // 'Trigger to generate recurrent task: %s' => '', + // 'When task is closed' => '', + // 'When task is moved from first column' => '', + // 'When task is moved to last column' => '', + // 'Year(s)' => '', ); diff --git a/app/Locale/hu_HU/translations.php b/app/Locale/hu_HU/translations.php index f07b691c..d5053670 100644 --- a/app/Locale/hu_HU/translations.php +++ b/app/Locale/hu_HU/translations.php @@ -868,4 +868,28 @@ return array( // 'Help on Sendgrid integration' => '', // 'Disable two factor authentication' => '', // 'Do you really want to disable the two factor authentication for this user: "%s"?' => '', + // 'Action date' => '', + // 'Base date to calculate new due date' => '', + // 'Base date to calculate new due date: %s' => '', + // 'Created recurrent task: %s' => '', + // 'Day(s)' => '', + // 'Edit recurrence' => '', + // 'Existing due date' => '', + // 'Factor to calculate new due date' => '', + // 'Factor to calculate new due date: %s' => '', + // 'Generate recurrent task' => '', + // 'Month(s)' => '', + // 'No recurrent task is scheduled to generate' => '', + // 'Recurrence' => '', + // 'Recurrent task created by: %s' => '', + // 'Recurrent task has been generated' => '', + // 'Recurrent task is scheduled to generate' => '', + // 'Timeframe to calculate new due date' => '', + // 'Timeframe to calculate new due date: %s' => '', + // 'Trigger to generate recurrent task' => '', + // 'Trigger to generate recurrent task: %s' => '', + // 'When task is closed' => '', + // 'When task is moved from first column' => '', + // 'When task is moved to last column' => '', + // 'Year(s)' => '', ); diff --git a/app/Locale/it_IT/translations.php b/app/Locale/it_IT/translations.php index 0ccefe55..7a133965 100644 --- a/app/Locale/it_IT/translations.php +++ b/app/Locale/it_IT/translations.php @@ -868,4 +868,28 @@ return array( // 'Help on Sendgrid integration' => '', // 'Disable two factor authentication' => '', // 'Do you really want to disable the two factor authentication for this user: "%s"?' => '', + // 'Action date' => '', + // 'Base date to calculate new due date' => '', + // 'Base date to calculate new due date: %s' => '', + // 'Created recurrent task: %s' => '', + // 'Day(s)' => '', + // 'Edit recurrence' => '', + // 'Existing due date' => '', + // 'Factor to calculate new due date' => '', + // 'Factor to calculate new due date: %s' => '', + // 'Generate recurrent task' => '', + // 'Month(s)' => '', + // 'No recurrent task is scheduled to generate' => '', + // 'Recurrence' => '', + // 'Recurrent task created by: %s' => '', + // 'Recurrent task has been generated' => '', + // 'Recurrent task is scheduled to generate' => '', + // 'Timeframe to calculate new due date' => '', + // 'Timeframe to calculate new due date: %s' => '', + // 'Trigger to generate recurrent task' => '', + // 'Trigger to generate recurrent task: %s' => '', + // 'When task is closed' => '', + // 'When task is moved from first column' => '', + // 'When task is moved to last column' => '', + // 'Year(s)' => '', ); diff --git a/app/Locale/ja_JP/translations.php b/app/Locale/ja_JP/translations.php index 644dcfa7..09397429 100644 --- a/app/Locale/ja_JP/translations.php +++ b/app/Locale/ja_JP/translations.php @@ -868,4 +868,28 @@ return array( // 'Help on Sendgrid integration' => '', // 'Disable two factor authentication' => '', // 'Do you really want to disable the two factor authentication for this user: "%s"?' => '', + // 'Action date' => '', + // 'Base date to calculate new due date' => '', + // 'Base date to calculate new due date: %s' => '', + // 'Created recurrent task: %s' => '', + // 'Day(s)' => '', + // 'Edit recurrence' => '', + // 'Existing due date' => '', + // 'Factor to calculate new due date' => '', + // 'Factor to calculate new due date: %s' => '', + // 'Generate recurrent task' => '', + // 'Month(s)' => '', + // 'No recurrent task is scheduled to generate' => '', + // 'Recurrence' => '', + // 'Recurrent task created by: %s' => '', + // 'Recurrent task has been generated' => '', + // 'Recurrent task is scheduled to generate' => '', + // 'Timeframe to calculate new due date' => '', + // 'Timeframe to calculate new due date: %s' => '', + // 'Trigger to generate recurrent task' => '', + // 'Trigger to generate recurrent task: %s' => '', + // 'When task is closed' => '', + // 'When task is moved from first column' => '', + // 'When task is moved to last column' => '', + // 'Year(s)' => '', ); diff --git a/app/Locale/nl_NL/translations.php b/app/Locale/nl_NL/translations.php index e0285fdd..f26396b0 100644 --- a/app/Locale/nl_NL/translations.php +++ b/app/Locale/nl_NL/translations.php @@ -868,4 +868,28 @@ return array( // 'Help on Sendgrid integration' => '', // 'Disable two factor authentication' => '', // 'Do you really want to disable the two factor authentication for this user: "%s"?' => '', + // 'Action date' => '', + // 'Base date to calculate new due date' => '', + // 'Base date to calculate new due date: %s' => '', + // 'Created recurrent task: %s' => '', + // 'Day(s)' => '', + // 'Edit recurrence' => '', + // 'Existing due date' => '', + // 'Factor to calculate new due date' => '', + // 'Factor to calculate new due date: %s' => '', + // 'Generate recurrent task' => '', + // 'Month(s)' => '', + // 'No recurrent task is scheduled to generate' => '', + // 'Recurrence' => '', + // 'Recurrent task created by: %s' => '', + // 'Recurrent task has been generated' => '', + // 'Recurrent task is scheduled to generate' => '', + // 'Timeframe to calculate new due date' => '', + // 'Timeframe to calculate new due date: %s' => '', + // 'Trigger to generate recurrent task' => '', + // 'Trigger to generate recurrent task: %s' => '', + // 'When task is closed' => '', + // 'When task is moved from first column' => '', + // 'When task is moved to last column' => '', + // 'Year(s)' => '', ); diff --git a/app/Locale/pl_PL/translations.php b/app/Locale/pl_PL/translations.php index 39c92379..81bd7dc3 100644 --- a/app/Locale/pl_PL/translations.php +++ b/app/Locale/pl_PL/translations.php @@ -868,4 +868,28 @@ return array( // 'Help on Sendgrid integration' => '', // 'Disable two factor authentication' => '', // 'Do you really want to disable the two factor authentication for this user: "%s"?' => '', + // 'Action date' => '', + // 'Base date to calculate new due date' => '', + // 'Base date to calculate new due date: %s' => '', + // 'Created recurrent task: %s' => '', + // 'Day(s)' => '', + // 'Edit recurrence' => '', + // 'Existing due date' => '', + // 'Factor to calculate new due date' => '', + // 'Factor to calculate new due date: %s' => '', + // 'Generate recurrent task' => '', + // 'Month(s)' => '', + // 'No recurrent task is scheduled to generate' => '', + // 'Recurrence' => '', + // 'Recurrent task created by: %s' => '', + // 'Recurrent task has been generated' => '', + // 'Recurrent task is scheduled to generate' => '', + // 'Timeframe to calculate new due date' => '', + // 'Timeframe to calculate new due date: %s' => '', + // 'Trigger to generate recurrent task' => '', + // 'Trigger to generate recurrent task: %s' => '', + // 'When task is closed' => '', + // 'When task is moved from first column' => '', + // 'When task is moved to last column' => '', + // 'Year(s)' => '', ); diff --git a/app/Locale/pt_BR/translations.php b/app/Locale/pt_BR/translations.php index 223850fc..68e975b3 100644 --- a/app/Locale/pt_BR/translations.php +++ b/app/Locale/pt_BR/translations.php @@ -868,4 +868,28 @@ return array( // 'Help on Sendgrid integration' => '', // 'Disable two factor authentication' => '', // 'Do you really want to disable the two factor authentication for this user: "%s"?' => '', + // 'Action date' => '', + // 'Base date to calculate new due date' => '', + // 'Base date to calculate new due date: %s' => '', + // 'Created recurrent task: %s' => '', + // 'Day(s)' => '', + // 'Edit recurrence' => '', + // 'Existing due date' => '', + // 'Factor to calculate new due date' => '', + // 'Factor to calculate new due date: %s' => '', + // 'Generate recurrent task' => '', + // 'Month(s)' => '', + // 'No recurrent task is scheduled to generate' => '', + // 'Recurrence' => '', + // 'Recurrent task created by: %s' => '', + // 'Recurrent task has been generated' => '', + // 'Recurrent task is scheduled to generate' => '', + // 'Timeframe to calculate new due date' => '', + // 'Timeframe to calculate new due date: %s' => '', + // 'Trigger to generate recurrent task' => '', + // 'Trigger to generate recurrent task: %s' => '', + // 'When task is closed' => '', + // 'When task is moved from first column' => '', + // 'When task is moved to last column' => '', + // 'Year(s)' => '', ); diff --git a/app/Locale/ru_RU/translations.php b/app/Locale/ru_RU/translations.php index c119b564..daec1d2b 100644 --- a/app/Locale/ru_RU/translations.php +++ b/app/Locale/ru_RU/translations.php @@ -868,4 +868,28 @@ return array( // 'Help on Sendgrid integration' => '', 'Disable two factor authentication' => 'Выключить двухфакторную авторизацию', 'Do you really want to disable the two factor authentication for this user: "%s"?' => 'Вы действительно хотите выключить двухфакторную авторизацию для пользователя "%s"?', + // 'Action date' => '', + // 'Base date to calculate new due date' => '', + // 'Base date to calculate new due date: %s' => '', + // 'Created recurrent task: %s' => '', + // 'Day(s)' => '', + // 'Edit recurrence' => '', + // 'Existing due date' => '', + // 'Factor to calculate new due date' => '', + // 'Factor to calculate new due date: %s' => '', + // 'Generate recurrent task' => '', + // 'Month(s)' => '', + // 'No recurrent task is scheduled to generate' => '', + // 'Recurrence' => '', + // 'Recurrent task created by: %s' => '', + // 'Recurrent task has been generated' => '', + // 'Recurrent task is scheduled to generate' => '', + // 'Timeframe to calculate new due date' => '', + // 'Timeframe to calculate new due date: %s' => '', + // 'Trigger to generate recurrent task' => '', + // 'Trigger to generate recurrent task: %s' => '', + // 'When task is closed' => '', + // 'When task is moved from first column' => '', + // 'When task is moved to last column' => '', + // 'Year(s)' => '', ); diff --git a/app/Locale/sr_Latn_RS/translations.php b/app/Locale/sr_Latn_RS/translations.php index 7dcb6f99..d9b73679 100644 --- a/app/Locale/sr_Latn_RS/translations.php +++ b/app/Locale/sr_Latn_RS/translations.php @@ -868,4 +868,28 @@ return array( // 'Help on Sendgrid integration' => '', // 'Disable two factor authentication' => '', // 'Do you really want to disable the two factor authentication for this user: "%s"?' => '', + // 'Action date' => '', + // 'Base date to calculate new due date' => '', + // 'Base date to calculate new due date: %s' => '', + // 'Created recurrent task: %s' => '', + // 'Day(s)' => '', + // 'Edit recurrence' => '', + // 'Existing due date' => '', + // 'Factor to calculate new due date' => '', + // 'Factor to calculate new due date: %s' => '', + // 'Generate recurrent task' => '', + // 'Month(s)' => '', + // 'No recurrent task is scheduled to generate' => '', + // 'Recurrence' => '', + // 'Recurrent task created by: %s' => '', + // 'Recurrent task has been generated' => '', + // 'Recurrent task is scheduled to generate' => '', + // 'Timeframe to calculate new due date' => '', + // 'Timeframe to calculate new due date: %s' => '', + // 'Trigger to generate recurrent task' => '', + // 'Trigger to generate recurrent task: %s' => '', + // 'When task is closed' => '', + // 'When task is moved from first column' => '', + // 'When task is moved to last column' => '', + // 'Year(s)' => '', ); diff --git a/app/Locale/sv_SE/translations.php b/app/Locale/sv_SE/translations.php index f3d58696..0cf075be 100644 --- a/app/Locale/sv_SE/translations.php +++ b/app/Locale/sv_SE/translations.php @@ -868,4 +868,28 @@ return array( // 'Help on Sendgrid integration' => '', // 'Disable two factor authentication' => '', // 'Do you really want to disable the two factor authentication for this user: "%s"?' => '', + // 'Action date' => '', + // 'Base date to calculate new due date' => '', + // 'Base date to calculate new due date: %s' => '', + // 'Created recurrent task: %s' => '', + // 'Day(s)' => '', + // 'Edit recurrence' => '', + // 'Existing due date' => '', + // 'Factor to calculate new due date' => '', + // 'Factor to calculate new due date: %s' => '', + // 'Generate recurrent task' => '', + // 'Month(s)' => '', + // 'No recurrent task is scheduled to generate' => '', + // 'Recurrence' => '', + // 'Recurrent task created by: %s' => '', + // 'Recurrent task has been generated' => '', + // 'Recurrent task is scheduled to generate' => '', + // 'Timeframe to calculate new due date' => '', + // 'Timeframe to calculate new due date: %s' => '', + // 'Trigger to generate recurrent task' => '', + // 'Trigger to generate recurrent task: %s' => '', + // 'When task is closed' => '', + // 'When task is moved from first column' => '', + // 'When task is moved to last column' => '', + // 'Year(s)' => '', ); diff --git a/app/Locale/th_TH/translations.php b/app/Locale/th_TH/translations.php index 552e2f43..782b96a3 100644 --- a/app/Locale/th_TH/translations.php +++ b/app/Locale/th_TH/translations.php @@ -868,4 +868,28 @@ return array( // 'Help on Sendgrid integration' => '', // 'Disable two factor authentication' => '', // 'Do you really want to disable the two factor authentication for this user: "%s"?' => '', + // 'Action date' => '', + // 'Base date to calculate new due date' => '', + // 'Base date to calculate new due date: %s' => '', + // 'Created recurrent task: %s' => '', + // 'Day(s)' => '', + // 'Edit recurrence' => '', + // 'Existing due date' => '', + // 'Factor to calculate new due date' => '', + // 'Factor to calculate new due date: %s' => '', + // 'Generate recurrent task' => '', + // 'Month(s)' => '', + // 'No recurrent task is scheduled to generate' => '', + // 'Recurrence' => '', + // 'Recurrent task created by: %s' => '', + // 'Recurrent task has been generated' => '', + // 'Recurrent task is scheduled to generate' => '', + // 'Timeframe to calculate new due date' => '', + // 'Timeframe to calculate new due date: %s' => '', + // 'Trigger to generate recurrent task' => '', + // 'Trigger to generate recurrent task: %s' => '', + // 'When task is closed' => '', + // 'When task is moved from first column' => '', + // 'When task is moved to last column' => '', + // 'Year(s)' => '', ); diff --git a/app/Locale/tr_TR/translations.php b/app/Locale/tr_TR/translations.php index e4efe258..0ddb6c6c 100644 --- a/app/Locale/tr_TR/translations.php +++ b/app/Locale/tr_TR/translations.php @@ -868,4 +868,28 @@ return array( // 'Help on Sendgrid integration' => '', // 'Disable two factor authentication' => '', // 'Do you really want to disable the two factor authentication for this user: "%s"?' => '', + // 'Action date' => '', + // 'Base date to calculate new due date' => '', + // 'Base date to calculate new due date: %s' => '', + // 'Created recurrent task: %s' => '', + // 'Day(s)' => '', + // 'Edit recurrence' => '', + // 'Existing due date' => '', + // 'Factor to calculate new due date' => '', + // 'Factor to calculate new due date: %s' => '', + // 'Generate recurrent task' => '', + // 'Month(s)' => '', + // 'No recurrent task is scheduled to generate' => '', + // 'Recurrence' => '', + // 'Recurrent task created by: %s' => '', + // 'Recurrent task has been generated' => '', + // 'Recurrent task is scheduled to generate' => '', + // 'Timeframe to calculate new due date' => '', + // 'Timeframe to calculate new due date: %s' => '', + // 'Trigger to generate recurrent task' => '', + // 'Trigger to generate recurrent task: %s' => '', + // 'When task is closed' => '', + // 'When task is moved from first column' => '', + // 'When task is moved to last column' => '', + // 'Year(s)' => '', ); diff --git a/app/Locale/zh_CN/translations.php b/app/Locale/zh_CN/translations.php index a51a54d3..0c1b5b1b 100644 --- a/app/Locale/zh_CN/translations.php +++ b/app/Locale/zh_CN/translations.php @@ -868,4 +868,28 @@ return array( // 'Help on Sendgrid integration' => '', // 'Disable two factor authentication' => '', // 'Do you really want to disable the two factor authentication for this user: "%s"?' => '', + // 'Action date' => '', + // 'Base date to calculate new due date' => '', + // 'Base date to calculate new due date: %s' => '', + // 'Created recurrent task: %s' => '', + // 'Day(s)' => '', + // 'Edit recurrence' => '', + // 'Existing due date' => '', + // 'Factor to calculate new due date' => '', + // 'Factor to calculate new due date: %s' => '', + // 'Generate recurrent task' => '', + // 'Month(s)' => '', + // 'No recurrent task is scheduled to generate' => '', + // 'Recurrence' => '', + // 'Recurrent task created by: %s' => '', + // 'Recurrent task has been generated' => '', + // 'Recurrent task is scheduled to generate' => '', + // 'Timeframe to calculate new due date' => '', + // 'Timeframe to calculate new due date: %s' => '', + // 'Trigger to generate recurrent task' => '', + // 'Trigger to generate recurrent task: %s' => '', + // 'When task is closed' => '', + // 'When task is moved from first column' => '', + // 'When task is moved to last column' => '', + // 'Year(s)' => '', ); diff --git a/app/Model/Board.php b/app/Model/Board.php index 3650418f..eecbc91c 100644 --- a/app/Model/Board.php +++ b/app/Model/Board.php @@ -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 ] * diff --git a/app/Model/Task.php b/app/Model/Task.php index 1a58e981..02469047 100644 --- a/app/Model/Task.php +++ b/app/Model/Task.php @@ -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'), ); } diff --git a/app/Model/TaskPosition.php b/app/Model/TaskPosition.php index 8589cac5..37c1ace0 100644 --- a/app/Model/TaskPosition.php +++ b/app/Model/TaskPosition.php @@ -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); } diff --git a/docs/api-json-rpc.markdown b/docs/api-json-rpc.markdown index e7f5a6b6..8250b1c4 100644 --- a/docs/api-json-rpc.markdown +++ b/docs/api-json-rpc.markdown @@ -710,8 +710,10 @@ Response example: "position": "1", "project_id": "1", "task_limit": "0", + "description": "", "tasks": [], - "nb_tasks": 0 + "nb_tasks": 0, + "score": 0 }, { "id": "2", @@ -719,8 +721,46 @@ Response example: "position": "2", "project_id": "1", "task_limit": "0", - "tasks": [], - "nb_tasks": 0 + "description": "", + "tasks": [ + { + "nb_comments":"0", + "nb_files":"0", + "nb_subtasks":"0", + "nb_completed_subtasks":"0", + "nb_links":"0", + "id":"2", + "reference":"", + "title":"Test", + "description":"", + "date_creation":"1430870507", + "date_modification":"1430870507", + "date_completed":null, + "date_due":"0", + "color_id":"yellow", + "project_id":"1", + "column_id":"2", + "swimlane_id":"0", + "owner_id":"0", + "creator_id":"1", + "position":"1", + "is_active":"1", + "score":"0", + "category_id":"0", + "date_moved":"1430870507", + "recurrence_status":"0", + "recurrence_trigger":"0", + "recurrence_factor":"0", + "recurrence_timeframe":"0", + "recurrence_basedate":"0", + "recurrence_parent":null, + "recurrence_child":null, + "assignee_username":null, + "assignee_name":null + } + ], + "nb_tasks": 1, + "score": 0 }, { "id": "3", @@ -728,8 +768,46 @@ Response example: "position": "3", "project_id": "1", "task_limit": "0", - "tasks": [], - "nb_tasks": 0 + "description": "", + "tasks": [ + { + "nb_comments":"0", + "nb_files":"0", + "nb_subtasks":"1", + "nb_completed_subtasks":"0", + "nb_links":"0", + "id":"1", + "reference":"", + "title":"Task with comment", + "description":"", + "date_creation":"1430783188", + "date_modification":"1430783188", + "date_completed":null, + "date_due":"0", + "color_id":"red", + "project_id":"1", + "column_id":"3", + "swimlane_id":"0", + "owner_id":"1", + "creator_id":"0", + "position":"1", + "is_active":"1", + "score":"0", + "category_id":"0", + "date_moved":"1430783191", + "recurrence_status":"0", + "recurrence_trigger":"0", + "recurrence_factor":"0", + "recurrence_timeframe":"0", + "recurrence_basedate":"0", + "recurrence_parent":null, + "recurrence_child":null, + "assignee_username":"admin", + "assignee_name":null + } + ], + "nb_tasks": 1, + "score": 0 }, { "id": "4", @@ -737,11 +815,14 @@ Response example: "position": "4", "project_id": "1", "task_limit": "0", + "description": "", "tasks": [], - "nb_tasks": 0 + "nb_tasks": 0, + "score": 0 } ], - "nb_columns": 4 + "nb_columns": 4, + "nb_tasks": 2 } ] } @@ -1609,13 +1690,18 @@ Response example: - **project_id** (integer, required) - **color_id** (string, optional) - **column_id** (integer, optional) - - **description** Markdown content (string, optional) - **owner_id** (integer, optional) - **creator_id** (integer, optional) - - **score** (integer, optional) - **date_due**: ISO8601 format (string, optional) + - **description** Markdown content (string, optional) - **category_id** (integer, optional) - - **swimelane_id** (integer, optional) + - **score** (integer, optional) + - **swimlane_id** (integer, optional) + - **recurrence_status** (integer, optional) + - **recurrence_trigger** (integer, optional) + - **recurrence_factor** (integer, optional) + - **recurrence_timeframe** (integer, optional) + - **recurrence_basedate** (integer, optional) - Result on success: **task_id** - Result on failure: **false** @@ -1636,7 +1722,12 @@ Request example: "title": "Test", "project_id": 1, "color_id": "green", - "column_id": 2 + "column_id": 2, + "recurrence_status": 0, + "recurrence_trigger": 0, + "recurrence_factor": 0, + "recurrence_timeframe": 0, + "recurrence_basedate": 0 } } ``` @@ -1695,8 +1786,20 @@ Response example: "category_id": "0", "creator_id": "0", "date_modification": "1409963206", - "swimlane_id": 0 - } + "reference": "", + "date_started": null, + "time_spent": "0", + "time_estimated": "0", + "swimlane_id": "0", + "date_moved": "1430875287", + "recurrence_status": "0", + "recurrence_trigger": "0", + "recurrence_factor": "0", + "recurrence_timeframe": "0", + "recurrence_basedate": "0", + "recurrence_parent": null, + "recurrence_child": null + } } ``` @@ -1747,7 +1850,19 @@ Response example: "category_id": "0", "creator_id": "0", "date_modification": "1409961789", - "swimlane_id": 0 + "reference": "", + "date_started": null, + "time_spent": "0", + "time_estimated": "0", + "swimlane_id": "0", + "date_moved": "1430783191", + "recurrence_status": "0", + "recurrence_trigger": "0", + "recurrence_factor": "0", + "recurrence_timeframe": "0", + "recurrence_basedate": "0", + "recurrence_parent": null, + "recurrence_child": null }, { "id": "2", @@ -1766,7 +1881,19 @@ Response example: "category_id": "0", "creator_id": "0", "date_modification": "1409962115", - "swimlane_id": 0 + "reference": "", + "date_started": null, + "time_spent": "0", + "time_estimated": "0", + "swimlane_id": "0", + "date_moved": "1430783191", + "recurrence_status": "0", + "recurrence_trigger": "0", + "recurrence_factor": "0", + "recurrence_timeframe": "0", + "recurrence_basedate": "0", + "recurrence_parent": null, + "recurrence_child": null }, ... ] @@ -1785,7 +1912,7 @@ Request example to fetch all tasks on the board: { "jsonrpc": "2.0", "method": "getOverdueTasks", - "id": 133280317, + "id": 133280317 } ``` @@ -1799,40 +1926,20 @@ Response example: { "id": "1", "title": "Task #1", - "description": "", - "date_creation": "1409961789", - "color_id": "blue", + "date_due": "1409961789", "project_id": "1", - "column_id": "2", - "owner_id": "1", - "position": "1", - "is_active": "1", - "date_completed": null, - "score": "0", - "date_due": "0", - "category_id": "0", - "creator_id": "0", - "date_modification": "1409961789", - "swimlane_id": 0 + "project_name": "Test", + "assignee_username":"admin", + "assignee_name": null }, { "id": "2", "title": "Test", - "description": "", - "date_creation": "1409962115", - "color_id": "green", + "date_due": "1409962115", "project_id": "1", - "column_id": "2", - "owner_id": "1", - "position": "2", - "is_active": "1", - "date_completed": null, - "score": "0", - "date_due": "0", - "category_id": "0", - "creator_id": "0", - "date_modification": "1409962115", - "swimlane_id": 0 + "project_name": "Test", + "assignee_username":"admin", + "assignee_name": null }, ... ] @@ -1845,16 +1952,21 @@ Response example: - Parameters: - **id** (integer, required) - **title** (string, optional) - - **color_id** (string, optional) - **project_id** (integer, optional) + - **color_id** (string, optional) - **column_id** (integer, optional) - - **description** Markdown content (string, optional) - **owner_id** (integer, optional) - **creator_id** (integer, optional) - - **score** (integer, optional) - **date_due**: ISO8601 format (string, optional) + - **description** Markdown content (string, optional) - **category_id** (integer, optional) + - **score** (integer, optional) - **swimlane_id** (integer, optional) + - **recurrence_status** (integer, optional) + - **recurrence_trigger** (integer, optional) + - **recurrence_factor** (integer, optional) + - **recurrence_timeframe** (integer, optional) + - **recurrence_basedate** (integer, optional) - Result on success: **true** - Result on failure: **false** diff --git a/jsonrpc.php b/jsonrpc.php index 9bf065f8..e5c000c0 100644 --- a/jsonrpc.php +++ b/jsonrpc.php @@ -169,7 +169,7 @@ $server->bind('closeTask', $container['taskStatus'], 'close'); $server->bind('removeTask', $container['task'], 'remove'); $server->bind('moveTaskPosition', $container['taskPosition'], 'movePosition'); -$server->register('createTask', function($title, $project_id, $color_id = '', $column_id = 0, $owner_id = 0, $creator_id = 0, $date_due = '', $description = '', $category_id = 0, $score = 0, $swimlane_id = 0) use ($container) { +$server->register('createTask', function($title, $project_id, $color_id = '', $column_id = 0, $owner_id = 0, $creator_id = 0, $date_due = '', $description = '', $category_id = 0, $score = 0, $swimlane_id = 0, $recurrence_status = 0, $recurrence_trigger = 0, $recurrence_factor = 0, $recurrence_timeframe = 0, $recurrence_basedate = 0) use ($container) { $values = array( 'title' => $title, @@ -183,6 +183,11 @@ $server->register('createTask', function($title, $project_id, $color_id = '', $c 'category_id' => $category_id, 'score' => $score, 'swimlane_id' => $swimlane_id, + 'recurrence_status' => $recurrence_status, + 'recurrence_trigger' => $recurrence_trigger, + 'recurrence_factor' => $recurrence_factor, + 'recurrence_timeframe' => $recurrence_timeframe, + 'recurrence_basedate' => $recurrence_basedate, ); list($valid,) = $container['taskValidator']->validateCreation($values); @@ -194,7 +199,7 @@ $server->register('createTask', function($title, $project_id, $color_id = '', $c return $container['taskCreation']->create($values); }); -$server->register('updateTask', function($id, $title = null, $project_id = null, $color_id = null, $column_id = null, $owner_id = null, $creator_id = null, $date_due = null, $description = null, $category_id = null, $score = null, $swimlane_id = null) use ($container) { +$server->register('updateTask', function($id, $title = null, $project_id = null, $color_id = null, $column_id = null, $owner_id = null, $creator_id = null, $date_due = null, $description = null, $category_id = null, $score = null, $swimlane_id = null, $recurrence_status = null, $recurrence_trigger = null, $recurrence_factor = null, $recurrence_timeframe = null, $recurrence_basedate = null) use ($container) { $values = array( 'id' => $id, @@ -209,6 +214,11 @@ $server->register('updateTask', function($id, $title = null, $project_id = null, 'category_id' => $category_id, 'score' => $score, 'swimlane_id' => $swimlane_id, + 'recurrence_status' => $recurrence_status, + 'recurrence_trigger' => $recurrence_trigger, + 'recurrence_factor' => $recurrence_factor, + 'recurrence_timeframe' => $recurrence_timeframe, + 'recurrence_basedate' => $recurrence_basedate, ); foreach ($values as $key => $value) { -- cgit v1.2.3