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" },