12-05-2026 admin, Panel Displays
This commit is contained in:
parent
0762e3beac
commit
6a65354f4c
43 changed files with 3273 additions and 410 deletions
50
app/Http/Controllers/Api/ModulePreviewController.php
Normal file
50
app/Http/Controllers/Api/ModulePreviewController.php
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\DisplayVersion;
|
||||
use App\Models\DisplayVersionItem;
|
||||
use App\Services\DisplayPlaylistConfigBuilder;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
|
||||
class ModulePreviewController extends Controller
|
||||
{
|
||||
public function show(DisplayVersion $module): BinaryFileResponse
|
||||
{
|
||||
return response()->file(public_path('_cabinet/display/index.html'));
|
||||
}
|
||||
|
||||
public function showItem(DisplayVersion $module, DisplayVersionItem $item): BinaryFileResponse
|
||||
{
|
||||
abort_unless($item->display_version_id === $module->id, 404);
|
||||
|
||||
return response()->file(public_path('_cabinet/display/index.html'));
|
||||
}
|
||||
|
||||
public function config(DisplayVersion $module, DisplayPlaylistConfigBuilder $configBuilder): JsonResponse
|
||||
{
|
||||
$module->load('items');
|
||||
|
||||
if (! $module->is_active) {
|
||||
return response()->json(['error' => 'Module preview not configured'], 404);
|
||||
}
|
||||
|
||||
return response()->json($configBuilder->fromModules($module->newCollection([$module])));
|
||||
}
|
||||
|
||||
public function configItem(DisplayVersion $module, DisplayVersionItem $item, DisplayPlaylistConfigBuilder $configBuilder): JsonResponse
|
||||
{
|
||||
abort_unless($item->display_version_id === $module->id, 404);
|
||||
|
||||
if (! $module->is_active) {
|
||||
return response()->json(['error' => 'Module preview not configured'], 404);
|
||||
}
|
||||
|
||||
$item->is_active = true;
|
||||
$module->setRelation('items', $item->newCollection([$item]));
|
||||
|
||||
return response()->json($configBuilder->fromModules($module->newCollection([$module]), $item->updated_at));
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue