mirror of
https://github.com/Karaka-Management/oms-Media.git
synced 2026-02-04 03:38:41 +00:00
Fixes and drafts for reporter/helper
This commit is contained in:
parent
9c53d9b783
commit
cc70ccf0ca
|
|
@ -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,
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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=" 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>
|
||||
Loading…
Reference in New Issue
Block a user