diff options
| author | benal01 <bja4245@rit.edu> | 2025-03-31 23:54:04 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-31 23:54:04 -0400 | 
| commit | 982e00e128add3e8dc1f0b27f393fc8e63797059 (patch) | |
| tree | 829843f70736781c18536040b14c72c1bd48a019 | |
| parent | 896e1219526a19400c7143b274193f8b818d6156 (diff) | |
| parent | bb2e7b50e1ca96120fc42eed1f090cf0e1c98258 (diff) | |
| download | JellySolutions-982e00e128add3e8dc1f0b27f393fc8e63797059.tar.gz JellySolutions-982e00e128add3e8dc1f0b27f393fc8e63797059.tar.bz2 JellySolutions-982e00e128add3e8dc1f0b27f393fc8e63797059.zip  | |
Merge pull request #24 from RIT-SWEN-261-02/need-pages
needs per page
Diffstat (limited to '')
| -rw-r--r-- | ufund-ui/src/app/components/need-list/need-list.component.html | 9 | ||||
| -rw-r--r-- | ufund-ui/src/app/components/need-list/need-list.component.ts | 34 | 
2 files changed, 40 insertions, 3 deletions
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 e00ba47..8ea7b88 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 @@ -24,8 +24,15 @@  <h2 *ngIf="searchResults.length == needs.length"> All Needs </h2>  <h2 *ngIf="searchResults.length == 0"> No Results Found </h2> +<div id="page-selector"> +    <span>Page {{currentPage + 1}} of {{totalPages}} </span> <br> +    <label>Needs per page: </label>  +    <input type ="number" [(ngModel)]="itemsPerPage" (change)="resetVisibleNeeds()" min="1" max="{{searchResults.length}}"> +    <button *ngIf="currentPage > 0" (click)="decrementPage()">Previous</button> +    <button *ngIf="currentPage < totalPages - 1" (click)="incrementPage()">Next</button> +</div>  <div id="needList"> -    <div *ngFor="let need of searchResults" class="needEntry"> +    <div *ngFor="let need of visibleNeeds" class="needEntry">          <div [routerLink]="'/need/' + need.id" class="clickable">              <div class="split">                  <div class="left"> 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 d641acf..cd3d9bd 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 @@ -66,7 +66,36 @@ export class NeedListComponent {    selectedNeed: Need | null = null;    needs: Need[] = [];    searchResults: Need[] = []; +  visibleNeeds: Need[] = [];    sortMode: 'Ascending' | 'Descending' = 'Ascending' +  currentPage: number = 0; +  itemsPerPage: number = 5; +  totalPages: number = Math.ceil(this.needs.length / this.itemsPerPage); + +  decrementPage() { +    this.currentPage--; +    this.updateVisibleNeeds();     +  } + +  incrementPage() { +    this.currentPage++; +    this.updateVisibleNeeds();     +  } + +  editNeedsPerPage(amount: number) { +    this.itemsPerPage = amount; +    this.updateVisibleNeeds(); +  } + +  updateVisibleNeeds() { +    this.totalPages = Math.ceil(this.searchResults.length / this.itemsPerPage); +    this.visibleNeeds = this.searchResults.slice(this.currentPage * this.itemsPerPage, (this.currentPage + 1) * this.itemsPerPage); +  } + +  resetVisibleNeeds() { +    this.currentPage = 0; +    this.updateVisibleNeeds(); +  }    currentSortAlgo: sortAlgo = sortByPriority;    sortSelection: string = 'sortByPriority'; @@ -96,6 +125,7 @@ export class NeedListComponent {              this.needs = n.sort(this.currentSortAlgo).reverse();            }            this.searchResults = this.needs; +          this.updateVisibleNeeds();          });          const form = document.getElementById('search-form') as HTMLFormElement; @@ -105,6 +135,7 @@ export class NeedListComponent {    ngOnInit(): void {      this.refresh() +       }    changeSortMode(form : any) { @@ -145,8 +176,7 @@ export class NeedListComponent {              } else {                this.searchResults = n.sort(this.currentSortAlgo).reverse();              } - -            console.log(currentSearchValue, this.searchResults); +            this.updateVisibleNeeds();              });            }          }, 250);  | 
