mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-30 10:33:30 +00:00
Removed old references to Google [skip ci]
This commit is contained in:
@@ -40,4 +40,13 @@ interface AccountChartGenerator
|
|||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function single(Account $account, Carbon $start, Carbon $end);
|
public function single(Account $account, Carbon $start, Carbon $end);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Collection $accounts
|
||||||
|
* @param Carbon $start
|
||||||
|
* @param Carbon $end
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function expenseAccounts(Collection $accounts, Carbon $start, Carbon $end);
|
||||||
}
|
}
|
||||||
|
@@ -1,97 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace FireflyIII\Generator\Chart\Account;
|
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use FireflyIII\Models\Account;
|
|
||||||
use Grumpydictator\Gchart\GChart;
|
|
||||||
use Illuminate\Support\Collection;
|
|
||||||
use Steam;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class GoogleAccountChartGenerator
|
|
||||||
*
|
|
||||||
* @package FireflyIII\Generator\Chart\Account
|
|
||||||
*/
|
|
||||||
class GoogleAccountChartGenerator implements AccountChartGenerator
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Collection $accounts
|
|
||||||
* @param Carbon $start
|
|
||||||
* @param Carbon $end
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function all(Collection $accounts, Carbon $start, Carbon $end)
|
|
||||||
{
|
|
||||||
// make chart (original code):
|
|
||||||
$chart = new GChart;
|
|
||||||
$chart->addColumn(trans('firefly.dayOfMonth'), 'date');
|
|
||||||
$index = 1;
|
|
||||||
/** @var Account $account */
|
|
||||||
foreach ($accounts as $account) {
|
|
||||||
$chart->addColumn(trans('firefly.balanceFor', ['name' => $account->name]), 'number');
|
|
||||||
$chart->addCertainty($index);
|
|
||||||
$index++;
|
|
||||||
}
|
|
||||||
$current = clone $start;
|
|
||||||
$current->subDay();
|
|
||||||
$today = Carbon::now();
|
|
||||||
while ($end >= $current) {
|
|
||||||
$row = [clone $current];
|
|
||||||
$certain = $current < $today;
|
|
||||||
foreach ($accounts as $account) {
|
|
||||||
$row[] = Steam::balance($account, $current);
|
|
||||||
$row[] = $certain;
|
|
||||||
}
|
|
||||||
$chart->addRowArray($row);
|
|
||||||
$current->addDay();
|
|
||||||
}
|
|
||||||
$chart->generate();
|
|
||||||
|
|
||||||
return $chart->getData();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Collection $accounts
|
|
||||||
* @param Carbon $start
|
|
||||||
* @param Carbon $end
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function frontpage(Collection $accounts, Carbon $start, Carbon $end)
|
|
||||||
{
|
|
||||||
return $this->all($accounts, $start, $end);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Account $account
|
|
||||||
* @param Carbon $start
|
|
||||||
* @param Carbon $end
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function single(Account $account, Carbon $start, Carbon $end)
|
|
||||||
{
|
|
||||||
$current = clone $start;
|
|
||||||
$today = new Carbon;
|
|
||||||
$chart = new GChart;
|
|
||||||
$chart->addColumn(trans('firefly.dayOfMonth'), 'date');
|
|
||||||
$chart->addColumn(trans('firefly.balanceFor', ['name' => $account->name]), 'number');
|
|
||||||
$chart->addCertainty(1);
|
|
||||||
|
|
||||||
while ($end >= $current) {
|
|
||||||
$certain = $current < $today;
|
|
||||||
$chart->addRow(clone $current, Steam::balance($account, $current), $certain);
|
|
||||||
$current->addDay();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$chart->generate();
|
|
||||||
|
|
||||||
return $chart->getData();
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,94 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace FireflyIII\Generator\Chart\Bill;
|
|
||||||
|
|
||||||
use FireflyIII\Models\Bill;
|
|
||||||
use FireflyIII\Models\TransactionJournal;
|
|
||||||
use Grumpydictator\Gchart\GChart;
|
|
||||||
use Illuminate\Support\Collection;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class GoogleBillChartGenerator
|
|
||||||
*
|
|
||||||
* @package FireflyIII\Generator\Chart\Bill
|
|
||||||
*/
|
|
||||||
class GoogleBillChartGenerator implements BillChartGenerator
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Collection $paid
|
|
||||||
* @param Collection $unpaid
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function frontpage(Collection $paid, Collection $unpaid)
|
|
||||||
{
|
|
||||||
// loop paid and create single entry:
|
|
||||||
$paidDescriptions = [];
|
|
||||||
$paidAmount = 0;
|
|
||||||
$unpaidDescriptions = [];
|
|
||||||
$unpaidAmount = 0;
|
|
||||||
|
|
||||||
bcscale(2);
|
|
||||||
|
|
||||||
|
|
||||||
/** @var TransactionJournal $entry */
|
|
||||||
foreach ($paid as $entry) {
|
|
||||||
|
|
||||||
$paidDescriptions[] = $entry->description;
|
|
||||||
$paidAmount = bcadd($paidAmount, $entry->amount);
|
|
||||||
}
|
|
||||||
|
|
||||||
// loop unpaid:
|
|
||||||
/** @var Bill $entry */
|
|
||||||
foreach ($unpaid as $entry) {
|
|
||||||
$description = $entry[0]->name . ' (' . $entry[1]->format('jS M Y') . ')';
|
|
||||||
$amount = bcdiv(bcadd($entry[0]->amount_max, $entry[0]->amount_min), 2);
|
|
||||||
$unpaidDescriptions[] = $description;
|
|
||||||
$unpaidAmount = bcadd($unpaidAmount, $amount);
|
|
||||||
unset($amount, $description);
|
|
||||||
}
|
|
||||||
|
|
||||||
$chart = new GChart;
|
|
||||||
$chart->addColumn(trans('firefly.name'), 'string');
|
|
||||||
$chart->addColumn(trans('firefly.amount'), 'number');
|
|
||||||
|
|
||||||
$chart->addRow(trans('firefly.unpaid') . ': ' . join(', ', $unpaidDescriptions), $unpaidAmount);
|
|
||||||
$chart->addRow(trans('firefly.paid') . ': ' . join(', ', $paidDescriptions), $paidAmount);
|
|
||||||
|
|
||||||
$chart->generate();
|
|
||||||
|
|
||||||
return $chart->getData();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Bill $bill
|
|
||||||
* @param Collection $entries
|
|
||||||
*
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public function single(Bill $bill, Collection $entries)
|
|
||||||
{
|
|
||||||
// make chart:
|
|
||||||
$chart = new GChart;
|
|
||||||
$chart->addColumn(trans('firefly.date'), 'date');
|
|
||||||
$chart->addColumn(trans('firefly.maxAmount'), 'number');
|
|
||||||
$chart->addColumn(trans('firefly.minAmount'), 'number');
|
|
||||||
$chart->addColumn(trans('firefly.billEntry'), 'number');
|
|
||||||
|
|
||||||
/** @var TransactionJournal $result */
|
|
||||||
foreach ($entries as $result) {
|
|
||||||
$chart->addRow(
|
|
||||||
clone $result->date,
|
|
||||||
round($bill->amount_max, 2),
|
|
||||||
round($bill->amount_min, 2),
|
|
||||||
round($result->amount, 2)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$chart->generate();
|
|
||||||
|
|
||||||
return $chart->getData();
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,102 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace FireflyIII\Generator\Chart\Budget;
|
|
||||||
|
|
||||||
use Grumpydictator\Gchart\GChart;
|
|
||||||
use Illuminate\Support\Collection;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class GoogleBudgetChartGenerator
|
|
||||||
*
|
|
||||||
* @package FireflyIII\Generator\Chart\Budget
|
|
||||||
*/
|
|
||||||
class GoogleBudgetChartGenerator implements BudgetChartGenerator
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Collection $entries
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function budget(Collection $entries)
|
|
||||||
{
|
|
||||||
|
|
||||||
$chart = new GChart;
|
|
||||||
$chart->addColumn(trans('firefly.period'), 'date');
|
|
||||||
$chart->addColumn(trans('firefly.spent'), 'number');
|
|
||||||
|
|
||||||
/** @var array $entry */
|
|
||||||
foreach ($entries as $entry) {
|
|
||||||
$chart->addRow($entry[0], $entry[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$chart->generate();
|
|
||||||
|
|
||||||
return $chart->getData();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @codeCoverageIgnore
|
|
||||||
*
|
|
||||||
* @param Collection $entries
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function budgetLimit(Collection $entries)
|
|
||||||
{
|
|
||||||
return $this->budget($entries);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Collection $entries
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function frontpage(Collection $entries)
|
|
||||||
{
|
|
||||||
$chart = new GChart;
|
|
||||||
$chart->addColumn(trans('firefly.budget'), 'string');
|
|
||||||
$chart->addColumn(trans('firefly.left'), 'number');
|
|
||||||
$chart->addColumn(trans('firefly.spent'), 'number');
|
|
||||||
$chart->addColumn(trans('firefly.overspent'), 'number');
|
|
||||||
|
|
||||||
/** @var array $entry */
|
|
||||||
foreach ($entries as $entry) {
|
|
||||||
if ($entry[1] != 0 || $entry[2] != 0 || $entry[3] != 0) {
|
|
||||||
$chart->addRow($entry[0], $entry[1], $entry[2], $entry[3]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$chart->generate();
|
|
||||||
|
|
||||||
return $chart->getData();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Collection $budgets
|
|
||||||
* @param Collection $entries
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function year(Collection $budgets, Collection $entries)
|
|
||||||
{
|
|
||||||
$chart = new GChart;
|
|
||||||
// add columns:
|
|
||||||
$chart->addColumn(trans('firefly.month'), 'date');
|
|
||||||
foreach ($budgets as $budget) {
|
|
||||||
$chart->addColumn($budget->name, 'number');
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @var array $entry */
|
|
||||||
foreach ($entries as $entry) {
|
|
||||||
|
|
||||||
$chart->addRowArray($entry);
|
|
||||||
}
|
|
||||||
|
|
||||||
$chart->generate();
|
|
||||||
|
|
||||||
return $chart->getData();
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,130 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace FireflyIII\Generator\Chart\Category;
|
|
||||||
|
|
||||||
use Grumpydictator\Gchart\GChart;
|
|
||||||
use Illuminate\Support\Collection;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class GoogleCategoryChartGenerator
|
|
||||||
*
|
|
||||||
* @package FireflyIII\Generator\Chart\Category
|
|
||||||
*/
|
|
||||||
class GoogleCategoryChartGenerator implements CategoryChartGenerator
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Collection $entries
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function all(Collection $entries)
|
|
||||||
{
|
|
||||||
$chart = new GChart;
|
|
||||||
$chart->addColumn(trans('firefly.period'), 'date');
|
|
||||||
$chart->addColumn(trans('firefly.spent'), 'number');
|
|
||||||
|
|
||||||
/** @var array $entry */
|
|
||||||
foreach ($entries as $entry) {
|
|
||||||
$chart->addRow($entry[0], $entry[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$chart->generate();
|
|
||||||
|
|
||||||
return $chart->getData();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Collection $entries
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function frontpage(Collection $entries)
|
|
||||||
{
|
|
||||||
$chart = new GChart;
|
|
||||||
$chart->addColumn(trans('firefly.category'), 'string');
|
|
||||||
$chart->addColumn(trans('firefly.spent'), 'number');
|
|
||||||
|
|
||||||
|
|
||||||
/** @var array $entry */
|
|
||||||
foreach ($entries as $entry) {
|
|
||||||
$sum = $entry['sum'];
|
|
||||||
if ($sum != 0) {
|
|
||||||
$chart->addRow($entry['name'], $sum);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$chart->generate();
|
|
||||||
|
|
||||||
return $chart->getData();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Collection $entries
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function month(Collection $entries)
|
|
||||||
{
|
|
||||||
$chart = new GChart;
|
|
||||||
|
|
||||||
$chart->addColumn(trans('firefly.period'), 'date');
|
|
||||||
$chart->addColumn(trans('firefly.spent'), 'number');
|
|
||||||
|
|
||||||
/** @var array $entry */
|
|
||||||
foreach ($entries as $entry) {
|
|
||||||
$chart->addRow($entry[0], $entry[1]);
|
|
||||||
}
|
|
||||||
$chart->generate();
|
|
||||||
|
|
||||||
return $chart->getData();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Collection $categories
|
|
||||||
* @param Collection $entries
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function spentInYear(Collection $categories, Collection $entries)
|
|
||||||
{
|
|
||||||
$chart = new GChart;
|
|
||||||
|
|
||||||
$chart->addColumn(trans('firefly.month'), 'date');
|
|
||||||
foreach ($categories as $category) {
|
|
||||||
$chart->addColumn($category->name, 'number');
|
|
||||||
}
|
|
||||||
/** @var array $entry */
|
|
||||||
foreach ($entries as $entry) {
|
|
||||||
$chart->addRowArray($entry);
|
|
||||||
}
|
|
||||||
$chart->generate();
|
|
||||||
|
|
||||||
return $chart->getData();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Collection $categories
|
|
||||||
* @param Collection $entries
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function earnedInYear(Collection $categories, Collection $entries)
|
|
||||||
{
|
|
||||||
$chart = new GChart;
|
|
||||||
|
|
||||||
$chart->addColumn(trans('firefly.month'), 'date');
|
|
||||||
foreach ($categories as $category) {
|
|
||||||
$chart->addColumn($category->name, 'number');
|
|
||||||
}
|
|
||||||
/** @var array $entry */
|
|
||||||
foreach ($entries as $entry) {
|
|
||||||
$chart->addRowArray($entry);
|
|
||||||
}
|
|
||||||
$chart->generate();
|
|
||||||
|
|
||||||
return $chart->getData();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@@ -9,7 +9,7 @@ use Preferences;
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class GooglePiggyBankChartGenerator
|
* Class ChartJsPiggyBankChartGenerator
|
||||||
*
|
*
|
||||||
* @package FireflyIII\Generator\Chart\PiggyBank
|
* @package FireflyIII\Generator\Chart\PiggyBank
|
||||||
*/
|
*/
|
||||||
|
@@ -1,41 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace FireflyIII\Generator\Chart\PiggyBank;
|
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Grumpydictator\Gchart\GChart;
|
|
||||||
use Illuminate\Support\Collection;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class GooglePiggyBankChartGenerator
|
|
||||||
*
|
|
||||||
* @package FireflyIII\Generator\Chart\PiggyBank
|
|
||||||
*/
|
|
||||||
class GooglePiggyBankChartGenerator implements PiggyBankChartGenerator
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Collection $set
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function history(Collection $set)
|
|
||||||
{
|
|
||||||
$chart = new GChart;
|
|
||||||
$chart->addColumn(trans('firefly.date'), 'date');
|
|
||||||
$chart->addColumn(trans('firefly.balance'), 'number');
|
|
||||||
|
|
||||||
$sum = '0';
|
|
||||||
bcscale(2);
|
|
||||||
|
|
||||||
foreach ($set as $entry) {
|
|
||||||
$sum = bcadd($sum, $entry->sum);
|
|
||||||
$chart->addRow(new Carbon($entry->date), $sum);
|
|
||||||
}
|
|
||||||
|
|
||||||
$chart->generate();
|
|
||||||
|
|
||||||
return $chart->getData();
|
|
||||||
}
|
|
||||||
}
|
|
@@ -7,7 +7,7 @@ use Illuminate\Support\Collection;
|
|||||||
use Preferences;
|
use Preferences;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class GoogleReportChartGenerator
|
* Class ChartJsReportChartGenerator
|
||||||
*
|
*
|
||||||
* @package FireflyIII\Generator\Chart\Report
|
* @package FireflyIII\Generator\Chart\Report
|
||||||
*/
|
*/
|
||||||
|
@@ -1,58 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace FireflyIII\Generator\Chart\Report;
|
|
||||||
|
|
||||||
use Grumpydictator\Gchart\GChart;
|
|
||||||
use Illuminate\Support\Collection;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class GoogleReportChartGenerator
|
|
||||||
*
|
|
||||||
* @package FireflyIII\Generator\Chart\Report
|
|
||||||
*/
|
|
||||||
class GoogleReportChartGenerator implements ReportChartGenerator
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Collection $entries
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function yearInOut(Collection $entries)
|
|
||||||
{
|
|
||||||
$chart = new GChart;
|
|
||||||
$chart->addColumn(trans('firefly.month'), 'date');
|
|
||||||
$chart->addColumn(trans('firefly.income'), 'number');
|
|
||||||
$chart->addColumn(trans('firefly.expenses'), 'number');
|
|
||||||
|
|
||||||
/** @var array $entry */
|
|
||||||
foreach ($entries as $entry) {
|
|
||||||
$chart->addRowArray($entry);
|
|
||||||
}
|
|
||||||
$chart->generate();
|
|
||||||
|
|
||||||
return $chart->getData();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $income
|
|
||||||
* @param string $expense
|
|
||||||
* @param int $count
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function yearInOutSummarized($income, $expense, $count)
|
|
||||||
{
|
|
||||||
$chart = new GChart;
|
|
||||||
|
|
||||||
$chart->addColumn(trans('firefly.summary'), 'string');
|
|
||||||
$chart->addColumn(trans('firefly.income'), 'number');
|
|
||||||
$chart->addColumn(trans('firefly.expenses'), 'number');
|
|
||||||
$chart->addRow(trans('firefly.sum'), $income, $expense);
|
|
||||||
$chart->addRow(trans('firefly.average'), ($income / $count), ($expense / $count));
|
|
||||||
|
|
||||||
$chart->generate();
|
|
||||||
|
|
||||||
return $chart->getData();
|
|
||||||
}
|
|
||||||
}
|
|
@@ -98,7 +98,6 @@ class FireflyServiceProvider extends ServiceProvider
|
|||||||
$this->app->bind('FireflyIII\Helpers\Attachments\AttachmentHelperInterface', 'FireflyIII\Helpers\Attachments\AttachmentHelper');
|
$this->app->bind('FireflyIII\Helpers\Attachments\AttachmentHelperInterface', 'FireflyIII\Helpers\Attachments\AttachmentHelper');
|
||||||
|
|
||||||
// make charts:
|
// make charts:
|
||||||
// alternative is Google instead of ChartJs
|
|
||||||
$this->app->bind('FireflyIII\Generator\Chart\Account\AccountChartGenerator', 'FireflyIII\Generator\Chart\Account\ChartJsAccountChartGenerator');
|
$this->app->bind('FireflyIII\Generator\Chart\Account\AccountChartGenerator', 'FireflyIII\Generator\Chart\Account\ChartJsAccountChartGenerator');
|
||||||
$this->app->bind('FireflyIII\Generator\Chart\Bill\BillChartGenerator', 'FireflyIII\Generator\Chart\Bill\ChartJsBillChartGenerator');
|
$this->app->bind('FireflyIII\Generator\Chart\Bill\BillChartGenerator', 'FireflyIII\Generator\Chart\Bill\ChartJsBillChartGenerator');
|
||||||
$this->app->bind('FireflyIII\Generator\Chart\Budget\BudgetChartGenerator', 'FireflyIII\Generator\Chart\Budget\ChartJsBudgetChartGenerator');
|
$this->app->bind('FireflyIII\Generator\Chart\Budget\BudgetChartGenerator', 'FireflyIII\Generator\Chart\Budget\ChartJsBudgetChartGenerator');
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
#daterange {cursor:pointer;}
|
#daterange {cursor:pointer;}
|
||||||
.google-chart-error {height:30px;background:url('/images/error.png') no-repeat center center;}
|
.general-chart-error {height:30px;background:url('/images/error.png') no-repeat center center;}
|
||||||
.handle {cursor:move;}
|
.handle {cursor:move;}
|
||||||
|
|
||||||
.ui-sortable-placeholder {
|
.ui-sortable-placeholder {
|
||||||
|
@@ -147,7 +147,7 @@ function lineChart(URL, container, options) {
|
|||||||
new Chart(ctx).Line(newData, options);
|
new Chart(ctx).Line(newData, options);
|
||||||
|
|
||||||
}).fail(function () {
|
}).fail(function () {
|
||||||
$('#' + container).addClass('google-chart-error');
|
$('#' + container).addClass('general-chart-error');
|
||||||
});
|
});
|
||||||
console.log('URL for line chart : ' + URL);
|
console.log('URL for line chart : ' + URL);
|
||||||
}
|
}
|
||||||
@@ -182,7 +182,7 @@ function areaChart(URL, container, options) {
|
|||||||
new Chart(ctx).Line(newData, options);
|
new Chart(ctx).Line(newData, options);
|
||||||
|
|
||||||
}).fail(function () {
|
}).fail(function () {
|
||||||
$('#' + container).addClass('google-chart-error');
|
$('#' + container).addClass('general-chart-error');
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log('URL for area chart: ' + URL);
|
console.log('URL for area chart: ' + URL);
|
||||||
@@ -218,7 +218,7 @@ function columnChart(URL, container, options) {
|
|||||||
new Chart(ctx).Bar(newData, options);
|
new Chart(ctx).Bar(newData, options);
|
||||||
|
|
||||||
}).fail(function () {
|
}).fail(function () {
|
||||||
$('#' + container).addClass('google-chart-error');
|
$('#' + container).addClass('general-chart-error');
|
||||||
});
|
});
|
||||||
console.log('URL for column chart : ' + URL);
|
console.log('URL for column chart : ' + URL);
|
||||||
}
|
}
|
||||||
@@ -253,7 +253,7 @@ function stackedColumnChart(URL, container, options) {
|
|||||||
new Chart(ctx).StackedBar(newData, options);
|
new Chart(ctx).StackedBar(newData, options);
|
||||||
|
|
||||||
}).fail(function () {
|
}).fail(function () {
|
||||||
$('#' + container).addClass('google-chart-error');
|
$('#' + container).addClass('general-chart-error');
|
||||||
});
|
});
|
||||||
console.log('URL for stacked column chart : ' + URL);
|
console.log('URL for stacked column chart : ' + URL);
|
||||||
}
|
}
|
||||||
@@ -286,7 +286,7 @@ function pieChart(URL, container, options) {
|
|||||||
new Chart(ctx).Pie(data, options);
|
new Chart(ctx).Pie(data, options);
|
||||||
|
|
||||||
}).fail(function () {
|
}).fail(function () {
|
||||||
$('#' + container).addClass('google-chart-error');
|
$('#' + container).addClass('general-chart-error');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,319 +0,0 @@
|
|||||||
/* globals currencyCode, language */
|
|
||||||
/* exported lineChart, googleColumnChart, stackedColumnChart, comboChart, pieChart, defaultLineChartOptions, defaultAreaChartOptions, defaultBarChartOptions, defaultComboChartOptions, defaultColumnChartOptions, defaultStackedColumnChartOptions, defaultPieChartOptions */
|
|
||||||
var google = google || {};
|
|
||||||
google.load('visualization', '1.1', {'packages': ['corechart', 'bar', 'line'], 'language': language});
|
|
||||||
|
|
||||||
|
|
||||||
/* exported */
|
|
||||||
|
|
||||||
var defaultLineChartOptions = {
|
|
||||||
curveType: 'function',
|
|
||||||
legend: {
|
|
||||||
position: 'none'
|
|
||||||
},
|
|
||||||
interpolateNulls: true,
|
|
||||||
lineWidth: 1,
|
|
||||||
chartArea: {
|
|
||||||
left: 50,
|
|
||||||
top: 10,
|
|
||||||
width: '95%',
|
|
||||||
height: '90%'
|
|
||||||
},
|
|
||||||
height: 400,
|
|
||||||
colors: ["#357ca5", "#008d4c", "#db8b0b", "#ca195a", "#555299", "#4285f4", "#db4437", "#f4b400", "#0f9d58", "#ab47bc", "#00acc1", "#ff7043", "#9e9d24", "#5c6bc0", "#f06292", "#00796b", "#c2185b"],
|
|
||||||
hAxis: {
|
|
||||||
textStyle: {
|
|
||||||
color: '#838383',
|
|
||||||
},
|
|
||||||
baselineColor: '#aaaaaa',
|
|
||||||
gridlines: {
|
|
||||||
color: 'transparent'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
fontSize: 11,
|
|
||||||
vAxis: {
|
|
||||||
textStyle: {
|
|
||||||
color: '#838383',
|
|
||||||
},
|
|
||||||
baselineColor: '#aaaaaa',
|
|
||||||
format: '\u20AC #'
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
var defaultAreaChartOptions = {
|
|
||||||
curveType: 'function',
|
|
||||||
legend: {
|
|
||||||
position: 'none'
|
|
||||||
},
|
|
||||||
interpolateNulls: true,
|
|
||||||
lineWidth: 1,
|
|
||||||
chartArea: {
|
|
||||||
left: 50,
|
|
||||||
top: 10,
|
|
||||||
width: '95%',
|
|
||||||
height: '90%'
|
|
||||||
},
|
|
||||||
height: 400,
|
|
||||||
colors: ["#357ca5", "#008d4c", "#db8b0b", "#ca195a", "#555299", "#4285f4", "#db4437", "#f4b400", "#0f9d58", "#ab47bc", "#00acc1", "#ff7043", "#9e9d24", "#5c6bc0", "#f06292", "#00796b", "#c2185b"],
|
|
||||||
hAxis: {
|
|
||||||
textStyle: {
|
|
||||||
color: '#838383',
|
|
||||||
},
|
|
||||||
baselineColor: '#aaaaaa',
|
|
||||||
gridlines: {
|
|
||||||
color: 'transparent'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
fontSize: 11,
|
|
||||||
vAxis: {
|
|
||||||
textStyle: {
|
|
||||||
color: '#838383',
|
|
||||||
},
|
|
||||||
baselineColor: '#aaaaaa',
|
|
||||||
format: '\u20AC #'
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
var defaultBarChartOptions = {
|
|
||||||
height: 400,
|
|
||||||
bars: 'horizontal',
|
|
||||||
hAxis: {
|
|
||||||
textStyle: {
|
|
||||||
color: '#838383',
|
|
||||||
},
|
|
||||||
baselineColor: '#aaaaaa',
|
|
||||||
format: '\u20AC #'
|
|
||||||
|
|
||||||
},
|
|
||||||
fontSize: 11,
|
|
||||||
colors: ["#357ca5", "#008d4c", "#db8b0b", "#ca195a", "#555299", "#4285f4", "#db4437", "#f4b400", "#0f9d58", "#ab47bc", "#00acc1", "#ff7043", "#9e9d24", "#5c6bc0", "#f06292", "#00796b", "#c2185b"],
|
|
||||||
vAxis: {
|
|
||||||
textStyle: {
|
|
||||||
color: '#838383'
|
|
||||||
},
|
|
||||||
textPosition: 'in',
|
|
||||||
gridlines: {
|
|
||||||
|
|
||||||
color: 'transparent'
|
|
||||||
},
|
|
||||||
baselineColor: '#aaaaaa'
|
|
||||||
},
|
|
||||||
chartArea: {
|
|
||||||
left: 15,
|
|
||||||
top: 10,
|
|
||||||
width: '100%',
|
|
||||||
height: '90%'
|
|
||||||
},
|
|
||||||
|
|
||||||
legend: {
|
|
||||||
position: 'none'
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var defaultComboChartOptions = {
|
|
||||||
height: 300,
|
|
||||||
chartArea: {
|
|
||||||
left: 75,
|
|
||||||
top: 10,
|
|
||||||
width: '100%',
|
|
||||||
height: '90%'
|
|
||||||
},
|
|
||||||
vAxis: {
|
|
||||||
minValue: 0,
|
|
||||||
format: '\u20AC #'
|
|
||||||
},
|
|
||||||
colors: ["#357ca5", "#008d4c", "#db8b0b", "#ca195a", "#555299", "#4285f4", "#db4437", "#f4b400", "#0f9d58", "#ab47bc", "#00acc1", "#ff7043", "#9e9d24", "#5c6bc0", "#f06292", "#00796b", "#c2185b"],
|
|
||||||
fontSize: 11,
|
|
||||||
legend: {
|
|
||||||
position: 'none'
|
|
||||||
},
|
|
||||||
series: {
|
|
||||||
0: {type: 'line'},
|
|
||||||
1: {type: 'line'},
|
|
||||||
2: {type: 'bars'}
|
|
||||||
},
|
|
||||||
bar: {groupWidth: 20}
|
|
||||||
};
|
|
||||||
|
|
||||||
var defaultColumnChartOptions = {
|
|
||||||
height: 400,
|
|
||||||
chartArea: {
|
|
||||||
left: 50,
|
|
||||||
top: 10,
|
|
||||||
width: '85%',
|
|
||||||
height: '80%'
|
|
||||||
},
|
|
||||||
fontSize: 11,
|
|
||||||
hAxis: {
|
|
||||||
textStyle: {
|
|
||||||
color: '#838383'
|
|
||||||
},
|
|
||||||
gridlines: {
|
|
||||||
color: 'transparent'
|
|
||||||
},
|
|
||||||
baselineColor: '#aaaaaa'
|
|
||||||
|
|
||||||
},
|
|
||||||
colors: ["#357ca5", "#008d4c", "#db8b0b", "#ca195a", "#555299", "#4285f4", "#db4437", "#f4b400", "#0f9d58", "#ab47bc", "#00acc1", "#ff7043", "#9e9d24", "#5c6bc0", "#f06292", "#00796b", "#c2185b"],
|
|
||||||
vAxis: {
|
|
||||||
textStyle: {
|
|
||||||
color: '#838383'
|
|
||||||
},
|
|
||||||
baselineColor: '#aaaaaa',
|
|
||||||
format: '\u20AC #'
|
|
||||||
},
|
|
||||||
legend: {
|
|
||||||
position: 'none'
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var defaultStackedColumnChartOptions = {
|
|
||||||
height: 400,
|
|
||||||
chartArea: {
|
|
||||||
left: 50,
|
|
||||||
top: 10,
|
|
||||||
width: '85%',
|
|
||||||
height: '80%'
|
|
||||||
},
|
|
||||||
legend: {
|
|
||||||
position: 'none'
|
|
||||||
},
|
|
||||||
fontSize: 11,
|
|
||||||
isStacked: true,
|
|
||||||
colors: ["#357ca5", "#008d4c", "#db8b0b", "#ca195a", "#555299", "#4285f4", "#db4437", "#f4b400", "#0f9d58", "#ab47bc", "#00acc1", "#ff7043", "#9e9d24", "#5c6bc0", "#f06292", "#00796b", "#c2185b"],
|
|
||||||
hAxis: {
|
|
||||||
textStyle: {
|
|
||||||
color: '#838383',
|
|
||||||
},
|
|
||||||
gridlines: {
|
|
||||||
color: 'transparent'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
vAxis: {
|
|
||||||
textStyle: {
|
|
||||||
color: '#838383',
|
|
||||||
},
|
|
||||||
format: '\u20AC #'
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var defaultPieChartOptions = {
|
|
||||||
chartArea: {
|
|
||||||
left: 0,
|
|
||||||
top: 0,
|
|
||||||
width: '100%',
|
|
||||||
height: '100%'
|
|
||||||
},
|
|
||||||
fontSize: 11,
|
|
||||||
height: 200,
|
|
||||||
legend: {
|
|
||||||
position: 'none'
|
|
||||||
},
|
|
||||||
colors: ["#357ca5", "#008d4c", "#db8b0b", "#ca195a", "#555299", "#4285f4", "#db4437", "#f4b400", "#0f9d58", "#ab47bc", "#00acc1", "#ff7043", "#9e9d24", "#5c6bc0", "#f06292", "#00796b", "#c2185b"],
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
function googleChart(chartType, URL, container, options) {
|
|
||||||
"use strict";
|
|
||||||
if ($('#' + container).length === 1) {
|
|
||||||
$.getJSON(URL).success(function (data) {
|
|
||||||
/*
|
|
||||||
Get the data from the JSON
|
|
||||||
*/
|
|
||||||
var gdata = new google.visualization.DataTable(data);
|
|
||||||
|
|
||||||
/*
|
|
||||||
Format as money
|
|
||||||
*/
|
|
||||||
var money = new google.visualization.NumberFormat({
|
|
||||||
decimalSymbol: ',',
|
|
||||||
groupingSymbol: '.',
|
|
||||||
prefix: currencyCode + ' '
|
|
||||||
});
|
|
||||||
for (var i = 1; i < gdata.getNumberOfColumns(); i++) {
|
|
||||||
money.format(gdata, i);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Create a new google charts object.
|
|
||||||
*/
|
|
||||||
var chart = false;
|
|
||||||
var options = false;
|
|
||||||
if (chartType === 'line') {
|
|
||||||
chart = new google.visualization.LineChart(document.getElementById(container));
|
|
||||||
options = options || defaultLineChartOptions;
|
|
||||||
}
|
|
||||||
if (chartType === 'area') {
|
|
||||||
chart = new google.visualization.AreaChart(document.getElementById(container));
|
|
||||||
options = options || defaultAreaChartOptions;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (chartType === 'column') {
|
|
||||||
chart = new google.visualization.ColumnChart(document.getElementById(container));
|
|
||||||
options = options || defaultColumnChartOptions;
|
|
||||||
}
|
|
||||||
if (chartType === 'pie') {
|
|
||||||
chart = new google.visualization.PieChart(document.getElementById(container));
|
|
||||||
options = options || defaultPieChartOptions;
|
|
||||||
}
|
|
||||||
if (chartType === 'bar') {
|
|
||||||
chart = new google.visualization.BarChart(document.getElementById(container));
|
|
||||||
options = options || defaultBarChartOptions;
|
|
||||||
}
|
|
||||||
if (chartType === 'stackedColumn') {
|
|
||||||
chart = new google.visualization.ColumnChart(document.getElementById(container));
|
|
||||||
options = options || defaultStackedColumnChartOptions;
|
|
||||||
}
|
|
||||||
if (chartType === 'combo') {
|
|
||||||
chart = new google.visualization.ComboChart(document.getElementById(container));
|
|
||||||
options = options || defaultComboChartOptions;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (chart === false) {
|
|
||||||
alert('Cannot draw chart of type "' + chartType + '".');
|
|
||||||
} else {
|
|
||||||
chart.draw(gdata, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
}).fail(function () {
|
|
||||||
$('#' + container).addClass('google-chart-error');
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
console.log('No container found called "' + container + '"');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function lineChart(URL, container, options) {
|
|
||||||
"use strict";
|
|
||||||
return googleChart('line', URL, container, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
function areaChart(URL, container, options) {
|
|
||||||
"use strict";
|
|
||||||
return googleChart('area', URL, container, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
function columnChart(URL, container, options) {
|
|
||||||
"use strict";
|
|
||||||
return googleChart('column', URL, container, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
function stackedColumnChart(URL, container, options) {
|
|
||||||
"use strict";
|
|
||||||
return googleChart('stackedColumn', URL, container, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
function comboChart(URL, container, options) {
|
|
||||||
"use strict";
|
|
||||||
return googleChart('combo', URL, container, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
function pieChart(URL, container, options) {
|
|
||||||
"use strict";
|
|
||||||
return googleChart('pie', URL, container, options);
|
|
||||||
}
|
|
@@ -2,13 +2,8 @@
|
|||||||
|
|
||||||
$(function () {
|
$(function () {
|
||||||
"use strict";
|
"use strict";
|
||||||
if (typeof google !== 'undefined') {
|
// do chart JS stuff.
|
||||||
// do google charts:
|
drawChart();
|
||||||
google.setOnLoadCallback(drawChart);
|
|
||||||
} else {
|
|
||||||
// do chart JS stuff.
|
|
||||||
drawChart();
|
|
||||||
}
|
|
||||||
if (showTour) {
|
if (showTour) {
|
||||||
$.getJSON('json/tour').success(function (data) {
|
$.getJSON('json/tour').success(function (data) {
|
||||||
var tour = new Tour(
|
var tour = new Tour(
|
||||||
|
@@ -2,11 +2,7 @@
|
|||||||
|
|
||||||
$(function () {
|
$(function () {
|
||||||
"use strict";
|
"use strict";
|
||||||
if (typeof(google) !== 'undefined') {
|
drawChart();
|
||||||
google.setOnLoadCallback(drawChart);
|
|
||||||
} else {
|
|
||||||
drawChart();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user