Skip to content

Commit 9a5face

Browse files
author
Ihor Khomiak
committed
implement firebase actions for budget functionality
1 parent 96238c1 commit 9a5face

File tree

3 files changed

+27
-28
lines changed

3 files changed

+27
-28
lines changed

app/components/budget/budget.component.html

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,6 @@
3838
class="value-label"></Label>
3939
</StackLayout>
4040

41-
<StackLayout *ngIf="state == 'read'"
42-
orientation="horizontal">
43-
<Label text="Budget for a day - "
44-
class="info-label"></Label>
45-
<Label [text]="budgetService.budgetForDay"
46-
class="value-label"></Label>
47-
</StackLayout>
48-
4941
<StackLayout *ngIf="state == 'edit'"
5042
orientation="vertical">
5143
<Label text="Budget for a mounth:"

app/components/budget/budget.component.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ export class BudgetComponent {
2020
private budgetService: BudgetService
2121
) {}
2222

23+
ngOnInit() {
24+
console.log('ngOnInit');
25+
this.budgetService.getBudget();
26+
}
27+
2328
onEditButtonTap() {
2429
this.state = 'edit';
2530
}
@@ -33,7 +38,7 @@ export class BudgetComponent {
3338
return;
3439
}
3540

36-
this.budgetService.budget = Number(textField.text);
41+
this.budgetService.setBudget(Number(textField.text));
3742
this.state = 'read';
3843
}
3944

app/services/budget.service.ts

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,29 @@
11
import { Injectable } from '@angular/core';
2+
import firebase = require('nativescript-plugin-firebase');
3+
4+
import { Config } from '../common/config';
25

36
@Injectable()
47
export class BudgetService {
5-
private _budget: number = 3000;
6-
public budgetForDay: number = 0;
7-
8-
private getDayBudget() {
9-
let currentDaysMonth = this.daysInCurrentMonth();
10-
this.budgetForDay = Number((this._budget / currentDaysMonth).toFixed(2));
11-
}
12-
13-
private daysInCurrentMonth() {
14-
let dateNow = new Date();
15-
return new Date(dateNow.getFullYear(), dateNow.getMonth()+1, 0).getDate();
16-
}
17-
18-
public set budget(value : number) {
19-
this._budget = value;
20-
this.getDayBudget();
21-
}
8+
public budget: number = 0;
229

23-
public get budget() : number {
24-
return this._budget;
10+
getBudget() {
11+
const userid = Config.getUserToken();
12+
firebase.getValue(`/${userid}/budget`).then(result => {
13+
this.budget = result.value.value;
14+
});
2515
}
2616

17+
setBudget(value: number) {
18+
const userid = Config.getUserToken();
19+
firebase.setValue(
20+
`/${userid}/budget`,
21+
{
22+
value: value,
23+
updateTs: firebase.ServerValue.TIMESTAMP
24+
}
25+
).then(result => {
26+
this.budget = value;
27+
});
28+
}
2729
}

0 commit comments

Comments
 (0)