RED-9866: remove version limit on ARCHIVE DOSSIER feature.

This commit is contained in:
Nicoleta Panaghiu 2024-08-12 11:25:44 +03:00
parent 954fba26f7
commit 8d970779f5
9 changed files with 11 additions and 45 deletions

View File

@ -16,7 +16,7 @@ import { CompositeRouteGuard, DEFAULT_REDIRECT_KEY, IqserPermissionsGuard, Iqser
import { TenantSelectComponent } from '@iqser/common-ui/lib/tenants';
import { doesNotHaveAnyRole, hasAnyRole, IqserAuthGuard } from '@iqser/common-ui/lib/users';
import { CustomRouteReuseStrategy } from '@iqser/common-ui/lib/utils';
import { ARCHIVE_ROUTE, BreadcrumbTypes, DOSSIER_ID, DOSSIER_TEMPLATE_ID, DOSSIERS_ARCHIVE, DOSSIERS_ROUTE, FILE_ID } from '@red/domain';
import { ARCHIVE_ROUTE, BreadcrumbTypes, DOSSIER_ID, DOSSIER_TEMPLATE_ID, DOSSIERS_ROUTE, FILE_ID } from '@red/domain';
import { RedRoleGuard } from '@users/red-role.guard';
import { Roles } from '@users/roles';
import { mainGuard } from '@utils/main.guard';
@ -81,7 +81,6 @@ const dossierTemplateIdRoutes: IqserRoutes = [
canActivate: [CompositeRouteGuard, loadArchivedDossiersGuard()],
data: {
routeGuards: [FeaturesGuard],
features: [DOSSIERS_ARCHIVE],
},
},
{

View File

@ -8,8 +8,7 @@ import { SpotlightSearchAction } from '@components/spotlight-search/spotlight-se
import { filter, map, startWith } from 'rxjs/operators';
import { getConfig, IqserPermissionsService } from '@iqser/common-ui';
import { BreadcrumbsService } from '@services/breadcrumbs.service';
import { FeaturesService } from '@services/features.service';
import { ARCHIVE_ROUTE, DOSSIERS_ARCHIVE, DOSSIERS_ROUTE } from '@red/domain';
import { ARCHIVE_ROUTE, DOSSIERS_ROUTE } from '@red/domain';
import { Roles } from '@users/roles';
import { REDDocumentViewer } from '../../modules/pdf-viewer/services/document-viewer.service';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
@ -36,7 +35,6 @@ export class BaseScreenComponent {
{
text: this._translateService.instant('search.active-dossiers'),
icon: 'red:enter',
hide: () => !this._featuresService.isEnabled(DOSSIERS_ARCHIVE),
action: (query): void => this.#search(query, [], true),
},
{
@ -58,7 +56,6 @@ export class BaseScreenComponent {
private readonly _router: Router,
activatedRoute: ActivatedRoute,
private readonly _translateService: TranslateService,
private readonly _featuresService: FeaturesService,
readonly permissionsService: IqserPermissionsService,
readonly userService: UserService,
readonly userPreferenceService: UserPreferenceService,

View File

@ -1,6 +1,6 @@
<section>
<iqser-page-header [buttonConfigs]="buttonConfigs" [helpModeKey]="'dossier'">
<ng-container *ngIf="isArchiveEnabled" slot="beforeFilters">
<ng-container slot="beforeFilters">
<redaction-dossiers-type-switch></redaction-dossiers-type-switch>
</ng-container>
</iqser-page-header>

View File

@ -1,5 +1,5 @@
import { ChangeDetectionStrategy, Component, OnInit, TemplateRef, ViewChild } from '@angular/core';
import { Dossier, DOSSIER_TEMPLATE_ID, DOSSIERS_ARCHIVE, DossierTemplate } from '@red/domain';
import { Dossier, DOSSIER_TEMPLATE_ID, DossierTemplate } from '@red/domain';
import { PermissionsService } from '@services/permissions.service';
import {
ButtonConfig,
@ -19,7 +19,6 @@ import { UserPreferenceService } from '@users/user-preference.service';
import { SharedDialogService } from '@shared/services/dialog.service';
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
import { OnAttach } from '@iqser/common-ui/lib/utils';
import { FeaturesService } from '@services/features.service';
import { DossiersTypeSwitchComponent } from '@shared/components/dossiers-type-switch/dossiers-type-switch.component';
import { TranslateModule } from '@ngx-translate/core';
import { DossiersListingDetailsComponent } from '../components/dossiers-listing-details/dossiers-listing-details.component';
@ -51,7 +50,6 @@ export class DossiersListingScreenComponent extends ListingComponent<Dossier> im
readonly buttonConfigs: ButtonConfig[];
readonly dossierTemplate: DossierTemplate;
readonly computeFilters$ = this._activeDossiersService.all$.pipe(tap(() => this._computeAllFilters()));
readonly isArchiveEnabled = this._featuresService.isEnabled(DOSSIERS_ARCHIVE);
@ViewChild('needsWorkFilterTemplate', {
read: TemplateRef,
static: true,
@ -68,7 +66,6 @@ export class DossiersListingScreenComponent extends ListingComponent<Dossier> im
private readonly _userPreferenceService: UserPreferenceService,
private readonly _loadingService: LoadingService,
readonly dossierTemplatesService: DossierTemplatesService,
private readonly _featuresService: FeaturesService,
) {
super();
const dossierTemplateId = router.routerState.snapshot.root.firstChild.firstChild.paramMap.get(DOSSIER_TEMPLATE_ID);

View File

@ -7,7 +7,7 @@ import {
SearchPositions,
TableColumnConfig,
} from '@iqser/common-ui';
import { combineLatest, Observable, of } from 'rxjs';
import { combineLatest, Observable } from 'rxjs';
import { debounceTime, map, startWith, switchMap, tap } from 'rxjs/operators';
import { ActivatedRoute, Router } from '@angular/router';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
@ -16,7 +16,6 @@ import { TranslateModule, TranslateService } from '@ngx-translate/core';
import { RouterHistoryService } from '@services/router-history.service';
import {
Dossier,
DOSSIERS_ARCHIVE,
DossierTemplate,
IMatchedDocument,
ISearchListItem,
@ -26,7 +25,6 @@ import {
} from '@red/domain';
import { FilesMapService } from '@services/files/files-map.service';
import { PlatformSearchService } from '@services/entity-services/platform-search.service';
import { FeaturesService } from '@services/features.service';
import { DossiersCacheService } from '@services/dossiers/dossiers-cache.service';
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
import { UserService } from '@users/user.service';
@ -68,7 +66,6 @@ export default class SearchScreenComponent extends ListingComponent<ISearchListI
private readonly _translateService: TranslateService,
private readonly _filesMapService: FilesMapService,
private readonly _platformSearchService: PlatformSearchService,
private readonly _featuresService: FeaturesService,
private readonly _dossierTemplateService: DossierTemplatesService,
private readonly _userService: UserService,
) {
@ -134,14 +131,8 @@ export default class SearchScreenComponent extends ListingComponent<ISearchListI
);
}
get #enabledArchive(): boolean {
return this._featuresService.isEnabled(DOSSIERS_ARCHIVE);
}
get #filtersChanged$(): Observable<[string[], WorkflowFileStatus, string, string[], boolean]> {
const onlyActiveDossiers$ = this.#enabledArchive
? this.filterService.getSingleFilter('onlyActiveDossiers').pipe(map(f => !!f.checked))
: of(true);
const onlyActiveDossiers$ = this.filterService.getSingleFilter('onlyActiveDossiers').pipe(map(f => !!f.checked));
const filterGroups$ = this.filterService.filterGroups$;
return combineLatest([filterGroups$, onlyActiveDossiers$]).pipe(
map(([groups, onlyActive]) => {
@ -225,9 +216,7 @@ export default class SearchScreenComponent extends ListingComponent<ISearchListI
this.filterService.addFilterGroups([dossierNameFilter, workflowStatusFilter, assigneeFilter]);
const onlyActiveLabel = this._translateService.instant('search-screen.filters.only-active');
if (this.#enabledArchive) {
this.filterService.addSingleFilter({ id: 'onlyActiveDossiers', label: onlyActiveLabel, checked: this.#routeOnlyActive });
}
this.filterService.addSingleFilter({ id: 'onlyActiveDossiers', label: onlyActiveLabel, checked: this.#routeOnlyActive });
}
#addTemplateFilter(templates: DossierTemplate[]) {

View File

@ -1,12 +1,11 @@
import { inject, Injectable } from '@angular/core';
import { ARCHIVE_ROUTE, Dossier, DOSSIERS_ARCHIVE, DOSSIERS_ROUTE } from '@red/domain';
import { ARCHIVE_ROUTE, Dossier, DOSSIERS_ROUTE } from '@red/domain';
import { catchError, switchMap, tap } from 'rxjs/operators';
import { Observable, of } from 'rxjs';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { ActiveDossiersService } from './active-dossiers.service';
import { DossiersService } from './dossiers.service';
import { FilesMapService } from '../files/files-map.service';
import { FeaturesService } from '../features.service';
import { Router } from '@angular/router';
@Injectable({ providedIn: 'root' })
@ -15,7 +14,6 @@ export class ArchivedDossiersService extends DossiersService {
protected readonly _defaultModelPath = 'archived-dossiers';
readonly #activeDossiersService = inject(ActiveDossiersService);
readonly #filesMapService = inject(FilesMapService);
readonly #featuresService = inject(FeaturesService);
readonly #router = inject(Router);
archive(dossiers: Dossier[]): Observable<unknown> {
@ -46,7 +44,7 @@ export class ArchivedDossiersService extends DossiersService {
}
loadAll(): Observable<Dossier[]> {
return this.#featuresService.isEnabled(DOSSIERS_ARCHIVE) ? super.loadAll() : of([]);
return super.loadAll();
}
#removeFromActiveDossiers(archivedDossiersIds: string[]): void {

View File

@ -4,7 +4,6 @@ import {
DashboardStats,
Dictionary,
Dossier,
DOSSIERS_ARCHIVE,
DossierTemplate,
File,
IComment,
@ -13,7 +12,6 @@ import {
WorkflowFileStatus,
WorkflowFileStatuses,
} from '@red/domain';
import { FeaturesService } from '@services/features.service';
import { FilesMapService } from '@services/files/files-map.service';
import { Roles } from '@users/roles';
import { UserPreferenceService } from '@users/user-preference.service';
@ -27,7 +25,6 @@ export class PermissionsService {
constructor(
private readonly _userService: UserService,
private readonly _filesMapService: FilesMapService,
private readonly _featuresService: FeaturesService,
private readonly _userPreferenceService: UserPreferenceService,
private readonly _iqserPermissionsService: IqserPermissionsService,
private readonly _dossierTemplatesService: DossierTemplatesService,
@ -290,12 +287,7 @@ export class PermissionsService {
}
canArchiveDossier(dossier: Dossier): boolean {
return (
this._iqserPermissionsService.has(Roles.dossiers.archived) &&
this._featuresService.isEnabled(DOSSIERS_ARCHIVE) &&
dossier.isActive &&
this.isOwner(dossier)
);
return this._iqserPermissionsService.has(Roles.dossiers.archived) && dossier.isActive && this.isOwner(dossier);
}
canEditDossier(dossier: Dossier): boolean {

View File

@ -1,8 +1,3 @@
{
"features": [
{
"name": "DOSSIERS_ARCHIVE",
"minVersion": "3.3.0"
}
]
"features": []
}

View File

@ -1,5 +1,4 @@
export const DOSSIER_ID = 'dossierId';
export const DOSSIERS_ARCHIVE = 'DOSSIERS_ARCHIVE';
export const ARCHIVE_ROUTE = 'archive';
export const DOSSIERS_ROUTE = 'dossiers';