. */ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Popup; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Support\Http\Controllers\RenderPartialViews; use FireflyIII\Support\Http\Controllers\RequestInformation; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; /** * Class ReportController. * */ class ReportController extends Controller { use RequestInformation, RenderPartialViews; /** * Generate popup view. * * @param Request $request * * @return JsonResponse * */ 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']); switch ($attributes['location']) { default: $html = sprintf('Firefly III cannot handle "%s"-popups.', $attributes['location']); break; case 'budget-spent-amount': $html = $this->budgetSpentAmount($attributes); break; case 'expense-entry': $html = $this->expenseEntry($attributes); break; case 'income-entry': $html = $this->incomeEntry($attributes); break; case 'category-entry': $html = $this->categoryEntry($attributes); break; case 'budget-entry': $html = $this->budgetEntry($attributes); break; } return response()->json(['html' => $html]); } }