authorize('viewAny', [Database::class, $server]); return Inertia::render('databases/index', [ 'databases' => DatabaseResource::collection($server->databases()->simplePaginate(config('web.pagination_size'))), ]); } #[Get('/charsets', name: 'databases.charsets')] public function charsets(Server $server): JsonResponse { $this->authorize('view', $server); $charsets = []; foreach ($server->database()->type_data['charsets'] as $charset => $value) { $charsets[] = $charset; } return response()->json($charsets); } #[Get('/collations/{charset?}', name: 'databases.collations')] public function collations(Server $server, ?string $charset = null): JsonResponse { $this->authorize('view', $server); if (! $charset) { $charset = $server->database()->type_data['defaultCharset'] ?? null; } $charsets = $server->database()->type_data['charsets'] ?? []; return response()->json(data_get($charsets, $charset.'.list', data_get($charsets, $charset.'.default', []))); } #[Post('/', name: 'databases.store')] public function store(Request $request, Server $server): RedirectResponse { $this->authorize('create', [Database::class, $server]); app(CreateDatabase::class)->create($server, $request->all()); return back() ->with('success', 'Database created successfully.'); } #[Patch('/sync', name: 'databases.sync')] public function sync(Server $server): RedirectResponse { $this->authorize('create', [Database::class, $server]); app(SyncDatabases::class)->sync($server); return back() ->with('success', 'Databases synced successfully.'); } #[Delete('/{database}', name: 'databases.destroy')] public function destroy(Server $server, Database $database): RedirectResponse { $this->authorize('delete', [$database, $server]); app(DeleteDatabase::class)->delete($server, $database); return back() ->with('success', 'Database deleted successfully.'); } }