From e7b4adfa95e2c362a41baac1510eb2579459ad99 Mon Sep 17 00:00:00 2001 From: Huffle Date: Mon, 26 May 2025 09:52:10 +0200 Subject: [PATCH] AP-65 (#87) closes #65 Reviewed-on: https://gitea.seeseepuff.be/seeseemelk/allowance_planner_2000/pulls/87 --- .../app/pages/allowance/allowance.page.html | 4 +-- .../src/app/pages/allowance/allowance.page.ts | 2 +- .../edit-allowance/edit-allowance.page.html | 28 ++++++++++++------- .../edit-allowance/edit-allowance.page.scss | 6 +++- .../edit-allowance/edit-allowance.page.ts | 23 ++++++++++++++- .../src/app/services/allowance.service.ts | 8 ++++++ 6 files changed, 56 insertions(+), 15 deletions(-) diff --git a/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.html b/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.html index eed3155..4638229 100644 --- a/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.html +++ b/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.html @@ -37,7 +37,7 @@
Main Allowance
-
+
settings
@@ -53,7 +53,7 @@
{{ goal.name }}
-
+
settings
diff --git a/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.ts b/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.ts index fdd460d..5508cb9 100644 --- a/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.ts +++ b/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.ts @@ -36,7 +36,7 @@ export class AllowancePage implements ViewWillEnter { allowance[0].name = 'Main Allowance'; this.allowance$.next(allowance); }) - }, 10); + }, 20); } canFinishGoal(allowance: Allowance): boolean { diff --git a/frontend/allowance-planner-v2/src/app/pages/edit-allowance/edit-allowance.page.html b/frontend/allowance-planner-v2/src/app/pages/edit-allowance/edit-allowance.page.html index 43ff437..5484449 100644 --- a/frontend/allowance-planner-v2/src/app/pages/edit-allowance/edit-allowance.page.html +++ b/frontend/allowance-planner-v2/src/app/pages/edit-allowance/edit-allowance.page.html @@ -2,30 +2,38 @@
Create Goal - Edit Goal + Edit Goal + Edit Allowance
- - +
+ + +
- - +
+ + +
- - +
+ + +
diff --git a/frontend/allowance-planner-v2/src/app/pages/edit-allowance/edit-allowance.page.scss b/frontend/allowance-planner-v2/src/app/pages/edit-allowance/edit-allowance.page.scss index 3fee56e..db17f38 100644 --- a/frontend/allowance-planner-v2/src/app/pages/edit-allowance/edit-allowance.page.scss +++ b/frontend/allowance-planner-v2/src/app/pages/edit-allowance/edit-allowance.page.scss @@ -3,10 +3,14 @@ } form { + height: 100%; +} + +form, +.item { display: flex; flex-direction: column; align-items: center; - height: 100%; } label { diff --git a/frontend/allowance-planner-v2/src/app/pages/edit-allowance/edit-allowance.page.ts b/frontend/allowance-planner-v2/src/app/pages/edit-allowance/edit-allowance.page.ts index 81f7c55..a47e7a3 100644 --- a/frontend/allowance-planner-v2/src/app/pages/edit-allowance/edit-allowance.page.ts +++ b/frontend/allowance-planner-v2/src/app/pages/edit-allowance/edit-allowance.page.ts @@ -40,7 +40,7 @@ export class EditAllowancePage implements OnInit { this.allowanceService.getAllowanceList(this.userId).subscribe((list) => { for (let allowance of list) { this.possibleColors = this.possibleColors.filter(color => color !== allowance.colour); - if (!this.isAddMode && this.goalId === allowance.id) { + if (!this.isAddMode && +this.goalId === allowance.id) { this.possibleColors.unshift(allowance.colour); } } @@ -55,6 +55,25 @@ export class EditAllowancePage implements OnInit { } ngOnInit() { + if (!this.isAddMode) { + this.allowanceService.getAllowanceById(this.goalId, this.userId).subscribe((allowance) => { + if (+this.goalId === 0) { + this.form.setValue({ + name: 'Main Allowance', + target: 0, + weight: allowance.weight, + color: '#9C4BE4' + }); + } else { + this.form.setValue({ + name: allowance.name, + target: allowance.target, + weight: allowance.weight, + color: allowance.colour + }); + } + }); + } } submit() { @@ -68,6 +87,8 @@ export class EditAllowancePage implements OnInit { if (this.isAddMode) { this.allowanceService.createAllowance(allowance, this.userId); + } else { + this.allowanceService.updateAllowance(allowance, this.goalId, this.userId); } this.router.navigate(['/tabs/allowance', this.userId]); diff --git a/frontend/allowance-planner-v2/src/app/services/allowance.service.ts b/frontend/allowance-planner-v2/src/app/services/allowance.service.ts index c84189b..75c8ce3 100644 --- a/frontend/allowance-planner-v2/src/app/services/allowance.service.ts +++ b/frontend/allowance-planner-v2/src/app/services/allowance.service.ts @@ -15,7 +15,15 @@ export class AllowanceService { return this.http.get(`${this.url}/user/${userId}/allowance`); } + getAllowanceById(allowanceId: number, userId: number): Observable { + return this.http.get(`${this.url}/user/${userId}/allowance/${allowanceId}`); + } + createAllowance(allowance: Partial, userId: number) { this.http.post(`${this.url}/user/${userId}/allowance`, allowance).subscribe(); } + + updateAllowance(allowance: Partial, allowanceId: number, userId: number) { + this.http.put(`${this.url}/user/${userId}/allowance/${allowanceId}`, allowance).subscribe(); + } } \ No newline at end of file