Files
ABSDEV/Modules/Content/Http/Controllers/ContentDocumentController.php
T
2026-07-27 08:19:38 +01:00

21 lines
1.2 KiB
PHP

<?php
namespace Modules\Content\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;
use Modules\Content\Models\ContentDocument;
final class ContentDocumentController extends Controller
{
public function index(): View { return view('content::admin.index',['documents'=>ContentDocument::query()->with('type')->withCount('placements')->orderBy('title')->paginate(30)]); }
public function edit(ContentDocument $document): View { $document->load('type','placements'); return view('content::admin.edit',['document'=>$document]); }
public function update(Request $request, ContentDocument $document): RedirectResponse
{
$validated=$request->validate(['title'=>['required','string','max:255'],'status'=>['required','in:draft,published'],'data_json'=>['required','json']]);
$document->update(['title'=>$validated['title'],'status'=>$validated['status'],'published_at'=>$validated['status']==='published'?($document->published_at??now()):null,'data'=>json_decode($validated['data_json'],true,512,JSON_THROW_ON_ERROR),'updated_by'=>$request->user()?->id]);
return back()->with('status','Content document updated.');
}
}