From cc70ccf0ca5851417dfdde6c6caf896b1a8ad384 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Fri, 1 Feb 2019 22:21:21 +0100 Subject: [PATCH] Fixes and drafts for reporter/helper --- Admin/Routes/Web/Api.php | 12 +++++ Controller/ApiController.php | 24 ++++++++++ Models/MediaMapper.php | 7 +-- .../Backend/Components/Upload/upload.tpl.php | 44 ++++++++++++++++++- 4 files changed, 82 insertions(+), 5 deletions(-) diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php index 5eab8de..171c998 100644 --- a/Admin/Routes/Web/Api.php +++ b/Admin/Routes/Web/Api.php @@ -39,4 +39,16 @@ return [ ], ], ], + // todo: the order of find is bad but needed for now. + '^.*/api/media/find.*$' => [ + [ + 'dest' => '\Modules\Media\Controller\ApiController:apiMediaFind', + 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => ApiController::MODULE_NAME, + 'type' => PermissionType::READ, + 'state' => PermissionState::MEDIA, + ], + ], + ], ]; diff --git a/Controller/ApiController.php b/Controller/ApiController.php index d8624ae..742a22e 100644 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -33,6 +33,30 @@ use phpOMS\Message\ResponseAbstract; final class ApiController extends Controller { + /** + * Api method to find media + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiMediaFind(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + { + $response->getHeader()->set('Content-Type', MimeType::M_JSON, true); + $response->set( + $request->getUri()->__toString(), + \array_values( + MediaMapper::find((string) ($request->getData('search') ?? '')) + ) + ); + } + /** * Shows api content. * diff --git a/Models/MediaMapper.php b/Models/MediaMapper.php index cfef1ce..61fb37e 100644 --- a/Models/MediaMapper.php +++ b/Models/MediaMapper.php @@ -25,14 +25,15 @@ class MediaMapper extends DataMapperAbstract * * @var array> * @since 1.0.0 + * @todo: maybe add file name for searching by file name (path in media_file should not matter for search) */ protected static $columns = [ 'media_id' => ['name' => 'media_id', 'type' => 'int', 'internal' => 'id'], - 'media_name' => ['name' => 'media_name', 'type' => 'string', 'internal' => 'name'], - 'media_description' => ['name' => 'media_description', 'type' => 'string', 'internal' => 'description'], + 'media_name' => ['name' => 'media_name', 'type' => 'string', 'internal' => 'name', 'autocomplete' => true], + 'media_description' => ['name' => 'media_description', 'type' => 'string', 'internal' => 'description', 'autocomplete' => true], 'media_description_raw' => ['name' => 'media_description_raw', 'type' => 'string', 'internal' => 'descriptionRaw'], 'media_versioned' => ['name' => 'media_versioned', 'type' => 'bool', 'internal' => 'versioned'], - 'media_file' => ['name' => 'media_file', 'type' => 'string', 'internal' => 'path'], + 'media_file' => ['name' => 'media_file', 'type' => 'string', 'internal' => 'path', 'autocomplete' => true], 'media_absolute' => ['name' => 'media_absolute', 'type' => 'bool', 'internal' => 'isAbsolute'], 'media_extension' => ['name' => 'media_extension', 'type' => 'string', 'internal' => 'extension'], 'media_size' => ['name' => 'media_size', 'type' => 'int', 'internal' => 'size'], diff --git a/Theme/Backend/Components/Upload/upload.tpl.php b/Theme/Backend/Components/Upload/upload.tpl.php index 93dabf9..cde2683 100644 --- a/Theme/Backend/Components/Upload/upload.tpl.php +++ b/Theme/Backend/Components/Upload/upload.tpl.php @@ -8,7 +8,29 @@
-
+
+
+ + +
+
@@ -18,4 +40,22 @@ - \ No newline at end of file + + +
+ + + + + +
ID + Name + Extension +
+
\ No newline at end of file