. */ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Popup; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Support\Http\Controllers\RenderPartialViews; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; /** * Class ReportController. */ class ReportController extends Controller { use RenderPartialViews; /** * Generate popup view. * * @throws FireflyException */ public function general(Request $request): JsonResponse { $attributes = $request->get('attributes') ?? []; $attributes = $this->parseAttributes($attributes); app('view')->share('start', $attributes['startDate']); app('view')->share('end', $attributes['endDate']); $html = match ($attributes['location']) { default => sprintf('Firefly III cannot handle "%s"-popups.', $attributes['location']), 'budget-spent-amount' => $this->budgetSpentAmount($attributes), 'expense-entry' => $this->expenseEntry($attributes), 'income-entry' => $this->incomeEntry($attributes), 'category-entry' => $this->categoryEntry($attributes), 'budget-entry' => $this->budgetEntry($attributes), }; return response()->json(['html' => $html]); } }