diff --git a/apps/red-ui/src/app/screens/project-listing-screen/project-listing-screen.component.html b/apps/red-ui/src/app/screens/project-listing-screen/project-listing-screen.component.html
index ee2c62b7f..eca81039d 100644
--- a/apps/red-ui/src/app/screens/project-listing-screen/project-listing-screen.component.html
+++ b/apps/red-ui/src/app/screens/project-listing-screen/project-listing-screen.component.html
@@ -21,6 +21,12 @@
[filters]="needsWorkFilters"
[icon]="'red:needs-work'"
>
+
this._executeSearch(value));
+ }
public ngOnInit(): void {
this.appStateService.reset();
@@ -237,19 +248,30 @@ export class ProjectListingScreenComponent implements OnInit, OnDestroy {
this._filterProjects();
}
- private _filterProjects() {
+ private get _filteredProjects(): ProjectWrapper[] {
const filters = [
{ values: this.statusFilters, checker: projectStatusChecker },
{ values: this.peopleFilters, checker: projectMemberChecker },
{ values: this.needsWorkFilters, checker: annotationFilterChecker, matchAll: true, checkerArgs: this.permissionsService }
];
+ return getFilteredEntities(this.appStateService.allProjects, filters);
+ }
+
+ private _filterProjects() {
this.detailsContainerFilters = {
statusFilters: this.statusFilters.map((f) => ({ ...f }))
};
- this.displayedProjects = getFilteredEntities(this.appStateService.allProjects, filters);
+ this.displayedProjects = this._filteredProjects.filter((project) =>
+ project.name.toLowerCase().includes(this.searchForm.get('query').value.toLowerCase())
+ );
this._changeDetectorRef.detectChanges();
}
+ @debounce(200)
+ private _executeSearch(value: { query: string }) {
+ this.displayedProjects = this._filteredProjects.filter((project) => project.name.toLowerCase().includes(value.query.toLowerCase()));
+ }
+
openEditProjectDialog($event: MouseEvent, project: Project) {
this._dialogService.openEditProjectDialog($event, project, () => {
this._calculateData();
diff --git a/apps/red-ui/src/assets/i18n/en.json b/apps/red-ui/src/assets/i18n/en.json
index 29807acad..6b769f02e 100644
--- a/apps/red-ui/src/assets/i18n/en.json
+++ b/apps/red-ui/src/assets/i18n/en.json
@@ -69,6 +69,7 @@
"action": "Download Redaction Report"
},
"project-listing": {
+ "search": "Project name...",
"reanalyse": {
"action": "Reanalyse entire project"
},