From dab378debe6646534da31c39f683f032c633c260 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Tue, 17 Aug 2021 13:36:35 +0200 Subject: [PATCH] add redirect field --- Admin/Install/db.json | 5 +++++ Controller/ApiController.php | 1 + Models/Task.php | 11 +++++++++++ Models/TaskMapper.php | 1 + 4 files changed, 18 insertions(+) diff --git a/Admin/Install/db.json b/Admin/Install/db.json index 13a5801..5bd73cf 100755 --- a/Admin/Install/db.json +++ b/Admin/Install/db.json @@ -72,6 +72,11 @@ "default": null, "null": true }, + "task_redirect": { + "name": "task_redirect", + "type": "VARCHAR(255)", + "null": false + }, "task_schedule": { "name": "task_schedule", "type": "INT", diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 79a66bd..f5ed696 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -107,6 +107,7 @@ final class ApiController extends Controller $task->setCreatedBy(new NullAccount($request->header->account)); $task->setStatus(TaskStatus::OPEN); $task->setType(TaskType::SINGLE); + $task->redirect = (string) ($request->getData('redirect') ?? ''); if (empty($request->getData('priority'))) { $task->due = empty($request->getData('due')) ? null : new \DateTime($request->getData('due')); diff --git a/Models/Task.php b/Models/Task.php index bf7ef45..9f66e8d 100755 --- a/Models/Task.php +++ b/Models/Task.php @@ -48,6 +48,17 @@ class Task implements \JsonSerializable */ public string $title = ''; + /** + * Redirect. + * + * Used as reference or for redirection when opened. + * This allows to open the task on a different page with a different layout if needed (e.g. ticket system, workflow, checklist, ...) + * + * @var string + * @since 1.0.0 + */ + public string $redirect = ''; + /** * Creator. * diff --git a/Models/TaskMapper.php b/Models/TaskMapper.php index 4ec9b06..fcd4a98 100755 --- a/Models/TaskMapper.php +++ b/Models/TaskMapper.php @@ -54,6 +54,7 @@ final class TaskMapper extends DataMapperAbstract 'task_done' => ['name' => 'task_done', 'type' => 'DateTime', 'internal' => 'done'], 'task_schedule' => ['name' => 'task_schedule', 'type' => 'int', 'internal' => 'schedule'], 'task_start' => ['name' => 'task_start', 'type' => 'DateTime', 'internal' => 'start'], + 'task_redirect' => ['name' => 'task_redirect', 'type' => 'string', 'internal' => 'redirect'], 'task_created_by' => ['name' => 'task_created_by', 'type' => 'int', 'internal' => 'createdBy', 'readonly' => true], 'task_created_at' => ['name' => 'task_created_at', 'type' => 'DateTimeImmutable', 'internal' => 'createdAt', 'readonly' => true], ];