aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-03-31 21:54:38 -0400
committersowgro <tpoke.ferrari@gmail.com>2025-03-31 21:54:38 -0400
commitaef3df6f9eacfe37479046826a9ca14310b72456 (patch)
tree81ed3c6125d4564f48a0488dbf2611b537bd212f
parent6af14c6089f0fa0924740fb6089affc545f93a81 (diff)
downloadJellySolutions-aef3df6f9eacfe37479046826a9ca14310b72456.tar.gz
JellySolutions-aef3df6f9eacfe37479046826a9ca14310b72456.tar.bz2
JellySolutions-aef3df6f9eacfe37479046826a9ca14310b72456.zip
Apply css to funding basket
-rw-r--r--ufund-ui/src/app/components/funding-basket/funding-basket.component.css85
-rw-r--r--ufund-ui/src/app/components/funding-basket/funding-basket.component.html112
-rw-r--r--ufund-ui/src/app/components/funding-basket/funding-basket.component.ts6
-rw-r--r--ufund-ui/src/app/components/need-list/need-list.component.css21
-rw-r--r--ufund-ui/src/app/components/need-list/need-list.component.html23
-rw-r--r--ufund-ui/src/app/components/need-list/need-list.component.ts13
-rw-r--r--ufund-ui/src/styles.css4
7 files changed, 202 insertions, 62 deletions
diff --git a/ufund-ui/src/app/components/funding-basket/funding-basket.component.css b/ufund-ui/src/app/components/funding-basket/funding-basket.component.css
index 3dec496..a17f710 100644
--- a/ufund-ui/src/app/components/funding-basket/funding-basket.component.css
+++ b/ufund-ui/src/app/components/funding-basket/funding-basket.component.css
@@ -1,7 +1,82 @@
-td, p {
- border: 2px solid #000;
+:host {
+ display: flex;
+ justify-content: center;
+}
+
+#box {
+ display: flex;
+ width: 1000px;
+ flex-direction: column;
+ gap: 10px;
+}
+
+.needEntry {
+ background-color: #2e2e2e;
+ display: flex;
+ flex-direction: column;
border-radius: 5px;
- padding: 5px;
- margin: 5px;
+}
+
+#needList {
+ display: flex;
+ flex-direction: column;
+ gap: 10px;
+ max-width: 1000px;
+}
+
+.needName {
+ font-weight: bold;
+}
+
+.needType {
+ text-transform: uppercase;
+ font-size: 10pt;
+}
+
+.split {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+
+
+ .left {
+ display: flex;
+ flex-direction: column;
+ }
-} \ No newline at end of file
+ .right {
+ display: flex;
+ flex-direction: column;
+ align-items: end;
+ }
+}
+
+.urgent {
+ font-size: 11pt;
+ background-color: rgba(255, 165, 0, 0.27);
+ color: rgba(255, 165, 0, 1);
+ padding: 2px;
+ border-radius: 5px;
+}
+
+.prog {
+ display: flex;
+ flex-direction: column;
+}
+
+.clickable {
+ padding: 10px;
+ background-color: #3a3a3a;
+ border-radius: 5px;
+ cursor: pointer;
+}
+
+.clickable:hover {
+ background-color: #444444;
+}
+
+.actionArea {
+ display: flex;
+ padding: 5px;
+ gap: 5px;
+}
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 504e694..52b35c1 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
@@ -1,39 +1,81 @@
-<h1>Funding Basket</h1>
-<div id="needCount">
- <label for="needCount">Needs in Basket:</label>
- <span>{{ this.usersService.getBasket().getValue().length }}</span>
-</div>
+<!--<div id="needCount">-->
+<!-- <label for="needCount">Needs in Basket:</label>-->
+<!-- <span>{{ this.usersService.getBasket().getValue().length }}</span>-->
+<!--</div>-->
-<div *ngIf="this.usersService.getBasket().getValue().length == 0">
- <h2>There are no needs in the basket</h2>
-</div>
+<!--<div *ngIf="this.usersService.getBasket().getValue().length == 0">-->
+<!-- <h2>There are no needs in the basket</h2>-->
+<!--</div>-->
+
+<!--<table class="needs" id="funding-basket" *ngIf="this.usersService.getBasket().getValue().length != 0">-->
+<!-- <thead>-->
+<!-- <tr>-->
+<!-- <th class="need"></th>-->
+<!-- </tr>-->
+<!-- </thead>-->
+<!-- <tbody>-->
+<!-- <tr *ngFor="let need of usersService.getBasket().getValue()">-->
+<!-- <td>-->
+<!-- <a routerLink="/need/{{need.id}}">{{need.name}}</a>-->
+<!-- <p>Goal: {{need.maxGoal}}</p>-->
+<!-- <p>Current: {{(need.current).toFixed(2)}}</p>-->
+<!-- <p>How much to Contribute: <input type="number" placeholder="insert value" min="1" id={{need.id}} class="contribution"></p>-->
+<!-- <br>-->
+<!-- <div>-->
+<!-- <button type="button" class="removeNeed" title="delete need"-->
+<!-- (click)="this.usersService.removeNeed(need.id)">Remove Need</button>-->
+<!-- </div>-->
+<!-- </td>-->
+<!-- </tr>-->
+<!-- </tbody>-->
+<!--</table>-->
+<!--<br>-->
+<div id="box">
+ <h1>Funding Basket</h1>
+ <ng-template [ngIf]="usersService.getBasket().getValue().length">
+ <div id="needList">
+ <div *ngFor="let need of usersService.getBasket().getValue()" class="needEntry">
+ <div [routerLink]="'/need/' + need.id" class="clickable">
+ <div class="split">
+ <div class="left">
+ <span class="needName">{{need.name}}</span>
+ <span class="needType">{{need.type}}</span>
+ </div>
+
+ <div class="right">
+ <span *ngIf="need.urgent" class="urgent">URGENT</span>
+ <span *ngIf="need.location"><span class="icon">location_on</span>{{need.location}}</span>
+ </div>
+ </div>
+
+ <br>
-<table class="needs" id="funding-basket" *ngIf="this.usersService.getBasket().getValue().length != 0">
- <thead>
- <tr>
- <th class="need"></th>
- </tr>
- </thead>
- <tbody>
- <tr *ngFor="let need of usersService.getBasket().getValue()">
- <td>
- <a routerLink="/need/{{need.id}}">{{need.name}}</a>
- <p>Goal: {{need.maxGoal}}</p>
- <p>Current: {{(need.current).toFixed(2)}}</p>
- <p>How much to Contribute: <input type="number" placeholder="insert value" min="1" id={{need.id}} class="contribution"></p>
- <br>
- <div>
- <button type="button" class="removeNeed" title="delete need"
- (click)="this.usersService.removeNeed(need.id)">Remove Need</button>
+ <div class="prog">
+ <span id="hover-status-label-{{need.id}}"> </span>
+ <span>{{need.current}}/{{need.maxGoal}} ({{((need.current / need.maxGoal) * 100).toFixed(0)}}%)</span>
+ <progress [value]="need.current" [max]="need.maxGoal"></progress>
+ </div>
+
+ <!-- <div class="description">-->
+ <!-- {{need.description}}-->
+ <!-- </div>-->
+ </div>
+
+ <div class="actionArea">
+ <input type="number" placeholder="Quantity" min="1" id={{need.id}} class="contribution">
+ <button class="removeNeed" title="delete need" (click)="this.usersService.removeNeed(need.id)">
+ <span class="icon">delete</span> Remove from Basket
+ </button>
</div>
- </td>
- </tr>
- </tbody>
-</table>
-<br>
-<div>
- <p *ngIf="!isValid">Invalid input in funding basket!</p>
- <button type="submit" class="checkout" title="checkout" (click)="checkout()">Checkout</button>
- <span *ngIf="statusText">{{statusText | async}}</span>
-</div> \ No newline at end of file
+ </div>
+ </div>
+ <br>
+ <div id="footer">
+ <button class="button2" title="checkout" (click)="checkout()">Checkout</button>
+ </div>
+ </ng-template>
+ <div *ngIf="!usersService.getBasket().getValue().length">
+ <span>There are no needs in your basket! </span><a routerLink="/cupboard">Browse the cupboard</a>
+ </div>
+</div>
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 24e2c0b..646ef35 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
@@ -39,7 +39,7 @@ export class FundingBasketComponent implements OnInit {
async checkout() {
this.isValid = true;
- for (let c of document.getElementById("funding-basket")?.querySelectorAll('.contribution')!) {
+ for (let c of document.querySelectorAll('.contribution')!) {
let contribution = c as HTMLInputElement;
contribution.setAttribute("style", "");
if (contribution.value == '' || contribution.valueAsNumber <= 0) {
@@ -59,7 +59,7 @@ export class FundingBasketComponent implements OnInit {
// }
// }
if (this.isValid) {
- for (let c of document.getElementById("funding-basket")?.querySelectorAll('.contribution')!) {
+ for (let c of document.querySelectorAll('.contribution')!) {
let contribution = c as HTMLInputElement;
let need = await firstValueFrom(this.cupboardService.getNeed(+contribution.id));
need.current += +contribution.value;
@@ -77,11 +77,11 @@ export class FundingBasketComponent implements OnInit {
}))
.subscribe((result) => {
if (result) {
- console.log('need updated successfully');
//this.needList?.refresh()
} else {
console.log('need update failed');
}
+ this.toastService.sendToast(ToastType.INFO, "Checkout successful");
});
}
}
diff --git a/ufund-ui/src/app/components/need-list/need-list.component.css b/ufund-ui/src/app/components/need-list/need-list.component.css
index 1936b38..d4be5fa 100644
--- a/ufund-ui/src/app/components/need-list/need-list.component.css
+++ b/ufund-ui/src/app/components/need-list/need-list.component.css
@@ -5,11 +5,10 @@
}
.needEntry {
- background-color: #3a3a3a;
+ background-color: #2e2e2e;
display: flex;
flex-direction: column;
border-radius: 5px;
- padding: 10px;
}
#needList {
@@ -59,6 +58,7 @@ select {
flex-direction: row;
justify-content: space-between;
+
.left {
display: flex;
flex-direction: column;
@@ -83,3 +83,20 @@ select {
display: flex;
flex-direction: column;
}
+
+.clickable {
+ padding: 10px;
+ background-color: #3a3a3a;
+ border-radius: 5px;
+ cursor: pointer;
+}
+
+.clickable:hover {
+ background-color: #444444;
+}
+
+.actionArea {
+ display: flex;
+ padding: 5px;
+ gap: 5px;
+}
diff --git a/ufund-ui/src/app/components/need-list/need-list.component.html b/ufund-ui/src/app/components/need-list/need-list.component.html
index c325320..84f83d6 100644
--- a/ufund-ui/src/app/components/need-list/need-list.component.html
+++ b/ufund-ui/src/app/components/need-list/need-list.component.html
@@ -26,37 +26,38 @@
<div id="needList">
<div *ngFor="let need of searchResults" class="needEntry">
- <div [routerLink]="'/need/' + need.id">
+ <div [routerLink]="'/need/' + need.id" class="clickable">
<div class="split">
<div class="left">
<span class="needName">{{need.name}}</span>
<span class="needType">{{need.type}}</span>
</div>
-
+
<div class="right">
<span *ngIf="need.urgent" class="urgent">URGENT</span>
<span *ngIf="need.location"><span class="icon">location_on</span>{{need.location}}</span>
</div>
</div>
-
+
+ <br>
+
<div class="prog">
<span id="hover-status-label-{{need.id}}"> </span>
<span>{{need.current}}/{{need.maxGoal}} ({{((need.current / need.maxGoal) * 100).toFixed(0)}}%)</span>
<progress [value]="need.current" [max]="need.maxGoal"></progress>
</div>
- <div class="description">
- {{need.description}}
- </div>
</div>
-
- <div>
- <button *ngIf="isHelper()" (click)="add(need)">Add To Basket</button>
+
+ <div class="actionArea">
+ <button *ngIf="isHelper()" (click)="add(need)">
+ <span class="icon">add</span>Add To Basket
+ </button>
<button *ngIf="isManager()" (click)="select(need)">
- <span class="icon">edit</span>
+ <span class="icon">edit</span>Delete Need
</button>
<button *ngIf="isManager()" (click)="delete(need.id)" >
- <span class="icon">delete</span>
+ <span class="icon">delete</span>Edit Need
</button>
</div>
</div>
diff --git a/ufund-ui/src/app/components/need-list/need-list.component.ts b/ufund-ui/src/app/components/need-list/need-list.component.ts
index 47114c3..7a9d647 100644
--- a/ufund-ui/src/app/components/need-list/need-list.component.ts
+++ b/ufund-ui/src/app/components/need-list/need-list.component.ts
@@ -1,11 +1,11 @@
-import {Component , Output, EventEmitter} from '@angular/core';
-import { NgForm } from '@angular/forms';
+import {Component, EventEmitter, Output} from '@angular/core';
import {Need} from '../../models/Need';
import {CupboardService} from '../../services/cupboard.service';
-import { UsersService } from '../../services/users.service';
-import { userType } from '../../models/User';
+import {UsersService} from '../../services/users.service';
+import {userType} from '../../models/User';
import {AuthService} from '../../services/auth.service';
import {catchError, of} from 'rxjs';
+import {ToastsService, ToastType} from '../../services/toasts.service';
interface sortAlgo {
(a: Need,b: Need): number;
@@ -84,7 +84,8 @@ export class NeedListComponent {
constructor(
private cupboardService: CupboardService,
private usersService: UsersService,
- private authService: AuthService
+ private authService: AuthService,
+ private toastService: ToastsService
) {}
refresh() {
@@ -196,7 +197,7 @@ export class NeedListComponent {
this.usersService.refreshBasket();
});
} else {
- window.alert("This need is already in your basket!")
+ this.toastService.sendToast(ToastType.ERROR, "This need is already in your basket!")
}
diff --git a/ufund-ui/src/styles.css b/ufund-ui/src/styles.css
index b152e61..f515154 100644
--- a/ufund-ui/src/styles.css
+++ b/ufund-ui/src/styles.css
@@ -38,6 +38,10 @@ button, input[type=button], input[type=reset], input[type=submit], .button {
border-radius: 9999px;
border-style: none;
background-color: light-dark(#ebebeb, #3a3a3a);
+ display: flex;
+ gap: 5px;
+ text-align: center;
+ justify-content: center;
&:hover {
background-color: light-dark(#e1e1e1, #444444);