diff --git a/src/app/shared/filter-bar/filter-bar.component.html b/src/app/shared/filter-bar/filter-bar.component.html
index cf93d447..1823f473 100644
--- a/src/app/shared/filter-bar/filter-bar.component.html
+++ b/src/app/shared/filter-bar/filter-bar.component.html
@@ -9,15 +9,16 @@
Status
-
+
All
Open
Closed
+ Merged
Type
-
+
All
Issue
Pull Request
diff --git a/src/app/shared/filter-bar/filter-bar.component.ts b/src/app/shared/filter-bar/filter-bar.component.ts
index 13d00dcd..4e8cbb62 100644
--- a/src/app/shared/filter-bar/filter-bar.component.ts
+++ b/src/app/shared/filter-bar/filter-bar.component.ts
@@ -80,6 +80,24 @@ export class FilterBarComponent implements OnInit, AfterViewInit, OnDestroy {
this.views$?.value?.forEach((v) => (v.retrieveFilterable().filter = filterValue));
}
+ /**
+ * Changes type to a valid, default value when an incompatible combination of type and status is encountered.
+ */
+ updateTypePairing() {
+ if (this.dropdownFilter.status === 'merged') {
+ this.dropdownFilter.type = 'pullrequest';
+ }
+ }
+
+ /**
+ * Changes status to a valid, default value when an incompatible combination of type and status is encountered.
+ */
+ updateStatusPairing() {
+ if (this.dropdownFilter.status === 'merged' && this.dropdownFilter.type === 'issue') {
+ this.dropdownFilter.status = 'all';
+ }
+ }
+
/**
* Signals to IssuesDataTable that a change has occurred in dropdown filter.
*/
@@ -87,6 +105,13 @@ export class FilterBarComponent implements OnInit, AfterViewInit, OnDestroy {
this.views$?.value?.forEach((v) => (v.retrieveFilterable().dropdownFilter = this.dropdownFilter));
}
+ /**
+ * Checks if program is filtering by type issue.
+ */
+ isNotFilterIssue() {
+ return this.dropdownFilter.type !== 'issue';
+ }
+
/**
* Fetch and initialize all information from repository to populate Issue Dashboard.
*/
diff --git a/src/app/shared/issue-tables/dropdownfilter.ts b/src/app/shared/issue-tables/dropdownfilter.ts
index 6ddbd96b..c41dc477 100644
--- a/src/app/shared/issue-tables/dropdownfilter.ts
+++ b/src/app/shared/issue-tables/dropdownfilter.ts
@@ -32,6 +32,8 @@ export function applyDropdownFilter(dropdownFilter: DropdownFilter): (a: Issue)
} else if (dropdownFilter.status === 'closed') {
// there is apparently also a status called 'all' based on github api
ret = ret && issue.state === 'CLOSED';
+ } else if (dropdownFilter.status === 'merged') {
+ ret = ret && issue.state === 'MERGED';
}
if (dropdownFilter.type === 'issue') {