Fixes and drafts for reporter/helper

This commit is contained in:
Dennis Eichhorn 2019-02-01 22:21:21 +01:00
parent 9c53d9b783
commit cc70ccf0ca
4 changed files with 82 additions and 5 deletions

View File

@ -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,
],
],
],
];

View File

@ -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.
*

View File

@ -25,14 +25,15 @@ class MediaMapper extends DataMapperAbstract
*
* @var array<string, array<string, bool|string>>
* @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'],

View File

@ -8,7 +8,29 @@
<tr><td><label for="iMedia"><?= $this->getHtml('Media') ?></label>
<tr><td>
<div class="ipt-wrap">
<div class="ipt-first"><input type="text" id="iMedia" name="mediaFile" placeholder="&#xf15b; File"></div>
<div class="ipt-first">
<div class="advancedInput wf-100" id="iMediaInput">
<input autocomplete="off" class="input" id="mediaInput" name="mediaFile" type="text" emptyAfterSelect="true" data-autocomplete="true" data-value="/name/0" data-src="http://127.0.0.1/en/api/media/find?search={#mediaInput}">
<div id="iMediaInput-dropdown" class="dropdown" data-active="true">
<table id="a1" class="table darkred">
<thead>
<tr>
<td>ID<i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
<td>Name<i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
<td>Extension<i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
<tbody>
<template id="iMediaInput-rowElement" class="rowTemplate">
<tr tabindex="-1">
<td data-tpl-text="/id" data-tpl-value="/id" data-value="">s</td>
<td data-tpl-text="/name" data-tpl-value="/name" data-value=""></td>
<td data-tpl-text="/extension"></td>
</tr>
</template>
</tbody>
</table>
</div>
</div>
</div>
<div class="ipt-second"><button><?= $this->getHtml('Select', 'Media') ?></button></div>
</div>
<tr><td><label for="iUpload"><?= $this->getHtml('Upload', 'Media') ?></label>
@ -18,4 +40,22 @@
</table>
</form>
</div>
</section>
</section>
<div class="box wf-100">
<table class="table darkred">
<thead>
<tr>
<td>ID<i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
<td>Name<i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
<td>Extension<i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
<tbody id="iMediaInput-tags" class="tags" data-limit="0" data-active="true">
<template id="iMediaInput-tagTemplate">
<tr data-tpl-value="/id" data-value="" data-uuid="">
<td data-tpl-text="/id" data-tpl-value="/id" data-value=""></td>
<td data-tpl-text="/name" data-tpl-value="/name" data-value=""></td>
<td data-tpl-text="/extension"></td>
</tr>
</template>
</table>
</div>