diff --git a/apps/web/src/app/workspaces/components/active-capability-requests/active-capability-requests.component.html b/apps/web/src/app/workspaces/components/active-capability-requests/active-capability-requests.component.html index 16e3807f311353afb0431dff35e574b609a779d8..01c0167d6729200808e18f1c55c5af791586f8f0 100644 --- a/apps/web/src/app/workspaces/components/active-capability-requests/active-capability-requests.component.html +++ b/apps/web/src/app/workspaces/components/active-capability-requests/active-capability-requests.component.html @@ -50,7 +50,7 @@ <br /> <div> - <app-filter-menu *ngIf="showFilterMenu" [state]="statesToFilter" [exec_status]="execStatusToFilter" [stage1QaStaff]="qaStaff['Stage 1']" [stage2QaStaff]="qaStaff['Stage 2']" [srdpStatus]="srdpOptions" [filters]="filters" (filterMenuEventEmitter)="emitFilterEvent($event)"></app-filter-menu> + <app-filter-menu *ngIf="showFilterMenu" [state]="statesToFilter" [exec_status]="execStatusToFilter" [downloadStatus]="downloadStatusToFilter" [stage1QaStaff]="qaStaff['Stage 1']" [stage2QaStaff]="qaStaff['Stage 2']" [srdpStatus]="srdpOptions" [filters]="filters" (filterMenuEventEmitter)="emitFilterEvent($event)"></app-filter-menu> <mat-paginator #requestPaginator [length]="(sortedActiveRequests$ | async)?.length" [pageSize]="pageSize" diff --git a/apps/web/src/app/workspaces/components/active-capability-requests/active-capability-requests.component.ts b/apps/web/src/app/workspaces/components/active-capability-requests/active-capability-requests.component.ts index 3f4e614282b3f6650f4f79849dd329dcaef313f3..a2dc0f8c49b7b8a4fcf4caa4d1a767e362a94ce3 100644 --- a/apps/web/src/app/workspaces/components/active-capability-requests/active-capability-requests.component.ts +++ b/apps/web/src/app/workspaces/components/active-capability-requests/active-capability-requests.component.ts @@ -89,6 +89,7 @@ export class ActiveCapabilityRequestsComponent implements OnInit, OnDestroy { // Filter sets public statesSet = new Set<string>(); public execStatusSet = new Set<string>(); + public downloadStatusSet = new Set<string>(); public stage1QaSet = new Set<string>(); public stage2QaSet = new Set<string>(); public srdpSet = new Set<string>(); @@ -121,6 +122,12 @@ export class ActiveCapabilityRequestsComponent implements OnInit, OnDestroy { { name: "Cancelled", filter_val: "Cancelled" }, { name: "Complete", filter_val: "Complete" }, ]; + public downloadStatusToFilter = [ + { name: "No Versions", filter_val: "" }, + { name: "Not Started", filter_val: "Not started" }, + { name: "In Progress", filter_val: "In Progress" }, + { name: "Complete", filter_val: "Complete" }, + ]; public srdpOptions = [{ name: "true" }, { name: "false" }]; public obsDateOptions = [{ obs_min: "" }, { obs_max: "" }]; @@ -299,6 +306,7 @@ export class ActiveCapabilityRequestsComponent implements OnInit, OnDestroy { this.availableFilters = { state: this.statesToFilter, exec_status: this.execStatusToFilter, + download_status: this.downloadStatusToFilter, is_srdp: this.srdpOptions, obs_min: this.obsDateOptions, obs_max: this.obsDateOptions, @@ -358,6 +366,7 @@ export class ActiveCapabilityRequestsComponent implements OnInit, OnDestroy { this.filters.hasOwnProperty("is_srdp") || this.filters.hasOwnProperty("obs_min") || this.filters.hasOwnProperty("obs_max") || + this.filters.hasOwnProperty("download_status") || this.filters.hasOwnProperty("exec_status"))) { // SRDP filter if (this.filters.hasOwnProperty("is_srdp")) { @@ -400,6 +409,12 @@ export class ActiveCapabilityRequestsComponent implements OnInit, OnDestroy { }); return filteredDates; } + // NGAS Download Status filter + else if (this.filters.hasOwnProperty("download_status")) { + return activeRequests.filter(r => { + return this.filters.download_status.includes(this.getFetchStatus(r)); + }); + } // Execution Status filter else if (this.filters.hasOwnProperty("exec_status")) { return activeRequests.filter(r => { @@ -636,6 +651,8 @@ export class ActiveCapabilityRequestsComponent implements OnInit, OnDestroy { return this.statesSet; case "exec_status": return this.execStatusSet; + case "download_status": + return this.downloadStatusSet; case "stage_1_reviewer": return this.stage1QaSet; case "stage_2_reviewer": diff --git a/apps/web/src/app/workspaces/components/active-capability-requests/components/filter-menu/filter-menu.component.html b/apps/web/src/app/workspaces/components/active-capability-requests/components/filter-menu/filter-menu.component.html index d08bf5839b81ebd9cba1e2e87171adcfe2cf0b1f..df66136c0142e5aad2ca6e15fd9194175e78db82 100644 --- a/apps/web/src/app/workspaces/components/active-capability-requests/components/filter-menu/filter-menu.component.html +++ b/apps/web/src/app/workspaces/components/active-capability-requests/components/filter-menu/filter-menu.component.html @@ -16,6 +16,14 @@ </div> </div> + <div class="bg-light p-2"> + <p>NGAS Download Status</p> + <div *ngFor="let s of downloadStatus" class="form-check"> + <input class="form-check-input" type="checkbox" [id]="s.name" [value]="s.filter_val" (change)="addFilter(s.filter_val, 'download_status', $event.target.checked)" [checked]="s.isChecked" /> + <label class="form-check-label" [for]="s.name">{{s.name}}</label> + </div> + </div> + <div class="bg-light p-2"> <p>Stage 1 QA Staff</p> <div *ngFor="let reviewer of stage1QaStaff" class="form-check"> diff --git a/apps/web/src/app/workspaces/components/active-capability-requests/components/filter-menu/filter-menu.component.ts b/apps/web/src/app/workspaces/components/active-capability-requests/components/filter-menu/filter-menu.component.ts index d9b4b26cd2488fae0d7b6aac92e4e14d50bb2095..b6f65691024d5602ce56fae64e88ab067080abd6 100644 --- a/apps/web/src/app/workspaces/components/active-capability-requests/components/filter-menu/filter-menu.component.ts +++ b/apps/web/src/app/workspaces/components/active-capability-requests/components/filter-menu/filter-menu.component.ts @@ -35,6 +35,7 @@ export interface Filter { export class FilterMenuComponent implements OnInit { @Input() state: any; @Input() exec_status: any; + @Input() downloadStatus: any; @Input() stage1QaStaff: any; @Input() stage2QaStaff: any; @Input() srdpStatus: any;