Needs work filter
This commit is contained in:
parent
4ce1592207
commit
91b4e77c2e
@ -16,18 +16,29 @@ export function handleCheckedValue(filter: FilterModel) {
|
||||
}
|
||||
}
|
||||
|
||||
export function checkFilter(entity: any, filters: FilterModel[], validate: Function) {
|
||||
export function checkFilter(
|
||||
entity: any,
|
||||
filters: FilterModel[],
|
||||
validate: Function,
|
||||
matchAll: boolean = false
|
||||
) {
|
||||
const hasChecked = filters.find((f) => f.checked);
|
||||
|
||||
if (!hasChecked) {
|
||||
return true;
|
||||
}
|
||||
let filterMatched = false;
|
||||
|
||||
let filterMatched = matchAll;
|
||||
for (const filter of filters) {
|
||||
if (filter.checked && validate(entity, filter)) {
|
||||
filterMatched = true;
|
||||
break;
|
||||
if (filter.checked) {
|
||||
if (matchAll) {
|
||||
filterMatched = filterMatched && validate(entity, filter);
|
||||
} else {
|
||||
filterMatched = filterMatched || validate(entity, filter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return filterMatched;
|
||||
}
|
||||
|
||||
@ -57,13 +68,13 @@ export const addedDateChecker = (pw: ProjectWrapper, filter: FilterModel) =>
|
||||
|
||||
export function getFilteredEntities(
|
||||
entities: any[],
|
||||
filters: { values: FilterModel[]; checker: Function }[]
|
||||
filters: { values: FilterModel[]; checker: Function; matchAll?: boolean }[]
|
||||
) {
|
||||
const filteredEntities = [];
|
||||
for (const entity of entities) {
|
||||
let add = true;
|
||||
for (const filter of filters) {
|
||||
add = add && checkFilter(entity, filter.values, filter.checker);
|
||||
add = add && checkFilter(entity, filter.values, filter.checker, filter.matchAll);
|
||||
}
|
||||
if (add) {
|
||||
filteredEntities.push(entity);
|
||||
|
||||
@ -62,7 +62,7 @@
|
||||
<span class="all-caps-label">
|
||||
{{
|
||||
'project-listing.table-header.title'
|
||||
| translate: { length: appStateService.allProjects?.length || 0 }
|
||||
| translate: { length: displayedProjects.length || 0 }
|
||||
}}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@ -80,8 +80,7 @@
|
||||
<span class="all-caps-label">
|
||||
{{
|
||||
'project-overview.table-header.title'
|
||||
| translate
|
||||
: { length: appStateService.activeProject?.files.length || 0 }
|
||||
| translate: { length: displayedFiles.length || 0 }
|
||||
}}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@ -333,7 +333,7 @@ export class ProjectOverviewScreenComponent implements OnInit, OnDestroy {
|
||||
{ values: this.statusFilters, checker: keyChecker('status') },
|
||||
{ values: this.peopleFilters, checker: keyChecker('currentReviewer') },
|
||||
{ values: this.addedDateFilters, checker: fileAddedFilterChecker },
|
||||
{ values: this.needsWorkFilters, checker: annotationFilterChecker }
|
||||
{ values: this.needsWorkFilters, checker: annotationFilterChecker, matchAll: true }
|
||||
];
|
||||
this.displayedFiles = getFilteredEntities(
|
||||
this.appStateService.activeProject.files,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user