Auto stash before merge of "RED-3313" and "origin/RED-3313"

This commit is contained in:
Dan Percic 2022-03-03 22:59:14 +02:00
parent 1533bbfc95
commit 8126b1c452
58 changed files with 112 additions and 109 deletions

View File

@ -44,8 +44,8 @@ import { GeneralSettingsService } from '@services/general-settings.service';
import { BreadcrumbsComponent } from '@components/breadcrumbs/breadcrumbs.component';
import { UserPreferenceService } from '@services/user-preference.service';
import { UserService } from '@services/user.service';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ArchivedDossiersService } from '@services/entity-services/archived-dossiers.service';
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
import { ArchivedDossiersService } from '@services/dossiers/archived-dossiers.service';
export function httpLoaderFactory(httpClient: HttpClient, configService: ConfigService): PruningTranslationLoader {
return new PruningTranslationLoader(httpClient, '/assets/i18n/', `.json?version=${configService.values.FRONTEND_APP_VERSION}`);

View File

@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import { DatePipe } from '@shared/pipes/date.pipe';
import { UserService } from '@services/user.service';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
import { NotificationsService } from '@services/notifications.service';
import { Notification } from '@red/domain';
import { distinctUntilChanged, map, switchMap, tap } from 'rxjs/operators';

View File

@ -4,7 +4,7 @@ import { FilesMapService } from '@services/entity-services/files-map.service';
import { FilesService } from '@services/entity-services/files.service';
import { firstValueFrom } from 'rxjs';
import { DOSSIER_ID } from '@utils/constants';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { DossiersService } from '../services/dossiers/dossiers.service';
@Injectable({ providedIn: 'root' })
export class DossierFilesGuard implements CanActivate {

View File

@ -1,10 +1,10 @@
import { Injectable, Injector, ProviderToken } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate } from '@angular/router';
import { firstValueFrom, forkJoin } from 'rxjs';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ArchivedDossiersService } from '@services/entity-services/archived-dossiers.service';
import { take } from 'rxjs/operators';
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
import { ArchivedDossiersService } from '@services/dossiers/archived-dossiers.service';
import { DossiersService } from '@services/dossiers/dossiers.service';
@Injectable({ providedIn: 'root' })
export class DossiersGuard implements CanActivate {

View File

@ -2,7 +2,7 @@ import { Injectable, Injector, ProviderToken } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router';
import { FilesMapService } from '@services/entity-services/files-map.service';
import { DOSSIER_ID, FILE_ID } from '@utils/constants';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { DossiersService } from '../services/dossiers/dossiers.service';
@Injectable({ providedIn: 'root' })
export class FilePreviewGuard implements CanActivate {

View File

@ -10,7 +10,7 @@ import {
} from '@iqser/common-ui';
import { DossierState, IDossierState } from '@red/domain';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '../../../../services/dossiers/active-dossiers.service';
import { DossierStateService } from '@services/entity-services/dossier-state.service';
import { firstValueFrom } from 'rxjs';
import { AdminDialogService } from '../../services/admin-dialog.service';
@ -111,9 +111,12 @@ export class DossierStatesListingScreenComponent extends ListingComponent<Dossie
try {
const dossierStates = this.dossierStateService.all.filter(d => d.dossierTemplateId === this.#dossierTemplateId);
this.#setStatesCount(dossierStates);
this.chartData = dossierStates.map(state => {
return { value: state.dossierCount, label: state.name, key: state.name, color: state.color };
});
this.chartData = dossierStates.map(state => ({
value: state.dossierCount,
label: state.name,
key: state.name,
color: state.color,
}));
this.entitiesService.setEntities(dossierStates || []);
} catch (e) {}

View File

@ -24,7 +24,7 @@ import { AddEditDossierStateDialogComponent } from '../dialogs/add-edit-dossier-
import { ConfirmDeleteDossierStateDialogComponent } from '../dialogs/confirm-delete-dossier-state-dialog/confirm-delete-dossier-state-dialog.component';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { firstValueFrom, forkJoin } from 'rxjs';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '../../../services/dossiers/active-dossiers.service';
import { UserService } from '../../../services/user.service';
import { IDossierAttributeConfig, IFileAttributeConfig, IReportTemplate } from '@red/domain';
import { ReportTemplateService } from '../../../services/report-template.service';

View File

@ -1,7 +1,7 @@
import { ChangeDetectionStrategy, Component, Input, OnChanges } from '@angular/core';
import { Dossier, DossierStats } from '@red/domain';
import { BehaviorSubject, Observable } from 'rxjs';
import { DossierStatsService } from '@services/entity-services/dossier-stats.service';
import { DossierStatsService } from '../../../../services/dossiers/dossier-stats.service';
import { switchMap } from 'rxjs/operators';
@Component({

View File

@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, forwardRef, Injector } from '@angul
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { ConfigService } from '../../services/config.service';
import { DefaultListingServicesTmp, EntitiesService, ListingComponent } from '@iqser/common-ui';
import { ArchivedDossiersService } from '@services/entity-services/archived-dossiers.service';
import { ArchivedDossiersService } from '../../../../services/dossiers/archived-dossiers.service';
import { Dossier } from '@red/domain';
@Component({

View File

@ -5,7 +5,7 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import * as moment from 'moment';
import { downloadTypesTranslations } from '../../../../translations/download-types-translations';
import { BaseDialogComponent, IconButtonTypes, SaveOptions } from '@iqser/common-ui';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service';
import { ReportTemplateService } from '@services/report-template.service';
import { firstValueFrom } from 'rxjs';

View File

@ -6,7 +6,7 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { Dossier, File } from '@red/domain';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { FilesService } from '@services/entity-services/files.service';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
import { PermissionsService } from '@services/permissions.service';
import { firstValueFrom } from 'rxjs';

View File

@ -3,7 +3,7 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { PermissionsService } from '@services/permissions.service';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
import { JustificationsService } from '@services/entity-services/justifications.service';
import { Dossier } from '@red/domain';
import { BaseDialogComponent } from '@iqser/common-ui';

View File

@ -3,7 +3,7 @@ import { FormBuilder, FormGroup } from '@angular/forms';
import { Dossier, File, IFileAttributeConfig } from '@red/domain';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
import { FilesService } from '@services/entity-services/files.service';
import { BaseDialogComponent } from '@iqser/common-ui';
import { firstValueFrom } from 'rxjs';

View File

@ -8,7 +8,7 @@ import { CircleButtonTypes, LoadingService, Toaster } from '@iqser/common-ui';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { FormBuilder, FormGroup } from '@angular/forms';
import { firstValueFrom } from 'rxjs';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { DossiersService } from '@services/dossiers/dossiers.service';
@Component({
selector: 'redaction-edit-dossier-dictionary',

View File

@ -6,7 +6,7 @@ import { downloadTypesTranslations } from '../../../../../translations/download-
import { ReportTemplateService } from '@services/report-template.service';
import { PermissionsService } from '@services/permissions.service';
import { firstValueFrom } from 'rxjs';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { DossiersService } from '@services/dossiers/dossiers.service';
@Component({
selector: 'redaction-edit-dossier-download-package',

View File

@ -15,7 +15,7 @@ import { tap } from 'rxjs/operators';
import { EditDossierTeamComponent } from './edit-dossier-team/edit-dossier-team.component';
import { PermissionsService } from '@services/permissions.service';
import { UserService } from '@services/user.service';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { DossiersService } from '@services/dossiers/dossiers.service';
import { dossiersServiceProvider } from '@services/entity-services/dossiers.service.provider';
type Section = 'dossierInfo' | 'downloadPackage' | 'dossierDictionary' | 'members' | 'dossierAttributes' | 'deletedDocuments';

View File

@ -6,7 +6,7 @@ import { AutoUnsubscribe } from '@iqser/common-ui';
import { EditDossierSaveResult, EditDossierSectionInterface } from '../edit-dossier-section.interface';
import { BehaviorSubject, firstValueFrom } from 'rxjs';
import { PermissionsService } from '@services/permissions.service';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { DossiersService } from '@services/dossiers/dossiers.service';
@Component({
selector: 'redaction-edit-dossier-team',

View File

@ -11,14 +11,14 @@ import { EditDossierDialogComponent } from '../edit-dossier-dialog.component';
import { ConfirmationDialogInput, ConfirmOptions, IconButtonTypes, LoadingService, TitleColors, Toaster } from '@iqser/common-ui';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service';
import { DossierStatsService } from '@services/entity-services/dossier-stats.service';
import { DossierStatsService } from '@services/dossiers/dossier-stats.service';
import { firstValueFrom } from 'rxjs';
import { DossierStateService } from '@services/entity-services/dossier-state.service';
import { DOSSIER_TEMPLATE_ID } from '@utils/constants';
import { TranslateService } from '@ngx-translate/core';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { DossiersService } from '@services/dossiers/dossiers.service';
import { TrashDossiersService } from '@services/entity-services/trash-dossiers.service';
import { ArchivedDossiersService } from '@services/entity-services/archived-dossiers.service';
import { ArchivedDossiersService } from '@services/dossiers/archived-dossiers.service';
@Component({
selector: 'redaction-edit-dossier-general-info',

View File

@ -6,7 +6,7 @@ import { TranslateService } from '@ngx-translate/core';
import { UserService } from '@services/user.service';
import { ManualAnnotationService } from '../../services/manual-annotation.service';
import { PermissionsService } from '@services/permissions.service';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
import { JustificationsService } from '@services/entity-services/justifications.service';
import { Dossier, ILegalBasisChangeRequest } from '@red/domain';
import { firstValueFrom } from 'rxjs';

View File

@ -6,7 +6,7 @@ import { ManualAnnotationService } from '../../services/manual-annotation.servic
import { PermissionsService } from '@services/permissions.service';
import { JustificationsService } from '@services/entity-services/justifications.service';
import { Dictionary, Dossier, IAddRedactionRequest } from '@red/domain';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
import { DictionaryService } from '@shared/services/dictionary.service';
import { BaseDialogComponent } from '@iqser/common-ui';
import { firstValueFrom } from 'rxjs';

View File

@ -5,7 +5,7 @@ import { DossierTemplatesService } from '@services/entity-services/dossier-templ
import { FilesService } from '@services/entity-services/files.service';
import { firstValueFrom, Observable } from 'rxjs';
import { map, switchMap } from 'rxjs/operators';
import { DossierStatsService } from '@services/entity-services/dossier-stats.service';
import { DossierStatsService } from '../../../../../../services/dossiers/dossier-stats.service';
import { FilesMapService } from '@services/entity-services/files-map.service';
@Component({

View File

@ -8,12 +8,12 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { Dossier, DossierAttributeWithValue, DossierStats, IDossierRequest, StatusSorter, User } from '@red/domain';
import { ActivatedRoute } from '@angular/router';
import { firstValueFrom, Observable } from 'rxjs';
import { DossierStatsService } from '@services/entity-services/dossier-stats.service';
import { DossierStatsService } from '../../../../../../services/dossiers/dossier-stats.service';
import { map, pluck, switchMap } from 'rxjs/operators';
import { DossiersDialogService } from '../../../../services/dossiers-dialog.service';
import { FilesService } from '@services/entity-services/files.service';
import { DOSSIER_ID } from '@utils/constants';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { DossiersService } from '../../../../../../services/dossiers/dossiers.service';
@Component({
selector: 'redaction-dossier-details',

View File

@ -21,7 +21,7 @@ import { ConfigService } from '../../config.service';
import { firstValueFrom } from 'rxjs';
import { PrimaryFileAttributeService } from '../../../../../../services/primary-file-attribute.service';
import { Router } from '@angular/router';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { DossiersService } from '../../../../../../services/dossiers/dossiers.service';
@Component({
selector: 'redaction-dossier-overview-screen-header',

View File

@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
import { File } from '@red/domain';
import { UserService } from '@services/user.service';
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { DossiersService } from '../../../../../../../services/dossiers/dossiers.service';
@Component({
selector: 'redaction-file-workload',

View File

@ -44,7 +44,7 @@ import { FilesMapService } from '@services/entity-services/files-map.service';
import { FilesService } from '@services/entity-services/files.service';
import { DOSSIER_ID } from '@utils/constants';
import { BulkActionsService } from '../services/bulk-actions.service';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { DossiersService } from '../../../../../services/dossiers/dossiers.service';
import { dossiersServiceProvider } from '@services/entity-services/dossiers.service.provider';
@Component({

View File

@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
import { Dossier, File } from '@red/domain';
import { DossiersDialogService } from '../../../services/dossiers-dialog.service';
import { ConfirmationDialogInput, LoadingService } from '@iqser/common-ui';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '../../../../../services/dossiers/active-dossiers.service';
import { FilesService } from '@services/entity-services/files.service';
import { FileAssignService } from '../../../shared/services/file-assign.service';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';

View File

@ -8,7 +8,7 @@ import { LongPressEvent } from '@shared/directives/long-press.directive';
import { UserPreferenceService } from '@services/user-preference.service';
import { FilesMapService } from '@services/entity-services/files-map.service';
import { ReanalysisService } from '@services/reanalysis.service';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '../../../../../../services/dossiers/active-dossiers.service';
import { firstValueFrom } from 'rxjs';
@Component({

View File

@ -1,13 +1,13 @@
import { ChangeDetectionStrategy, Component } from '@angular/core';
import { DoughnutChartConfig } from '@shared/components/simple-doughnut-chart/simple-doughnut-chart.component';
import { FilterService, mapEach } from '@iqser/common-ui';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '../../../../../../services/dossiers/active-dossiers.service';
import { combineLatest, Observable } from 'rxjs';
import { DossierStats, FileCountPerWorkflowStatus, StatusSorter } from '@red/domain';
import { workflowFileStatusTranslations } from '../../../../../../translations/file-status-translations';
import { TranslateChartService } from '@services/translate-chart.service';
import { filter, map, switchMap } from 'rxjs/operators';
import { DossierStatsService } from '@services/entity-services/dossier-stats.service';
import { DossierStatsService } from '../../../../../../services/dossiers/dossier-stats.service';
import { DossierStateService } from '@services/entity-services/dossier-state.service';
import { TranslateService } from '@ngx-translate/core';

View File

@ -1,6 +1,6 @@
import { ChangeDetectionStrategy, Component, Input, OnChanges } from '@angular/core';
import { Dossier, DossierStats } from '@red/domain';
import { DossierStatsService } from '@services/entity-services/dossier-stats.service';
import { DossierStatsService } from '../../../../../../services/dossiers/dossier-stats.service';
import { BehaviorSubject, Observable } from 'rxjs';
import { switchMap } from 'rxjs/operators';

View File

@ -9,7 +9,7 @@ import { workflowFileStatusTranslations } from '../../../../translations/file-st
import { dossierMemberChecker, dossierStateChecker, dossierTemplateChecker, RedactionFilterSorter } from '@utils/index';
import { workloadTranslations } from '../../translations/workload-translations';
import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service';
import { DossierStatsService } from '@services/entity-services/dossier-stats.service';
import { DossierStatsService } from '../../../../services/dossiers/dossier-stats.service';
import { DossierStateService } from '@services/entity-services/dossier-state.service';
@Injectable()

View File

@ -8,7 +8,7 @@ import { DossiersDialogService } from '../../../services/dossiers-dialog.service
import { DefaultListingServicesTmp, EntitiesService, ListingComponent, OnAttach, TableComponent } from '@iqser/common-ui';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { ConfigService } from '../config.service';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '../../../../../services/dossiers/active-dossiers.service';
import { FilesService } from '@services/entity-services/files.service';
import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service';
import { tap } from 'rxjs/operators';

View File

@ -11,7 +11,7 @@ import { TranslateService } from '@ngx-translate/core';
import { BehaviorSubject, combineLatest, firstValueFrom, Observable, switchMap } from 'rxjs';
import { FilePreviewStateService } from '../../services/file-preview-state.service';
import { distinctUntilChanged, map } from 'rxjs/operators';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '../../../../../../services/dossiers/active-dossiers.service';
@Component({
selector: 'redaction-user-management',

View File

@ -3,7 +3,7 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { PermissionsService } from '@services/permissions.service';
import { Dictionary, Dossier } from '@red/domain';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '../../../../../../services/dossiers/active-dossiers.service';
import { BaseDialogComponent } from '@iqser/common-ui';
import { DictionaryService } from '@shared/services/dictionary.service';
import { ManualAnnotationService } from '../../../../services/manual-annotation.service';

View File

@ -49,7 +49,7 @@ import { FilePreviewStateService } from './services/file-preview-state.service';
import { FileDataModel } from '../../../../models/file/file-data.model';
import { filePreviewScreenProviders } from './file-preview-providers';
import { ManualAnnotationService } from '../../services/manual-annotation.service';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { DossiersService } from '../../../../services/dossiers/dossiers.service';
import Annotation = Core.Annotations.Annotation;
import PDFNet = Core.PDFNet;

View File

@ -14,7 +14,7 @@ import { Dossier, IAddRedactionRequest, ILegalBasisChangeRequest, IRectangle, IR
import { toPosition } from '../../../utils/pdf-calculation.utils';
import { AnnotationDrawService } from './annotation-draw.service';
import { translateQuads } from '@utils/pdf-coordinates';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '../../../../../services/dossiers/active-dossiers.service';
import {
AcceptRecommendationData,
AcceptRecommendationDialogComponent,

View File

@ -10,7 +10,7 @@ import { IRectangle, ISectionGrid, ISectionRectangle } from '@red/domain';
import { SkippedService } from './skipped.service';
import { firstValueFrom } from 'rxjs';
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { DossiersService } from '../../../../../services/dossiers/dossiers.service';
import Annotation = Core.Annotations.Annotation;
@Injectable()

View File

@ -9,7 +9,7 @@ import { boolFactory, shareLast } from '@iqser/common-ui';
import { filter, startWith } from 'rxjs/operators';
import { FileManagementService } from '@services/entity-services/file-management.service';
import { DOSSIER_ID, FILE_ID } from '@utils/constants';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { DossiersService } from '../../../../../services/dossiers/dossiers.service';
import { dossiersServiceResolver } from '@services/entity-services/dossiers.service.provider';
@Injectable()

View File

@ -17,7 +17,7 @@ import { AnnotationActionMode } from '../models/annotation-action-mode.model';
import { annotationActionsTranslations } from '../translations/annotation-actions-translations';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { HttpErrorResponse, HttpStatusCode } from '@angular/common/http';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
import { Observable } from 'rxjs';
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';

View File

@ -28,7 +28,7 @@ import { UserService } from '@services/user.service';
import { UserPreferenceService } from '@services/user-preference.service';
import { LongPressEvent } from '@shared/directives/long-press.directive';
import { FileAssignService } from '../../services/file-assign.service';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '../../../../../services/dossiers/active-dossiers.service';
import { FileManagementService } from '@services/entity-services/file-management.service';
import { FilesService } from '@services/entity-services/files.service';
import { ReanalysisService, ReanalyzeQueryParams } from '@services/reanalysis.service';

View File

@ -5,7 +5,7 @@ import { DossiersDialogService } from '../../services/dossiers-dialog.service';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { FilesService } from '@services/entity-services/files.service';
import { ConfirmationDialogInput, LoadingService, Toaster } from '@iqser/common-ui';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '../../../../services/dossiers/active-dossiers.service';
import { firstValueFrom, Observable } from 'rxjs';
import { tap } from 'rxjs/operators';

View File

@ -17,11 +17,11 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { workflowFileStatusTranslations } from '../../../translations/file-status-translations';
import { TranslateService } from '@ngx-translate/core';
import { RouterHistoryService } from '@services/router-history.service';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { Dossier, DossierStatuses, IMatchedDocument, ISearchListItem, ISearchResponse } from '@red/domain';
import { FilesMapService } from '@services/entity-services/files-map.service';
import { PlatformSearchService } from '@services/entity-services/platform-search.service';
import { ArchivedDossiersService } from '@services/entity-services/archived-dossiers.service';
import { ActiveDossiersService } from '../../../services/dossiers/active-dossiers.service';
import { ArchivedDossiersService } from '../../../services/dossiers/archived-dossiers.service';
@Component({
templateUrl: './search-screen.component.html',

View File

@ -5,7 +5,7 @@ import { catchError, map, take, tap } from 'rxjs/operators';
import { Dictionary, Dossier, DossierTemplate } from '@red/domain';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { DictionaryService } from '@shared/services/dictionary.service';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service';
import { EditorComponent } from '@shared/components/editor/editor.component';
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';

View File

@ -2,7 +2,7 @@ import { ChangeDetectorRef, Component, HostListener, Inject } from '@angular/cor
import { FileUploadService } from '../services/file-upload.service';
import { OverlayRef } from '@angular/cdk/overlay';
import { StatusOverlayService } from '../services/status-overlay.service';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
import { handleFileDrop } from '@utils/file-drop-utils';
import { FileUploadModel } from '@upload-download/model/file-upload.model';
import { DOSSIER_ID } from '../../../tokens';

View File

@ -7,7 +7,7 @@ import { FilesMapService } from '@services/entity-services/files-map.service';
import { TranslateService } from '@ngx-translate/core';
import { BreadcrumbTypes } from '@red/domain';
import { DOSSIER_ID, FILE_ID } from '@utils/constants';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { DossiersService } from '@services/dossiers/dossiers.service';
import { dossiersServiceResolver } from '@services/entity-services/dossiers.service.provider';
export type RouterLinkActiveOptions = { exact: boolean } | IsActiveMatchOptions;

View File

@ -1,8 +1,8 @@
import { Injectable, Injector } from '@angular/core';
import { switchMap, tap } from 'rxjs/operators';
import { timer } from 'rxjs';
import { CHANGED_CHECK_INTERVAL } from '@utils/constants';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { CHANGED_CHECK_INTERVAL } from '../../utils/constants';
import { DossiersService } from './dossiers.service';
export interface IDossiersStats {
totalPeople: number;

View File

@ -4,8 +4,8 @@ import { catchError, 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 '@services/entity-services/dossiers.service';
import { FilesMapService } from '@services/entity-services/files-map.service';
import { DossiersService } from './dossiers.service';
import { FilesMapService } from '../entity-services/files-map.service';
@Injectable({ providedIn: 'root' })
export class ArchivedDossiersService extends DossiersService {
@ -18,22 +18,22 @@ export class ArchivedDossiersService extends DossiersService {
}
archive(dossiers: Dossier[]): Observable<unknown> {
const showToast = () => {
const showArchiveFailedToast = () => {
this._toaster.error(_('dossier-listing.archive.archive-failed'), { params: dossiers });
return of({});
};
return this._post(
dossiers.map(d => d.id),
`${this._defaultModelPath}/archive`,
).pipe(
tap(() => this.#removeFromActiveDossiers(dossiers)),
catchError(showToast),
const archivedDossiersIds = dossiers.map(d => d.dossierId);
return this._post(archivedDossiersIds, `${this._defaultModelPath}/archive`).pipe(
tap(() => this.#removeFromActiveDossiers(archivedDossiersIds)),
catchError(showArchiveFailedToast),
);
}
#removeFromActiveDossiers(dossiers: Dossier[]): void {
const remainingEntities = this._activeDossiersService.all.filter(dossier => !dossiers.find(d => dossier.id === d.id));
#removeFromActiveDossiers(archivedDossiersIds: string[]): void {
const remainingEntities = this._activeDossiersService.all.filter(d => !archivedDossiersIds.includes(d.dossierId));
this._activeDossiersService.setEntities(remainingEntities);
this._filesMapService.delete(dossiers.map(d => d.id));
this._filesMapService.delete(archivedDossiersIds);
}
}

View File

@ -3,7 +3,7 @@ import { StatsService } from '@iqser/common-ui';
import { DossierStats, IDossierStats } from '@red/domain';
import { DOSSIER_ID } from '@utils/constants';
import { Observable, of } from 'rxjs';
import { UserService } from '@services/user.service';
import { UserService } from '../user.service';
@Injectable({
providedIn: 'root',

View File

@ -1,26 +1,14 @@
import { EntitiesService, List, mapEach, QueryParam, RequiredParam, shareLast, Toaster, Validate } from '@iqser/common-ui';
import { Dossier, DossierStats, IDossier, IDossierRequest } from '@red/domain';
import { combineLatest, forkJoin, Observable, of, Subject, throwError } from 'rxjs';
import { Dossier, DossierStats, IChangesDetails, IDossier, IDossierChanges, IDossierRequest } from '@red/domain';
import { combineLatest, EMPTY, forkJoin, Observable, of, Subject, throwError } from 'rxjs';
import { catchError, filter, map, mapTo, pluck, switchMap, tap } from 'rxjs/operators';
import { Injector } from '@angular/core';
import { DossierStateService } from './dossier-state.service';
import { DossierStateService } from '../entity-services/dossier-state.service';
import { DossierStatsService } from './dossier-stats.service';
import { IDossiersStats } from '@services/entity-services/active-dossiers.service';
import { IDossiersStats } from './active-dossiers.service';
import { HttpErrorResponse, HttpStatusCode } from '@angular/common/http';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
interface DossierChange {
readonly dossierChanges: boolean;
readonly dossierId: string;
readonly fileChanges: boolean;
}
type DossierChanges = readonly DossierChange[];
interface ChangesDetails {
readonly dossierChanges: DossierChanges;
}
const DOSSIER_EXISTS_MSG = _('add-dossier-dialog.errors.dossier-already-exists');
const GENERIC_MSG = _('add-dossier-dialog.errors.generic');
@ -36,10 +24,10 @@ export abstract class DossiersService extends EntitiesService<Dossier, IDossier>
}
@Validate()
createOrUpdate(@RequiredParam() dossier: IDossierRequest): Observable<Dossier | undefined> {
createOrUpdate(@RequiredParam() dossier: IDossierRequest): Observable<Dossier> {
const showToast = (error: HttpErrorResponse) => {
this._toaster.error(error.status === HttpStatusCode.Conflict ? DOSSIER_EXISTS_MSG : GENERIC_MSG);
return of(undefined);
return EMPTY;
};
return this._post(dossier, 'dossier').pipe(
@ -48,7 +36,7 @@ export abstract class DossiersService extends EntitiesService<Dossier, IDossier>
);
}
loadOnlyChanged(): Observable<DossierChanges> {
loadOnlyChanged(): Observable<IDossierChanges> {
const removeIfNotFound = (id: string) =>
catchError((error: HttpErrorResponse) => {
if (error.status === HttpStatusCode.NotFound) {
@ -58,23 +46,15 @@ export abstract class DossiersService extends EntitiesService<Dossier, IDossier>
return throwError(() => error);
});
const load = (changes: DossierChanges) =>
const load = (changes: IDossierChanges) =>
changes.map(change => this._load(change.dossierId).pipe(removeIfNotFound(change.dossierId)));
return this.hasChangesDetails$().pipe(
pluck('dossierChanges'),
switchMap(dossierChanges => forkJoin(load(dossierChanges)).pipe(mapTo(dossierChanges))),
tap(() => this._updateLastChanged()),
);
}
hasChangesDetails$(): Observable<ChangesDetails> {
const body = { value: this._lastCheckedForChanges.get('root') ?? '0' };
return this._post<ChangesDetails>(body, `${this._defaultModelPath}/changes/details`).pipe(
filter(changes => changes.dossierChanges.length > 0),
);
}
loadAll(): Observable<Dossier[]> {
const dossierIds = (dossiers: Dossier[]) => dossiers.map(d => d.id);
return this.getAll().pipe(
@ -86,7 +66,15 @@ export abstract class DossiersService extends EntitiesService<Dossier, IDossier>
);
}
protected _emitFileChanges(dossierChanges: DossierChanges): void {
hasChangesDetails$(): Observable<IDossierChanges> {
const body = { value: this._lastCheckedForChanges.get('root') ?? '0' };
return this._post<IChangesDetails>(body, `${this._defaultModelPath}/changes/details`).pipe(
filter(changes => changes.dossierChanges.length > 0),
pluck('dossierChanges'),
);
}
protected _emitFileChanges(dossierChanges: IDossierChanges): void {
dossierChanges.filter(change => change.fileChanges).forEach(change => this.dossierFileChanges$.next(change.dossierId));
}

View File

@ -27,7 +27,7 @@ export class DossierStateService extends EntitiesService<DossierState, IDossierS
return this._dossierTemplatesService.all$.pipe(
mapEach(template => template.dossierTemplateId),
mapEach(id => this.loadAllForTemplate(id)),
switchMap(all => forkJoin(all).pipe(defaultIfEmpty([]))),
switchMap(all => forkJoin(all).pipe(defaultIfEmpty([] as DossierState[][]))),
map(value => value.flatMap(item => item)),
tap(value => this.setEntities(value)),
);

View File

@ -1,6 +1,6 @@
import { ActivatedRoute } from '@angular/router';
import { Injector, ProviderToken } from '@angular/core';
import { DossiersService } from './dossiers.service';
import { DossiersService } from '../dossiers/dossiers.service';
export const dossiersServiceResolver = (injector: Injector) => {
const route = injector.get<ActivatedRoute>(ActivatedRoute);

View File

@ -4,7 +4,7 @@ import { HttpHeaders, HttpResponse } from '@angular/common/http';
import { Observable } from 'rxjs';
import { switchMap } from 'rxjs/operators';
import { FilesService } from '@services/entity-services/files.service';
import { DossierStatsService } from '@services/entity-services/dossier-stats.service';
import { DossierStatsService } from '@services/dossiers/dossier-stats.service';
@Injectable({
providedIn: 'root',

View File

@ -5,7 +5,7 @@ import { Observable } from 'rxjs';
import { UserService } from '../user.service';
import { FilesMapService } from '@services/entity-services/files-map.service';
import { map, mapTo, switchMap, tap } from 'rxjs/operators';
import { DossierStatsService } from '@services/entity-services/dossier-stats.service';
import { DossierStatsService } from '@services/dossiers/dossier-stats.service';
@Injectable({
providedIn: 'root',

View File

@ -3,11 +3,11 @@ import { GenericService } from '@iqser/common-ui';
import { Dossier, IMatchedDocument, ISearchInput, ISearchRequest, ISearchResponse } from '@red/domain';
import { Observable, of, zip } from 'rxjs';
import { mapTo, switchMap } from 'rxjs/operators';
import { ActiveDossiersService } from './active-dossiers.service';
import { ActiveDossiersService } from '../dossiers/active-dossiers.service';
import { FilesMapService } from './files-map.service';
import { FilesService } from './files.service';
import { DossiersService } from './dossiers.service';
import { ArchivedDossiersService } from './archived-dossiers.service';
import { ArchivedDossiersService } from '../dossiers/archived-dossiers.service';
import { DossiersService } from '../dossiers/dossiers.service';
@Injectable({ providedIn: 'root' })
export class PlatformSearchService extends GenericService<ISearchResponse> {

View File

@ -7,7 +7,7 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import * as moment from 'moment';
import { ConfigService } from '../config.service';
import { PermissionsService } from '../permissions.service';
import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service';
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
export interface IDossiersStats {
totalPeople: number;

View File

@ -7,7 +7,7 @@ import { INotification, Notification, NotificationTypes } from '@red/domain';
import { map, switchMap } from 'rxjs/operators';
import { notificationsTranslations } from '../translations/notifications-translations';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { ActiveDossiersService } from './entity-services/active-dossiers.service';
import { ActiveDossiersService } from './dossiers/active-dossiers.service';
import { UserService } from '@services/user.service';
import { FilesMapService } from '@services/entity-services/files-map.service';

View File

@ -1,7 +1,7 @@
import { Injectable, Injector } from '@angular/core';
import { UserService } from './user.service';
import { Dossier, File, IComment, IDossier } from '@red/domain';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { DossiersService } from '@services/dossiers/dossiers.service';
import { ActivatedRoute } from '@angular/router';
import { dossiersServiceResolver } from '@services/entity-services/dossiers.service.provider';
import { FilesMapService } from '@services/entity-services/files-map.service';

View File

@ -0,0 +1,11 @@
export interface IDossierChange {
readonly dossierChanges: boolean;
readonly dossierId: string;
readonly fileChanges: boolean;
}
export type IDossierChanges = readonly IDossierChange[];
export interface IChangesDetails {
readonly dossierChanges: IDossierChanges;
}

View File

@ -2,3 +2,4 @@ export * from './dossier';
export * from './dossier.request';
export * from './dossier.model';
export * from './types';
export * from './dossier-changes';