From cd9dfcec9e7ae9fe6f08b61927b16cf76b8bcef7 Mon Sep 17 00:00:00 2001
From: Akash Keshav <112591754+domesticchores@users.noreply.github.com>
Date: Tue, 18 Mar 2025 15:49:08 -0400
Subject: debug of checkout. -ak
---
.../funding-basket/funding-basket.component.html | 19 ++++++---------
.../funding-basket/funding-basket.component.ts | 28 +++++++++++++++++++++-
2 files changed, 34 insertions(+), 13 deletions(-)
(limited to 'ufund-ui/src')
diff --git a/ufund-ui/src/app/components/funding-basket/funding-basket.component.html b/ufund-ui/src/app/components/funding-basket/funding-basket.component.html
index b8633b8..178a2cd 100644
--- a/ufund-ui/src/app/components/funding-basket/funding-basket.component.html
+++ b/ufund-ui/src/app/components/funding-basket/funding-basket.component.html
@@ -9,7 +9,7 @@
There are no needs in the basket
-
+
|
@@ -18,20 +18,14 @@
-
- {{need.name}}
-
+ {{need.name}}
Goal: {{need.maxGoal}}
Current: {{need.current}}
- How much to Contribute:
-
-
-
+ How much to Contribute:
-
+
|
@@ -39,5 +33,6 @@
-
+
Invalid input in funding basket!
+
\ No newline at end of file
diff --git a/ufund-ui/src/app/components/funding-basket/funding-basket.component.ts b/ufund-ui/src/app/components/funding-basket/funding-basket.component.ts
index 061e3fa..a7a38b8 100644
--- a/ufund-ui/src/app/components/funding-basket/funding-basket.component.ts
+++ b/ufund-ui/src/app/components/funding-basket/funding-basket.component.ts
@@ -1,4 +1,4 @@
-import {Component, OnInit} from '@angular/core';
+import {Component, Input, OnInit, ViewChild} from '@angular/core';
import {User} from '../../models/User';
import { UsersService } from '../../services/users.service';
import { Need } from '../../models/Need';
@@ -21,6 +21,9 @@ export class FundingBasketComponent implements OnInit {
protected usersService: UsersService
) {}
+ @ViewChild("contribution") contribution?: Input;
+ @Input() isValid: boolean = true;
+
// this is for login rerouting
ngOnInit(): void {
if (!this.usersService.getCurrentUser()) {
@@ -32,6 +35,29 @@ export class FundingBasketComponent implements OnInit {
// this.usersService.removeNeed(); <- call this to remove
}
+ async checkout() {
+ this.isValid = true;
+ for (let c of document.getElementById("funding-basket")?.querySelectorAll('.contribution')!) {
+ var contribution = c as HTMLInputElement;
+ console.log(contribution.value, contribution.id);
+ contribution.setAttribute("style","");
+ if ( contribution.value == '' || contribution.valueAsNumber < 0) {
+ this.isValid = false;
+ contribution.setAttribute("style","color: #ff0000");
+ }
+ }
+ if (this.isValid) {
+ for (let c of document.getElementById("funding-basket")?.querySelectorAll('.contribution')!) {
+ var contribution = c as HTMLInputElement;
+ var need = await firstValueFrom(this.cupboardService.getNeed(+contribution.id));
+ need.current +=+ contribution.value;
+ console.log(need);
+ this.cupboardService.updateNeed(+contribution.id, need);
+ this.usersService.removeNeed(+contribution.id);
+ }
+ }
+ }
+
}
--
cgit v1.2.3
From 9d90b2a29b1f47b6271fd9ea87989a4195cf5ee6 Mon Sep 17 00:00:00 2001
From: Akash Keshav <112591754+domesticchores@users.noreply.github.com>
Date: Tue, 18 Mar 2025 15:59:16 -0400
Subject: working update need; broken remove basket. -ak
---
.../funding-basket/funding-basket.component.html | 1 +
.../funding-basket/funding-basket.component.ts | 35 ++++++++++++++++++----
2 files changed, 30 insertions(+), 6 deletions(-)
(limited to 'ufund-ui/src')
diff --git a/ufund-ui/src/app/components/funding-basket/funding-basket.component.html b/ufund-ui/src/app/components/funding-basket/funding-basket.component.html
index 178a2cd..30c3167 100644
--- a/ufund-ui/src/app/components/funding-basket/funding-basket.component.html
+++ b/ufund-ui/src/app/components/funding-basket/funding-basket.component.html
@@ -35,4 +35,5 @@
Invalid input in funding basket!
+
{{statusText | async}}
\ No newline at end of file
diff --git a/ufund-ui/src/app/components/funding-basket/funding-basket.component.ts b/ufund-ui/src/app/components/funding-basket/funding-basket.component.ts
index a7a38b8..7f086ec 100644
--- a/ufund-ui/src/app/components/funding-basket/funding-basket.component.ts
+++ b/ufund-ui/src/app/components/funding-basket/funding-basket.component.ts
@@ -5,7 +5,7 @@ import { Need } from '../../models/Need';
import { NeedListComponent } from '../need-list/need-list.component';
import { Router } from '@angular/router';
import { CupboardService } from '../../services/cupboard.service';
-import { BehaviorSubject, firstValueFrom } from 'rxjs';
+import { BehaviorSubject, catchError, firstValueFrom, Observable } from 'rxjs';
@Component({
selector: 'app-funding-basket',
@@ -14,6 +14,7 @@ import { BehaviorSubject, firstValueFrom } from 'rxjs';
styleUrl: './funding-basket.component.css'
})
export class FundingBasketComponent implements OnInit {
+ statusText: any;
constructor(
private router: Router,
@@ -38,7 +39,7 @@ export class FundingBasketComponent implements OnInit {
async checkout() {
this.isValid = true;
for (let c of document.getElementById("funding-basket")?.querySelectorAll('.contribution')!) {
- var contribution = c as HTMLInputElement;
+ let contribution = c as HTMLInputElement;
console.log(contribution.value, contribution.id);
contribution.setAttribute("style","");
if ( contribution.value == '' || contribution.valueAsNumber < 0) {
@@ -48,12 +49,34 @@ export class FundingBasketComponent implements OnInit {
}
if (this.isValid) {
for (let c of document.getElementById("funding-basket")?.querySelectorAll('.contribution')!) {
- var contribution = c as HTMLInputElement;
- var need = await firstValueFrom(this.cupboardService.getNeed(+contribution.id));
+ let contribution = c as HTMLInputElement;
+ let need = await firstValueFrom(this.cupboardService.getNeed(+contribution.id));
need.current +=+ contribution.value;
console.log(need);
- this.cupboardService.updateNeed(+contribution.id, need);
- this.usersService.removeNeed(+contribution.id);
+ this.usersService.removeNeed(need.id);
+ this.cupboardService.updateNeed(need.id, need)
+ .pipe(catchError((ex, r) => {
+ console.log(ex.status);
+ if (ex.status == 500) {
+ this.statusText.next("Fields cannot be blank");
+ } else if (ex.status == 400) {
+ this.statusText.next("Goal must be greater than 0");
+ } else {
+ this.statusText.next("Error on creating need");
+ }
+ return new Observable();
+ }))
+ .subscribe(
+ (result) => {
+ if (result) {
+ console.log("need updated successfully");
+ //this.needList?.refresh()
+ } else {
+ console.log("need update failed");
+ }
+ }
+
+ );
}
}
}
--
cgit v1.2.3