summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/Locale/da_DK/translations.php24
-rw-r--r--app/Locale/de_DE/translations.php24
-rw-r--r--app/Locale/es_ES/translations.php33
-rw-r--r--app/Locale/fi_FI/translations.php24
-rw-r--r--app/Locale/fr_FR/translations.php24
-rw-r--r--app/Locale/hu_HU/translations.php24
-rw-r--r--app/Locale/it_IT/translations.php24
-rw-r--r--app/Locale/ja_JP/translations.php24
-rw-r--r--app/Locale/nl_NL/translations.php24
-rw-r--r--app/Locale/pl_PL/translations.php24
-rw-r--r--app/Locale/pt_BR/translations.php24
-rw-r--r--app/Locale/ru_RU/translations.php24
-rw-r--r--app/Locale/sr_Latn_RS/translations.php24
-rw-r--r--app/Locale/sv_SE/translations.php24
-rw-r--r--app/Locale/th_TH/translations.php24
-rw-r--r--app/Locale/tr_TR/translations.php24
-rw-r--r--app/Locale/zh_CN/translations.php24
-rw-r--r--app/Model/Board.php12
-rw-r--r--app/Model/Task.php8
-rw-r--r--app/Model/TaskPosition.php13
-rw-r--r--docs/api-json-rpc.markdown206
-rw-r--r--jsonrpc.php14
22 files changed, 609 insertions, 61 deletions
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
@@ -315,6 +315,18 @@ class Board extends Base
}
/**
+ * 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 ]
*
* @access public
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) {