diff --git a/app/Http/Controllers/Chart/AccountController.php b/app/Http/Controllers/Chart/AccountController.php index b12ed8a0c7..00bd58cfca 100644 --- a/app/Http/Controllers/Chart/AccountController.php +++ b/app/Http/Controllers/Chart/AccountController.php @@ -234,10 +234,18 @@ class AccountController extends Controller */ public function frontpage(AccountRepositoryInterface $repository) { - $start = clone session('start', Carbon::now()->startOfMonth()); - $end = clone session('end', Carbon::now()->endOfMonth()); - $frontPage = Preferences::get('frontPageAccounts', $repository->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET])->pluck('id')->toArray()); - $accounts = $repository->getAccountsById($frontPage->data); + $start = clone session('start', Carbon::now()->startOfMonth()); + $end = clone session('end', Carbon::now()->endOfMonth()); + $defaultSet = $repository->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET])->pluck('id')->toArray(); + Log::debug('Default set is ', $defaultSet); + $frontPage = Preferences::get('frontPageAccounts', $defaultSet); + Log::debug('Frontpage preference set is ', $frontPage->data); + if (count($frontPage->data) === 0) { + $frontPage->data = $defaultSet; + Log::debug('frontpage set is empty!'); + $frontPage->save(); + } + $accounts = $repository->getAccountsById($frontPage->data); return Response::json($this->accountBalanceChart($accounts, $start, $end)); } diff --git a/app/Http/Controllers/Chart/BillController.php b/app/Http/Controllers/Chart/BillController.php index 51ca561e75..85320c96f1 100644 --- a/app/Http/Controllers/Chart/BillController.php +++ b/app/Http/Controllers/Chart/BillController.php @@ -14,6 +14,7 @@ declare(strict_types = 1); namespace FireflyIII\Http\Controllers\Chart; use Carbon\Carbon; +use FireflyIII\Generator\Chart\Basic\GeneratorInterface; use FireflyIII\Generator\Chart\Bill\BillChartGeneratorInterface; use FireflyIII\Helpers\Collector\JournalCollector; use FireflyIII\Http\Controllers\Controller; @@ -54,11 +55,26 @@ class BillController extends Controller */ public function frontpage(BillRepositoryInterface $repository) { - $start = session('start', Carbon::now()->startOfMonth()); - $end = session('end', Carbon::now()->endOfMonth()); - $paid = $repository->getBillsPaidInRange($start, $end); // will be a negative amount. - $unpaid = $repository->getBillsUnpaidInRange($start, $end); // will be a positive amount. - $data = $this->generator->frontpage($paid, $unpaid); + $start = session('start', Carbon::now()->startOfMonth()); + $end = session('end', Carbon::now()->endOfMonth()); + $cache = new CacheProperties; + $cache->addProperty($start); + $cache->addProperty($end); + $cache->addProperty('chart.bill.frontpage'); + if ($cache->has()) { + return Response::json($cache->get()); + } + + $paid = $repository->getBillsPaidInRange($start, $end); // will be a negative amount. + $unpaid = $repository->getBillsUnpaidInRange($start, $end); // will be a positive amount. + $chartData = [ + strval(trans('firefly.unpaid')) => $unpaid, + strval(trans('firefly.paid')) => $paid, + ]; + + /** @var GeneratorInterface $generator */ + $generator = app(GeneratorInterface::class); + $data = $generator->pieChart($chartData); return Response::json($data); } diff --git a/app/Models/Preference.php b/app/Models/Preference.php index 768c662f2d..10f38ddd2d 100644 --- a/app/Models/Preference.php +++ b/app/Models/Preference.php @@ -48,7 +48,7 @@ class Preference extends Model } - return json_decode($data); + return json_decode($data, true); } /**