61 lines
2.1 KiB
PHP
61 lines
2.1 KiB
PHP
<?php
|
|
namespace App\Presenters\Admin;
|
|
|
|
use App\Repositories\MediaFileRepository;
|
|
|
|
class MediaSelectionFieldPresenter
|
|
{
|
|
public function render($mediaFileId = null, $inputHtmlArgs = [], $wrapperClasses = [])
|
|
{
|
|
$presenter = app('Html');
|
|
$mediaFileRepo = app(MediaFileRepository::class);
|
|
$mediaFile = $mediaFileRepo->findModel($mediaFileId);
|
|
$previewImgHtml = '';
|
|
$mediaFieldContentHtml = '';
|
|
if($mediaFile) {
|
|
$previewImgHtml = $presenter->img([
|
|
'src' => $mediaFile->url
|
|
]);
|
|
}
|
|
$mediaFieldContentHtml .= $presenter->input(array_merge([
|
|
'type' => 'hidden',
|
|
'class' => 'input',
|
|
'value' => $mediaFileId
|
|
], $inputHtmlArgs));
|
|
$mediaFieldContentHtml .= $presenter->div([
|
|
'class' => 'form-group row',
|
|
'html' => $presenter->div([
|
|
'class' => 'col-6',
|
|
'html' => $presenter->div([
|
|
'class' => 'preview',
|
|
'html' => $previewImgHtml
|
|
])
|
|
])
|
|
]);
|
|
$mediaFieldContentHtml .= $presenter->div([
|
|
'class' => 'form-group row',
|
|
'html' => [
|
|
$presenter->div([
|
|
'class' => 'col-3',
|
|
'html' => $presenter->button([
|
|
'class' => ['btn', 'btn-success', 'select-media'],
|
|
'html' => trans('form.buttons.select')
|
|
])
|
|
]),
|
|
$presenter->div([
|
|
'class' => 'col-3',
|
|
'html' => $presenter->button([
|
|
'class' => ['btn', 'btn-danger', 'clear-media'],
|
|
'style' => !$mediaFile ? 'display:none;' : '',
|
|
'html' => trans('form.buttons.remove')
|
|
])
|
|
])
|
|
]
|
|
]);
|
|
return $presenter->div([
|
|
'class' => array_merge($wrapperClasses, ['media-selection-field']),
|
|
'html' => $mediaFieldContentHtml
|
|
]);
|
|
}
|
|
}
|