diff --git a/Admin/Install/Media.install.json b/Admin/Install/Media.install.json new file mode 100644 index 0000000..6e7679e --- /dev/null +++ b/Admin/Install/Media.install.json @@ -0,0 +1,9 @@ +[ + { + "type": "collection", + "create_directory": true, + "name": "Tasks", + "virtualPath": "/Modules", + "user": 1 + } +] \ No newline at end of file diff --git a/Admin/Install/Media.php b/Admin/Install/Media.php new file mode 100644 index 0000000..c73abf0 --- /dev/null +++ b/Admin/Install/Media.php @@ -0,0 +1,43 @@ + __DIR__ . '/Media.install.json']); + } +} diff --git a/Admin/Install/db.json b/Admin/Install/db.json index dbefd49..13a5801 100755 --- a/Admin/Install/db.json +++ b/Admin/Install/db.json @@ -237,8 +237,8 @@ "name": "task_group_group", "type": "INT", "null": false, - "foreignTable": "account", - "foreignKey": "account_id" + "foreignTable": "group", + "foreignKey": "group_id" }, "task_group_duty": { "name": "task_group_duty", diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 847e0c8..2c9e241 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -130,6 +130,20 @@ final class ApiController extends Controller } } + if (!empty($uploadedFiles = $request->getFiles() ?? [])) { + $uploaded = $this->app->moduleManager->get('Media')->uploadFiles( + [''], + $uploadedFiles, + $request->header->account, + __DIR__ . '/../../../Modules/Media/Files/Modules/Tasks', + '/Modules/Tasks', + ); + + foreach ($uploaded as $media) { + $task->addMedia($media); + } + } + $element = new TaskElement(); $element->addTo(new NullAccount((int) ($request->getData('forward') ?? $request->header->account))); $element->createdBy = $task->getCreatedBy(); @@ -306,6 +320,20 @@ final class ApiController extends Controller $element->addCC(new NullAccount((int) $cc)); } + if (!empty($uploadedFiles = $request->getFiles() ?? [])) { + $uploaded = $this->app->moduleManager->get('Media')->uploadFiles( + [''], + $uploadedFiles, + $request->header->account, + __DIR__ . '/../../../Modules/Media/Files/Modules/Tasks', + '/Modules/Tasks', + ); + + foreach ($uploaded as $media) { + $element->addMedia($media); + } + } + return $element; } diff --git a/Docs/Dev/de/SUMMARY.md b/Docs/Dev/de/SUMMARY.md index ec5565a..79c455d 100755 --- a/Docs/Dev/de/SUMMARY.md +++ b/Docs/Dev/de/SUMMARY.md @@ -1,3 +1,3 @@ # Developer Content -* [Task]({%}&page=Dev/task) +* [Task]({%}&page=Dev/tasks) diff --git a/Docs/Dev/img/er.png b/Docs/Dev/img/er.png new file mode 100644 index 0000000..3311be7 Binary files /dev/null and b/Docs/Dev/img/er.png differ diff --git a/Theme/Backend/task-single.tpl.php b/Theme/Backend/task-single.tpl.php index fef009d..153129b 100755 --- a/Theme/Backend/task-single.tpl.php +++ b/Theme/Backend/task-single.tpl.php @@ -100,6 +100,10 @@ echo $this->getData('nav')->render(); ?> getTags(); foreach ($tags as $tag) : ?> = $tag->icon !== null ? '' : ''; ?>= $this->printHtml($tag->getL11n()); ?> + + getMedia(); foreach ($files as $file) : ?> + = $this->printHtml($file->name); ?> +