RED-4774 - As a user I expect that the app remembers the view if I open a dossier or refresh the respective view

This commit is contained in:
Valentin Mihai 2022-07-26 17:53:07 +03:00
parent 0344b62e10
commit 70c757c782
2 changed files with 15 additions and 2 deletions

View File

@ -39,6 +39,8 @@ import { DefaultColorsService } from '@services/entity-services/default-colors.s
import { map } from 'rxjs/operators';
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
export const PREVIOUS_LISTING_MODE_KEY = 'previousListingMode';
@Injectable()
export class ConfigService {
readonly listingMode$: Observable<ListingMode>;
@ -63,6 +65,7 @@ export class ConfigService {
set listingMode(listingMode: ListingMode) {
this._listingMode$.next(listingMode);
localStorage.setItem(PREVIOUS_LISTING_MODE_KEY, listingMode);
}
workflowConfig(dossier: Dossier): WorkflowConfig<File, WorkflowFileStatus> {

View File

@ -1,4 +1,4 @@
import { Component, ElementRef, HostListener, OnInit, TemplateRef, ViewChild } from '@angular/core';
import { AfterViewInit, Component, ElementRef, HostListener, OnInit, TemplateRef, ViewChild } from '@angular/core';
import { Dossier, DOSSIER_ID, DossierAttributeWithValue, File, IFileAttributeConfig, WorkflowFileStatus } from '@red/domain';
import { FileDropOverlayService } from '@upload-download/services/file-drop-overlay.service';
import { FileUploadModel } from '@upload-download/model/file-upload.model';
@ -13,6 +13,7 @@ import {
ErrorService,
getParam,
ListingComponent,
ListingMode,
ListingModes,
listingProvidersFactory,
LoadingService,
@ -28,7 +29,7 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { PermissionsService } from '@services/permissions.service';
import { NavigationEnd, Router } from '@angular/router';
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
import { ConfigService } from '../config.service';
import { ConfigService, PREVIOUS_LISTING_MODE_KEY } from '../config.service';
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
import { UserPreferenceService } from '@services/user-preference.service';
import { FilesMapService } from '@services/files/files-map.service';
@ -88,6 +89,7 @@ export class DossierOverviewScreenComponent extends ListingComponent<File> imple
private readonly _dossierAttributesService: DossierAttributesService,
) {
super();
this.#setListingMode();
this.dossier$ = _dossiersService.getEntityChanged$(this.dossierId).pipe(tap(dossier => (this.#currentDossier = dossier)));
this.#currentDossier = _dossiersService.find(this.dossierId);
this.workflowConfig = configService.workflowConfig(this.#currentDossier);
@ -150,6 +152,7 @@ export class DossierOverviewScreenComponent extends ListingComponent<File> imple
}
ngOnAttach() {
this.#setListingMode();
this.#initFileDropHandling();
this._setRemovableSubscriptions();
this._tableComponent?.scrollToLastIndex();
@ -179,6 +182,13 @@ export class DossierOverviewScreenComponent extends ListingComponent<File> imple
}
}
#setListingMode(): void {
const listingMode = (localStorage.getItem(PREVIOUS_LISTING_MODE_KEY) as ListingMode) ?? ListingModes.table;
if (listingMode !== this.configService.listingMode) {
this.configService.listingMode = listingMode;
}
}
private _setRemovableSubscriptions(): void {
this.addActiveScreenSubscription = this._dossiersService
.getEntityDeleted$(this.dossierId)