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:
parent
0344b62e10
commit
70c757c782
@ -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> {
|
||||
|
||||
@ -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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user