merge
This commit is contained in:
commit
f191e1283d
3 changed files with 94 additions and 180 deletions
|
@ -3,6 +3,6 @@
|
||||||
md-content table { max-width: 99%;
|
md-content table { max-width: 99%;
|
||||||
width: 99%;
|
width: 99%;
|
||||||
margin: 0 0.5%; }
|
margin: 0 0.5%; }
|
||||||
|
md-card select { height: 100%; }
|
||||||
.even{background-color:#ddd}
|
.even{background-color:#ddd}
|
||||||
.odd{background-color:#eee}
|
.odd{background-color:#eee}
|
||||||
|
|
|
@ -22,10 +22,8 @@ app.controller( 'DashboardCtrl',
|
||||||
|
|
||||||
// compute an account's score: from 1 (good) to 10 (bad), 0 is neutral/undecided
|
// compute an account's score: from 1 (good) to 10 (bad), 0 is neutral/undecided
|
||||||
var score_account = function ( account ) {
|
var score_account = function ( account ) {
|
||||||
if ( account.match( /^Income:(salaire|Sécu|Mutuelle)$/ ) ) {
|
if ( account.match( /^Income/ ) ) {
|
||||||
return 11;
|
return -10;
|
||||||
} else if ( account.match( /^Income:(Gift|Remboursement)$/ ) ) {
|
|
||||||
return 12;
|
|
||||||
} else if ( account.match( /^Expenses:(courses|Hang)$/ ) ) {
|
} else if ( account.match( /^Expenses:(courses|Hang)$/ ) ) {
|
||||||
return 1;
|
return 1;
|
||||||
} else if ( account.match( /^Expenses:Home/ ) ) {
|
} else if ( account.match( /^Expenses:Home/ ) ) {
|
||||||
|
@ -41,9 +39,9 @@ app.controller( 'DashboardCtrl',
|
||||||
} else if ( account.match( /^Expenses:Gadgets/ ) ) {
|
} else if ( account.match( /^Expenses:Gadgets/ ) ) {
|
||||||
return 10;
|
return 10;
|
||||||
} else if ( account.match( /^Liabilities/ ) ) {
|
} else if ( account.match( /^Liabilities/ ) ) {
|
||||||
return 1000;
|
return 0;
|
||||||
} else if ( account.match( /^Assets/ ) ) {
|
} else if ( account.match( /^Assets/ ) ) {
|
||||||
return 100;
|
return -100;
|
||||||
} else {
|
} else {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -53,18 +51,14 @@ app.controller( 'DashboardCtrl',
|
||||||
var adjusted_score = score;
|
var adjusted_score = score;
|
||||||
var color_scale = [ '#99f', '#0f0', '#3f0', '#6f0', '#9f0', '#cf0', '#fc0', '#f90', '#f60', '#f30', '#f00' ];
|
var color_scale = [ '#99f', '#0f0', '#3f0', '#6f0', '#9f0', '#cf0', '#fc0', '#f90', '#f60', '#f30', '#f00' ];
|
||||||
|
|
||||||
if ( score >= 1000 ) {
|
if ( score <= -100 ) {
|
||||||
// Liabilities
|
|
||||||
adjusted_score = score - 1000;
|
|
||||||
color_scale = [ '#0ff' ];
|
|
||||||
} else if ( score >= 100 ) {
|
|
||||||
// Assets
|
// Assets
|
||||||
adjusted_score = score - 100;
|
adjusted_score = ( score * -1 ) - 100;
|
||||||
color_scale = [ '#f0f' ];
|
color_scale = [ '#f0f' ];
|
||||||
} else if ( score >= 11 ) {
|
} else if ( score <= -10 ) {
|
||||||
// Income
|
// Income
|
||||||
adjusted_score = score - 11;
|
adjusted_score = ( score * -1 ) - 10;
|
||||||
color_scale = [ '#360', '#369' ];
|
color_scale = [ '#360' ];
|
||||||
}
|
}
|
||||||
|
|
||||||
return color_scale[ adjusted_score ];
|
return color_scale[ adjusted_score ];
|
||||||
|
@ -109,12 +103,6 @@ app.controller( 'DashboardCtrl',
|
||||||
} );
|
} );
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.select = { score_higher_than: function( bucket, score ) {
|
|
||||||
bucket.accounts_selected = _(bucket.raw_data).filter( function( account ) {
|
|
||||||
return account.score >= score;
|
|
||||||
} );
|
|
||||||
}};
|
|
||||||
|
|
||||||
var Bucket = function( categories, period ) {
|
var Bucket = function( categories, period ) {
|
||||||
var _this = this;
|
var _this = this;
|
||||||
this.categories = categories;
|
this.categories = categories;
|
||||||
|
@ -164,29 +152,11 @@ app.controller( 'DashboardCtrl',
|
||||||
}, 0 );
|
}, 0 );
|
||||||
bucket.accounts_selected = bucket.raw_data;
|
bucket.accounts_selected = bucket.raw_data;
|
||||||
|
|
||||||
$scope.select.score_higher_than( bucket, bucket.score_threshold );
|
|
||||||
$scope.filter_data();
|
$scope.filter_data();
|
||||||
} );
|
} );
|
||||||
} );
|
} );
|
||||||
};
|
};
|
||||||
|
|
||||||
// $scope.dates_salaries = [];
|
|
||||||
|
|
||||||
// var retrieve_dates_salaries = function() {
|
|
||||||
// API.dates_salaries()
|
|
||||||
// .then( function ( response ) {
|
|
||||||
// $scope.dates_salaries = response.data;
|
|
||||||
// $scope.periods= [];
|
|
||||||
// for ( var i = 0 ; i < ( $scope.dates_salaries.length - 1 ) ; i++ ) {
|
|
||||||
// $scope.periods.push( 'from ' + $scope.dates_salaries[i] + ' to ' + $scope.dates_salaries[i+1] );
|
|
||||||
// }
|
|
||||||
// $scope.periods.push( 'from ' + _($scope.dates_salaries).last() );
|
|
||||||
// $scope.periods = _($scope.periods).reverse();
|
|
||||||
// $scope.period = _($scope.periods).first();
|
|
||||||
// } );
|
|
||||||
// };
|
|
||||||
//retrieve_dates_salaries();
|
|
||||||
|
|
||||||
var retrieve_accounts = function() {
|
var retrieve_accounts = function() {
|
||||||
API.accounts()
|
API.accounts()
|
||||||
.then( function ( response ) {
|
.then( function ( response ) {
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
<md-content flex="100" layout="column" layout-gt-md="row">
|
<md-content flex="100" layout="column">
|
||||||
|
<md-card flex="100" layout="row">
|
||||||
<md-card flex="20">
|
<md-card flex="20">
|
||||||
<select multiple="true" data-ng-model="graphed_accounts" style="height: 100%">
|
<select multiple="true" data-ng-model="graphed_accounts">
|
||||||
<option data-ng-repeat="account in accounts">{{account}}</option>
|
<option data-ng-repeat="account in accounts">{{account}}</option>
|
||||||
</select>
|
</select>
|
||||||
</md-card>
|
</md-card>
|
||||||
<md-card flex="75">
|
<md-card flex="81">
|
||||||
<nvd3-multi-bar-chart
|
<nvd3-multi-bar-chart
|
||||||
data="monthly_values"
|
data="monthly_values"
|
||||||
id="monthlyValues"
|
id="monthlyValues"
|
||||||
height="350"
|
height="300"
|
||||||
showXAxis="true"
|
showXAxis="true"
|
||||||
showYAxis="true"
|
showYAxis="true"
|
||||||
showLegend="true"
|
showLegend="true"
|
||||||
|
@ -20,38 +21,23 @@
|
||||||
<svg></svg>
|
<svg></svg>
|
||||||
</nvd3-multi-bar-chart>
|
</nvd3-multi-bar-chart>
|
||||||
</md-card>
|
</md-card>
|
||||||
</md-content>
|
</md-card>
|
||||||
|
|
||||||
<md-toolbar flex="100" layout="column" layout-gt-md="row" layout-align="center center">
|
<md-card flex="100" layout="column"
|
||||||
<h2>
|
|
||||||
<md-input-container>
|
|
||||||
<md-select data-ng-model="period" aria-label="what">
|
|
||||||
<md-option data-ng-repeat="period in periods">{{period}}</md-option>
|
|
||||||
</md-select>
|
|
||||||
</md-input-container>
|
|
||||||
</h2>
|
|
||||||
</md-toolbar>
|
|
||||||
|
|
||||||
<md-content flex="100" layout="column" layout-gt-md="row">
|
|
||||||
<md-card flex="48" layout="column"
|
|
||||||
data-ng-repeat="bucket in balance.buckets">
|
data-ng-repeat="bucket in balance.buckets">
|
||||||
<md-toolbar>
|
<md-toolbar>
|
||||||
<h4 data-ng-repeat="account in bucket.total_detailed">{{account.account}} = {{account.amount | number:2}} €</h4>
|
<span data-ng-repeat="account in bucket.total_detailed">{{account.account}} = {{account.amount | number:2}} €</span>
|
||||||
<!-- <md-slider discrete
|
</md-toolbar>
|
||||||
aria-label="score threshold"
|
<md-content layout="row">
|
||||||
min="0" max="10" step="1"
|
<md-card flex="20">
|
||||||
data-ng-model="bucket.score_threshold"
|
|
||||||
data-ng-change="select.score_higher_than( bucket, bucket.score_threshold ); filter_data()">
|
|
||||||
</md-slider> -->
|
|
||||||
<select multiple
|
<select multiple
|
||||||
data-ng-model="bucket.accounts_selected"
|
data-ng-model="bucket.accounts_selected"
|
||||||
data-ng-options="account.account for account in bucket.raw_data | orderBy:'account'"
|
data-ng-options="account.account for account in bucket.raw_data | orderBy:'account'"
|
||||||
data-ng-change="filter_data()">
|
data-ng-change="filter_data()">
|
||||||
<option value=''>...</option>
|
<option value=''>...</option>
|
||||||
</select>
|
</select>
|
||||||
</md-toolbar>
|
</md-card>
|
||||||
<md-content>
|
<md-card flex="20">
|
||||||
<md-card>
|
|
||||||
<nvd3-pie-chart
|
<nvd3-pie-chart
|
||||||
data="bucket.data"
|
data="bucket.data"
|
||||||
x="xFunction()"
|
x="xFunction()"
|
||||||
|
@ -68,7 +54,7 @@
|
||||||
<svg></svg>
|
<svg></svg>
|
||||||
</nvd3-pie-chart>
|
</nvd3-pie-chart>
|
||||||
</md-card>
|
</md-card>
|
||||||
<md-card>
|
<md-card flex="56">
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -96,46 +82,4 @@
|
||||||
</md-card>
|
</md-card>
|
||||||
</md-content>
|
</md-content>
|
||||||
</md-card>
|
</md-card>
|
||||||
<!-- <md-card flex="48" layout="column">
|
|
||||||
<table class="table">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th style="width: 11%">Account</th>
|
|
||||||
<th style="width: 3%">Spent</th>
|
|
||||||
<th style="width: 3%">Budgeted</th>
|
|
||||||
<th style="width: 3%">Percentage</th>
|
|
||||||
<th>Progress</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr data-ng-repeat="account in budget"
|
|
||||||
data-ng-class="{'even': $even, 'odd': $odd}">
|
|
||||||
<td>
|
|
||||||
{{account.account}}
|
|
||||||
</td>
|
|
||||||
<td style="text-align: right;">
|
|
||||||
{{account.amount | number:2}}{{account.currency}}
|
|
||||||
</td>
|
|
||||||
<td style="text-align: right;">
|
|
||||||
<span data-ng-if="account.percentage >= 0">{{account.budget | number:2}}{{account.currency}}</span>
|
|
||||||
<span data-ng-if="account.percentage < 0">
|
|
||||||
{{balance.buckets[1].raw_total - total_budget | number:2}}{{account.currency}}
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: right;">
|
|
||||||
<span data-ng-if="account.percentage >= 0">{{account.percentage | number:2}}%</span>
|
|
||||||
<span data-ng-if="account.percentage < 0">
|
|
||||||
{{( account.amount / ( balance.buckets[1].raw_total - total_budget ) ) * 100 | number:2}}%
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<md-progress-linear
|
|
||||||
ng-class="{'md-warn': account.percentage > 100, 'md-warn md-hue-3': account.account == '(unbudgeted)' }"
|
|
||||||
md-mode="determinate"
|
|
||||||
value="{{account.percentage}}"></md-progress-linear>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</md-card> -->
|
|
||||||
</md-content>
|
</md-content>
|
||||||
|
|
Loading…
Add table
Reference in a new issue