RED-5067: Updated quick filters for archived dossiers too

This commit is contained in:
Adina Țeudan 2022-09-04 23:22:10 +03:00
parent 8367b977ae
commit b097f8a760
3 changed files with 28 additions and 18 deletions

View File

@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
import { IFilterGroup, keyChecker, NestedFilter, TableColumnConfig } from '@iqser/common-ui';
import { Dossier, User } from '@red/domain';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { dossierMemberChecker, dossierTemplateChecker } from '@utils/index';
import { dossierMemberChecker, dossierMemberQuickChecker, dossierOwnerQuickChecker, dossierTemplateChecker } from '@utils/index';
import { UserService } from '@users/user.service';
import { TranslateService } from '@ngx-translate/core';
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
@ -97,18 +97,22 @@ export class ConfigService {
return filterGroups;
}
_myDossiersChecker = (dw: Dossier) => dw.ownerId === this._currentUser.id;
private _quickFilters(entities: Dossier[]): NestedFilter[] {
const myDossiersLabel = this._translateService.instant('dossier-listing.quick-filters.my-dossiers');
const userId = this._currentUser.id;
return [
{
id: 'my-dossiers',
label: myDossiersLabel,
checker: this._myDossiersChecker,
disabled: entities.filter(this._myDossiersChecker).length === 0,
id: 'owner',
label: this._translateService.instant('dossier-listing.quick-filters.owner'),
checker: dossierOwnerQuickChecker(userId),
disabled: entities.filter(dossierOwnerQuickChecker(userId)).length === 0,
helpModeKey: 'filter_dossier_list',
},
{
id: 'member',
label: this._translateService.instant('dossier-listing.quick-filters.member'),
checker: dossierMemberQuickChecker(userId),
disabled: entities.filter(dossierMemberQuickChecker(userId)).length === 0,
},
].map(filter => new NestedFilter(filter));
}
}

View File

@ -14,7 +14,13 @@ import { TranslateService } from '@ngx-translate/core';
import { UserPreferenceService } from '@users/user-preference.service';
import { UserService } from '@users/user.service';
import { workflowFileStatusTranslations } from '@translations/file-status-translations';
import { dossierMemberChecker, dossierStateChecker, RedactionFilterSorter } from '../../utils';
import {
dossierMemberChecker,
dossierMemberQuickChecker,
dossierOwnerQuickChecker,
dossierStateChecker,
RedactionFilterSorter,
} from '../../utils';
import { workloadTranslations } from '@translations/workload-translations';
import { DossierStatsService } from '@services/dossiers/dossier-stats.service';
import { DossierStatesMapService } from '@services/entity-services/dossier-states-map.service';
@ -201,29 +207,25 @@ export class ConfigService {
return filterGroups;
}
private _dossierOwnerChecker = (dw: Dossier) => dw.ownerId === this._currentUser.id;
private _dossierMemberChecker = (dw: Dossier) =>
dw.memberIds.includes(this._currentUser.id) || dw.approverIds.includes(this._currentUser.id);
private _openAddDossierDialog(dossierTemplateId: string): void {
this._dialogService.openDialog('addDossier', null, { dossierTemplateId });
}
private _quickFilters(entities: Dossier[]): NestedFilter[] {
const userId = this._currentUser.id;
return [
{
id: 'owner',
label: this._translateService.instant('dossier-listing.quick-filters.owner'),
checker: this._dossierOwnerChecker,
disabled: entities.filter(this._dossierOwnerChecker).length === 0,
checker: dossierOwnerQuickChecker(userId),
disabled: entities.filter(dossierOwnerQuickChecker(userId)).length === 0,
helpModeKey: 'filter_dossier_list',
},
{
id: 'member',
label: this._translateService.instant('dossier-listing.quick-filters.member'),
checker: this._dossierMemberChecker,
disabled: entities.filter(this._dossierMemberChecker).length === 0,
checker: dossierMemberQuickChecker(userId),
disabled: entities.filter(dossierMemberQuickChecker(userId)).length === 0,
},
].map(filter => new NestedFilter(filter));
}

View File

@ -75,6 +75,10 @@ export const annotationFilterChecker = (file: File, filter: INestedFilter, curre
export const dossierMemberChecker = (dw: Dossier, filter: INestedFilter) => dw.hasMember(filter.id);
export const dossierOwnerQuickChecker = (userId: string) => (dw: Dossier) => dw.ownerId === userId;
export const dossierMemberQuickChecker = (userId: string) => (dw: Dossier) => dw.hasMember(userId);
export const dossierTemplateChecker = (dw: Dossier, filter: INestedFilter) => dw.dossierTemplateId === filter.id;
export const dossierStateChecker = (dw: Dossier, filter: INestedFilter) =>