Wire admin studio SSR and search infrastructure

This commit is contained in:
2026-05-01 11:46:06 +02:00
parent 257b0dbef6
commit 18cea8b0f0
329 changed files with 197465 additions and 2741 deletions

View File

@@ -26,6 +26,9 @@ final class AiBiographyAdminController extends Controller
public function index(Request $request): Response
{
$isAdminSurface = $request->routeIs('admin.cp.ai-biography.*');
$routePrefix = $isAdminSurface ? 'admin.cp.ai-biography.' : 'cp.ai-biography.';
$filters = $this->filters($request);
$records = $this->recordsQuery($filters)
@@ -33,7 +36,7 @@ final class AiBiographyAdminController extends Controller
->withQueryString()
->through(fn (CreatorAiBiography $record): array => $this->mapRecord($record));
return Inertia::render('Moderation/AiBiographyAdmin', [
return Inertia::render($isAdminSurface ? 'Admin/AiBiography' : 'Moderation/AiBiographyAdmin', [
'title' => 'AI Biography Review',
'records' => $records,
'filters' => $filters,
@@ -72,14 +75,14 @@ final class AiBiographyAdminController extends Controller
],
],
'endpoints' => [
'index' => route('cp.ai-biography.index'),
'rebuildPattern' => route('cp.ai-biography.rebuild', ['user' => '__USER__']),
'approvePattern' => route('cp.ai-biography.approve', ['biography' => '__BIOGRAPHY__']),
'flagPattern' => route('cp.ai-biography.flag', ['biography' => '__BIOGRAPHY__']),
'hidePattern' => route('cp.ai-biography.hide', ['biography' => '__BIOGRAPHY__']),
'showPattern' => route('cp.ai-biography.show', ['biography' => '__BIOGRAPHY__']),
'index' => route($routePrefix . 'index'),
'rebuildPattern' => route($routePrefix . 'rebuild', ['user' => '__USER__']),
'approvePattern' => route($routePrefix . 'approve', ['biography' => '__BIOGRAPHY__']),
'flagPattern' => route($routePrefix . 'flag', ['biography' => '__BIOGRAPHY__']),
'hidePattern' => route($routePrefix . 'hide', ['biography' => '__BIOGRAPHY__']),
'showPattern' => route($routePrefix . 'show', ['biography' => '__BIOGRAPHY__']),
],
])->rootView('moderation');
])->rootView($isAdminSurface ? 'admin' : 'moderation');
}
public function rebuild(User $user): JsonResponse

View File

@@ -23,18 +23,21 @@ class FeaturedArtworkAdminController extends Controller
{
}
public function index(): Response
public function index(Request $request): Response
{
return Inertia::render('Collection/FeaturedArtworksAdmin', array_merge(
$isAdminSurface = $request->routeIs('admin.artworks.featured.*');
$routePrefix = $isAdminSurface ? 'admin.artworks.featured.' : 'admin.cp.artworks.featured.';
return Inertia::render($isAdminSurface ? 'Admin/FeaturedArtworks' : 'Collection/FeaturedArtworksAdmin', array_merge(
$this->featuredArtworks->pageProps(),
[
'endpoints' => [
'search' => route('admin.cp.artworks.featured.search'),
'store' => route('admin.cp.artworks.featured.store'),
'updatePattern' => route('admin.cp.artworks.featured.update', ['feature' => '__FEATURE__']),
'togglePattern' => route('admin.cp.artworks.featured.toggle', ['feature' => '__FEATURE__']),
'forceHeroPattern' => route('admin.cp.artworks.featured.force-hero', ['feature' => '__FEATURE__']),
'destroyPattern' => route('admin.cp.artworks.featured.delete', ['feature' => '__FEATURE__']),
'search' => route($routePrefix . 'search'),
'store' => route($routePrefix . 'store'),
'updatePattern' => route($routePrefix . 'update', ['feature' => '__FEATURE__']),
'togglePattern' => route($routePrefix . 'toggle', ['feature' => '__FEATURE__']),
'forceHeroPattern' => route($routePrefix . 'force-hero', ['feature' => '__FEATURE__']),
'destroyPattern' => route($routePrefix . 'delete', ['feature' => '__FEATURE__']),
],
'capabilities' => [
'forceHeroEnabled' => $this->hasForceHeroColumn(),
@@ -42,11 +45,11 @@ class FeaturedArtworkAdminController extends Controller
'seo' => [
'title' => 'Featured Artworks — Skinbase Nova',
'description' => 'Editorial controls for homepage featured artworks and the current hero winner.',
'canonical' => route('admin.cp.artworks.featured.main'),
'canonical' => route($routePrefix . 'main'),
'robots' => 'noindex,follow',
],
],
))->rootView('collections');
))->rootView($isAdminSurface ? 'admin' : 'collections');
}
public function search(Request $request): JsonResponse