From d85eeb6918d521197c2e6ad1e3da2dec8ce95398 Mon Sep 17 00:00:00 2001
From: sowgro <tpoke.ferrari@gmail.com>
Date: Fri, 4 Apr 2025 17:22:10 -0400
Subject: Edit modal

---
 ufund-ui/src/app/components/need-page/need-page.component.html | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

(limited to 'ufund-ui/src/app/components/need-page/need-page.component.html')

diff --git a/ufund-ui/src/app/components/need-page/need-page.component.html b/ufund-ui/src/app/components/need-page/need-page.component.html
index 522b710..d494ccf 100644
--- a/ufund-ui/src/app/components/need-page/need-page.component.html
+++ b/ufund-ui/src/app/components/need-page/need-page.component.html
@@ -35,9 +35,12 @@
         <button *ngIf="isHelper()" (click)="add(need!)">
             <span class="icon">add</span>Add To Basket
         </button>
-<!--        <button *ngIf="isManager()" (click)="edit(need!)">-->
-<!--            <span class="icon">edit</span>Edit Need-->
-<!--        </button>-->
+        <ng-template #edit>
+            <app-need-edit *ngIf="need" [selectedNeed]="need"></app-need-edit>
+        </ng-template>
+        <button *ngIf="isManager()" (click)="modalService.showModal(edit)">
+            <span class="icon">edit</span>Edit Need
+        </button>
         <button *ngIf="isManager()" (click)="delete(need!.id)" >
             <span class="icon">delete</span>Delete Need
         </button>
-- 
cgit v1.2.3


From feba88fed855d1694d292e401a4cb336e0ff9d69 Mon Sep 17 00:00:00 2001
From: sowgro <tpoke.ferrari@gmail.com>
Date: Fri, 4 Apr 2025 20:56:02 -0400
Subject: Fix create-need dialog

---
 ufund-ui/src/app/components/need-page/need-page.component.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'ufund-ui/src/app/components/need-page/need-page.component.html')

diff --git a/ufund-ui/src/app/components/need-page/need-page.component.html b/ufund-ui/src/app/components/need-page/need-page.component.html
index d494ccf..aed3e95 100644
--- a/ufund-ui/src/app/components/need-page/need-page.component.html
+++ b/ufund-ui/src/app/components/need-page/need-page.component.html
@@ -36,7 +36,7 @@
             <span class="icon">add</span>Add To Basket
         </button>
         <ng-template #edit>
-            <app-need-edit *ngIf="need" [selectedNeed]="need"></app-need-edit>
+            <app-need-edit [mode]="'Edit'" *ngIf="need" [need]="need" (refreshNeedList)="ngOnInit()"></app-need-edit>
         </ng-template>
         <button *ngIf="isManager()" (click)="modalService.showModal(edit)">
             <span class="icon">edit</span>Edit Need
-- 
cgit v1.2.3


From b578584a1208178100bf90e8b06971772c7fc00f Mon Sep 17 00:00:00 2001
From: sowgro <tpoke.ferrari@gmail.com>
Date: Fri, 4 Apr 2025 21:55:12 -0400
Subject: Fix many bugs and code clean up

---
 .../components/need-page/need-page.component.html  | 96 +++++++++++-----------
 1 file changed, 50 insertions(+), 46 deletions(-)

(limited to 'ufund-ui/src/app/components/need-page/need-page.component.html')

diff --git a/ufund-ui/src/app/components/need-page/need-page.component.html b/ufund-ui/src/app/components/need-page/need-page.component.html
index aed3e95..592a71e 100644
--- a/ufund-ui/src/app/components/need-page/need-page.component.html
+++ b/ufund-ui/src/app/components/need-page/need-page.component.html
@@ -1,48 +1,52 @@
 <div id="box">
