diff --git a/app/assets/javascripts/firefly/index.js b/app/assets/javascripts/firefly/index.js index 212508dc7f..bb0e9b202b 100644 --- a/app/assets/javascripts/firefly/index.js +++ b/app/assets/javascripts/firefly/index.js @@ -6,9 +6,218 @@ $(function () { */ $.getJSON('chart/home/account').success(function (data) { var options = { + chart: { + renderTo: 'accounts-chart', + type: 'line' + }, + series: data.series, + title: { + text: null + }, + yAxis: { + allowDecimals: false, + alternateGridColor: true, + labels: { + formatter: function () { + return '€ ' + this.value; + } + }, + title: {text: null} + }, + xAxis: { + floor: 0, + type: 'datetime', + dateTimeLabelFormats: { + day: '%e %b', + year: '%b' + }, + title: { + text: null + } + }, + legend: {enabled:false}, + tooltip: { + + shared: false, + crosshairs: false, + formatter: function () { + return this.series.name + ': \u20AC ' + Highcharts.numberFormat(this.y,2); + } + }, + plotOptions: { + line: { + shadow: true + }, + series: { + cursor: 'pointer', + negativeColor: '#FF0000', + threshold: 0, + lineWidth: 1, + marker: { + radius: 2 + }, + point: { + events: { + click: function (e) { + hs.htmlExpand(null, { + src: 'chart/home/info/' + this.series.name + '/' + Highcharts.dateFormat("%d/%m/%Y", this.x), + pageOrigin: { + x: e.pageX, + y: e.pageY + }, + objectType: 'ajax', + headingText: '' + this.series.name + '', + width: 250 + } + ) + ; + } + } + } + } + }, + credits: { + enabled: false + } }; - $.plot("#flot-chart-accounts", data, options); + $('#accounts-chart').highcharts(options); + }); + + /** + * Get chart data for categories chart: + */ + $.getJSON('chart/home/categories').success(function (data) { + $('#categories').highcharts({ + chart: { + type: 'column' + }, + title: { + text: null + }, + credits: { + enabled: false + }, + xAxis: { + type: 'category', + labels: { + rotation: -45, + style: { + fontSize: '12px', + fontFamily: 'Verdana, sans-serif' + } + } + }, + yAxis: { + min: 0, + title: { + text: 'Expense (€)' + } + }, + legend: { + enabled: false + }, + tooltip: { + pointFormat: 'Total expense: € {point.y:.2f}', + }, + plotOptions: { + column: { + cursor: 'pointer' + } + }, + series: [ + { + name: 'Population', + data: data, + + events: { + click: function (e) { + alert('klik!'); + } + }, + dataLabels: { + enabled: false + } + } + ] + }); + }); + + /** + * Get chart data for budget charts. + */ + $.getJSON('chart/home/budgets').success(function (data) { + $('#budgets').highcharts({ + chart: { + type: 'bar' + }, + title: { + text: null + }, + subtitle: { + text: null + }, + xAxis: { + categories: data.labels, + title: { + text: null + }, + labels: { + style: { + fontSize: '11px', + fontFamily: 'Verdana, sans-serif' + } + } + }, + yAxis: { + min: 0, + title: { + text: 'Amount (€)', + align: 'high' + }, + labels: { + overflow: 'justify' + } + }, + tooltip: { + formatter: function () { + return false; + return '€ ' + Highcharts.numberFormat(this.y, 2); + } + }, + plotOptions: { + bar: { + cursor: 'pointer', + events: { + click: function (e) { + alert('klik!!'); + } + }, + dataLabels: { + enabled: true, + formatter: function () { + return '€ ' + Highcharts.numberFormat(this.y, 2); + } + } + } + }, + legend: { + enabled: false, + layout: 'vertical', + align: 'right', + verticalAlign: 'top', + x: -40, + y: 100, + floating: true, + borderWidth: 1, + backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor || '#FFFFFF'), + shadow: true + }, + credits: { + enabled: false + }, + series: data.series + }); }); diff --git a/app/assets/javascripts/index.js b/app/assets/javascripts/index.js index b8f964051b..22aa60bc7c 100644 --- a/app/assets/javascripts/index.js +++ b/app/assets/javascripts/index.js @@ -10,5 +10,7 @@ // // The available directives right now are require, require_directory, and require_tree // -//= require flot/jquery.flot.min +//= require highslide/highslide-full.min +//= require highslide/highslide.config +//= require_tree highcharts //= require firefly/index diff --git a/app/controllers/HomeController.php b/app/controllers/HomeController.php index ec28946115..d1f09bdc05 100644 --- a/app/controllers/HomeController.php +++ b/app/controllers/HomeController.php @@ -71,14 +71,6 @@ class HomeController extends BaseController } } - if (count($transactions) % 2 == 0) { - $transactions = array_chunk($transactions, 2); - } elseif (count($transactions) == 1) { - $transactions = array_chunk($transactions, 3); - } else { - $transactions = array_chunk($transactions, 3); - } - // build the home screen: return View::make('index')->with('count', $count)->with('transactions', $transactions)->with('title', 'Firefly') ->with('subTitle', 'What\'s playing?'); diff --git a/app/views/index.blade.php b/app/views/index.blade.php index 5dc2083368..39ab8bac1a 100644 --- a/app/views/index.blade.php +++ b/app/views/index.blade.php @@ -33,7 +33,7 @@
- Your accounts + Your accounts
-
+
+
+
+ Budgets and spending +
+
+ + +
+
+
+
+
+
+
+
+
+ Categories +
+
+ + +
+
+
+
+
+
-
-
- - - @if(count($transactions) > 0) - @foreach($transactions as $set) -
- - @foreach($set as $data) -
-

- {{{$data[1]->name}}} -

- - @include('transactions.journals-small',['transactions' => $data[0],'account' => $data[1]]) - -
- @endforeach -
- @endforeach - @endif -
-
-
+ +
+
+ + @foreach($transactions as $data) +
+ +
+ @include('transactions.journals-small-index',['transactions' => $data[0],'account' => $data[1]]) +
+
+ @endforeach
-
-
-
-
-
- - @endif @stop diff --git a/app/views/transactions/journals-small-index.blade.php b/app/views/transactions/journals-small-index.blade.php new file mode 100644 index 0000000000..78f84a1d09 --- /dev/null +++ b/app/views/transactions/journals-small-index.blade.php @@ -0,0 +1,27 @@ +
+@foreach($transactions as $journal) + + + @if($journal->transactiontype->type == 'Withdrawal') + + @endif + @if($journal->transactiontype->type == 'Deposit') + + @endif + @if($journal->transactiontype->type == 'Transfer') + + @endif + + {{{$journal->description}}} + + + @foreach($journal->transactions as $t) + @if($t->account_id == $account->id) + {{mf($t->amount)}} + @endif + @endforeach + + + +@endforeach +
\ No newline at end of file