diff --git a/src/app/components/files/files.component.html b/src/app/components/files/files.component.html index bd491e8ec..c9630f8fe 100644 --- a/src/app/components/files/files.component.html +++ b/src/app/components/files/files.component.html @@ -39,10 +39,12 @@ [col]="col" [currentFolderNodeId]="node?.id" [maxItems]="(documentList?.pagination | async)?.maxItems" + [value]="queryParams ? queryParams[col.key] : null" [skipCount]="(documentList?.pagination | async)?.skipCount" [sorting]="filterSorting" (update)="onFilterUpdate($event)" (clear)="onAllFilterCleared()" + (selection)="onFilterSelected($event)" > diff --git a/src/app/components/files/files.component.spec.ts b/src/app/components/files/files.component.spec.ts index e600fc416..b6080b652 100644 --- a/src/app/components/files/files.component.spec.ts +++ b/src/app/components/files/files.component.spec.ts @@ -67,7 +67,8 @@ describe('FilesComponent', () => { provide: ActivatedRoute, useValue: { snapshot: { data: { preferencePrefix: 'prefix' } }, - params: of({ folderId: 'someId' }) + params: of({ folderId: 'someId' }), + queryParamMap: of({}) } } ], diff --git a/src/app/components/files/files.component.ts b/src/app/components/files/files.component.ts index ea985ab27..af4e09d2f 100644 --- a/src/app/components/files/files.component.ts +++ b/src/app/components/files/files.component.ts @@ -51,6 +51,7 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { isSmallScreen = false; isAdmin = false; selectedNode: MinimalNodeEntity; + queryParams = null; private nodePath: PathElement[]; @@ -78,6 +79,10 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { this.title = data.title; + route.queryParamMap.subscribe((queryMap: Params) => { + this.queryParams = queryMap.params; + }); + route.params.subscribe(({ folderId }: Params) => { const nodeId = folderId || data.defaultNodeId; @@ -285,4 +290,19 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { } return false; } + + onFilterSelected(currentActiveFilters: Map) { + const objectFromMap = {}; + currentActiveFilters.forEach((value: any, key) => { + let paramValue = null; + if (value && value.from && value.to) { + paramValue = `${value.from}||${value.to}`; + } else { + paramValue = value; + } + objectFromMap[key] = paramValue; + }); + + this.router.navigate([], { relativeTo: this.route, queryParams: objectFromMap }); + } }