-    <h1>{{need.name}}</h1>
-    <span class="needType">{{need.type}} GOAL</span>
-
-    <img *ngIf="need.image" alt="Need image" [src]="need.image"/>
-
-    <p>{{need.description}}</p>
-    <div class="prog">
-<!--        <span>{{need?.current}} / {{need?.maxGoal}}</span>-->
-        <progress [value]="need.current" [max]="need.maxGoal"></progress>
-        <span>This goal is <strong>{{(((need.current)*100) / (need.maxGoal)).toFixed(0)}}%</strong> complete!</span>
-    </div>
-
-    <span><strong>Target Goal:</strong> {{need.maxGoal}}</span>
-
-    <span><strong>Amount Currently Collected:</strong> {{need.current}}</span>
-
-    <span><strong>Location:</strong> {{need.location}}</span>
-
-    <span><strong>Urgency: </strong>
-        <span *ngIf="!need.urgent">Not urgent</span>
-        <span *ngIf="need.urgent" class="urgent">URGENT</span>
-    </span>
-
-    <div *ngIf="need.filterAttributes.length > 0">
-        <strong>Tags:</strong>
-        <ul style="display: flex; column-gap: 24px;">
-            <li *ngFor="let tag of need?.filterAttributes">
-                <p>{{tag}}</p>
-            </li>
-        </ul>
-    </div>
-
-    <div class="actionArea">
-        <button *ngIf="isHelper()" (click)="add(need!)">
-            <span class="icon">add</span>Add To Basket
-        </button>
-        <ng-template #edit>
-            <app-need-edit [mode]="'Edit'" *ngIf="need" [need]="need" (refreshNeedList)="ngOnInit()"></app-need-edit>
-        </ng-template>
-        <button *ngIf="isManager()" (click)="modalService.showModal(edit)">
-            <span class="icon">edit</span>Edit Need
-        </button>
-        <button *ngIf="isManager()" (click)="delete(need!.id)" >
-            <span class="icon">delete</span>Delete Need
-        </button>
-    </div>
+    @if (need) {
+        <h1>{{need.name}}</h1>
+        <span class="needType">{{need.type}} GOAL</span>
+
+        <img *ngIf="need.image" alt="Need image" [src]="need.image"/>
+
+        <p>{{need.description}}</p>
+        <div class="prog">
+            <progress [value]="need.current" [max]="need.maxGoal"></progress>
+            <span>This goal is <strong>{{(((need.current)*100) / (need.maxGoal)).toFixed(0)}}%</strong> complete!</span>
+        </div>
+
+        <span><strong>Target Goal:</strong> {{need.maxGoal}}</span>
+
+        <span><strong>Amount Currently Collected:</strong> {{need.current}}</span>
+
+        <span><strong>Location:</strong> {{need.location}}</span>
+
+        <span><strong>Urgency: </strong>
+            <span *ngIf="!need.urgent">Not urgent</span>
+            <span *ngIf="need.urgent" class="urgent">URGENT</span>
+        </span>
+
+        <div *ngIf="need.filterAttributes?.length">
+            <strong>Tags:</strong>
+            <ul style="display: flex; column-gap: 24px;">
+                <li *ngFor="let tag of need?.filterAttributes">
+                    <p>{{tag}}</p>
+                </li>
+            </ul>
+        </div>
+
+        <div class="actionArea">
+            <button *ngIf="usersService.isHelper()" (click)="add(need)" [disabled]="usersService.inBasket(usersService.getBasket() | async, need)">
+                <span class="icon">{{usersService.inBasket(usersService.getBasket() | async, need)? "check": "add" }}</span>Add To Basket
+            </button>
+            <ng-template #edit>
+                <app-need-edit [mode]="'Edit'" *ngIf="need" [need]="need" (refreshNeedList)="ngOnInit()"></app-need-edit>
+            </ng-template>
+            <button *ngIf="usersService.isManager()" (click)="modalService.showModal(edit)">
+                <span class="icon">edit</span>Edit Need
+            </button>
+            <button *ngIf="usersService.isManager()" (click)="delete(need!.id)" >
+                <span class="icon">delete</span>Delete Need
+            </button>
+        </div>
+    } @else {
+        <h1>Need not found</h1>
+        <span>The requested need does not exist. <a routerLink="/cupboard">Browse the cupboard</a></span>
+    }
 </div>
-- 
cgit v1.2.3