user()->currentWorkspace; if (! $workspace) { return redirect()->route('app.workspaces.create'); } $this->authorize('createPost', $workspace); $signatures = $workspace->signatures() ->when($request->input('search'), fn ($query, $search) => $query->where('name', 'ilike', "%{$search}%")) ->latest() ->paginate(config('app.pagination.default')); return Inertia::render('signatures/Index', [ 'workspace' => $workspace, 'signatures' => Inertia::scroll(fn () => $signatures), 'filters' => [ 'search' => $request->input('search', ''), ], ]); } public function store(Request $request): RedirectResponse { $workspace = $request->user()->currentWorkspace; if (! $workspace) { return redirect()->route('app.workspaces.create'); } $this->authorize('createPost', $workspace); $validated = $request->validate([ 'name' => ['required', 'string', 'max:255'], 'content' => ['required', 'string'], ]); CreateSignature::execute($workspace, $validated); session()->flash('flash.banner', __('signatures.flash.created')); session()->flash('flash.bannerStyle', 'success'); return redirect()->route('app.signatures.index'); } public function update(Request $request, WorkspaceSignature $signature): RedirectResponse { $workspace = $request->user()->currentWorkspace; if (! $workspace) { return redirect()->route('app.workspaces.create'); } $this->authorize('createPost', $workspace); if ($signature->workspace_id !== $workspace->id) { abort(404); } $validated = $request->validate([ 'name' => ['required', 'string', 'max:255'], 'content' => ['required', 'string'], ]); UpdateSignature::execute($signature, $validated); session()->flash('flash.banner', __('signatures.flash.updated')); session()->flash('flash.bannerStyle', 'success'); return redirect()->route('app.signatures.index'); } public function destroy(Request $request, WorkspaceSignature $signature): RedirectResponse { $workspace = $request->user()->currentWorkspace; if (! $workspace) { return redirect()->route('app.workspaces.create'); } $this->authorize('createPost', $workspace); if ($signature->workspace_id !== $workspace->id) { abort(404); } DeleteSignature::execute($signature); session()->flash('flash.banner', __('signatures.flash.deleted')); session()->flash('flash.bannerStyle', 'success'); return redirect()->route('app.signatures.index'); } }