From acda4ee3fabba67ca39de55331851eb230b4a55c Mon Sep 17 00:00:00 2001
From: Alex ORLUC <alex.orluc@maarch.org>
Date: Fri, 9 Oct 2020 15:31:51 +0200
Subject: [PATCH] FEAT #13271 TIME 0:30 save filters

---
 .../result-list/search-result-list.component.html        | 2 +-
 .../result-list/search-result-list.component.ts          | 4 ++++
 src/frontend/service/criteriaSearch.service.ts           | 9 +++++++--
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/frontend/app/adv-search/result-list/search-result-list.component.html b/src/frontend/app/adv-search/result-list/search-result-list.component.html
index bc8a26e5ace..d0e62edf060 100644
--- a/src/frontend/app/adv-search/result-list/search-result-list.component.html
+++ b/src/frontend/app/adv-search/result-list/search-result-list.component.html
@@ -2,7 +2,7 @@
     <img style="max-height: 100vh;" *ngIf="thumbnailUrl !== ''" [src]="thumbnailUrl | secureUrl | async" />
 </mat-card>
 <ng-template #filterTemplate>
-    <app-filter-tool-adv-search #appFilterToolAdvSearch [filters]="dataFilters" (filterChanged)="launchSearch()" *ngIf="!hideFilter && initSearch"></app-filter-tool-adv-search>
+    <app-filter-tool-adv-search #appFilterToolAdvSearch [filters]="dataFilters" (filterChanged)="launchSearch()" *ngIf="!hideFilter"></app-filter-tool-adv-search>
 </ng-template>
 <ng-template #toolTemplate>
     <div *ngIf="initSearch" class="filtersContent">
diff --git a/src/frontend/app/adv-search/result-list/search-result-list.component.ts b/src/frontend/app/adv-search/result-list/search-result-list.component.ts
index 7012621ffc2..c3ae78844a8 100644
--- a/src/frontend/app/adv-search/result-list/search-result-list.component.ts
+++ b/src/frontend/app/adv-search/result-list/search-result-list.component.ts
@@ -208,6 +208,9 @@ export class SearchResultListComponent implements OnInit, OnDestroy {
             });
             this.appCriteriaTool.selectSearchTemplate(obj, false);
             this.criteria = this.listProperties.criteria;
+            if (!this.functions.empty(this.listProperties.filters)) {
+                this.dataFilters = this.listProperties.filters;
+            }
             this.initResultList();
         } else if (this.initSearch) {
             this.initResultList();
@@ -287,6 +290,7 @@ export class SearchResultListComponent implements OnInit, OnDestroy {
                     data = this.processPostData(data);
                     this.templateColumns = data.templateColumns;
                     this.dataFilters = data.filters;
+                    this.criteriaSearchService.updateListsPropertiesFilters(data.filters);
                     this.resultsLength = data.count;
                     this.allResInBasket = data.allResources;
                     return data.resources;
diff --git a/src/frontend/service/criteriaSearch.service.ts b/src/frontend/service/criteriaSearch.service.ts
index d2f243b0ca1..1af19b79754 100644
--- a/src/frontend/service/criteriaSearch.service.ts
+++ b/src/frontend/service/criteriaSearch.service.ts
@@ -7,7 +7,7 @@ interface ListProperties {
     'page': number;
     'pageSize': number;
     'criteria': any[];
-    'filters': any[];
+    'filters': any;
     'order': string;
     'orderDir': string;
 }
@@ -43,7 +43,7 @@ export class CriteriaSearchService {
                 order: 'creationDate',
                 orderDir: 'DESC',
                 criteria: [],
-                filters: []
+                filters: {}
             };
         }
 
@@ -65,6 +65,11 @@ export class CriteriaSearchService {
         this.saveListsProperties();
     }
 
+    updateListsPropertiesFilters(filters: any) {
+        this.listsProperties.filters = filters;
+        this.saveListsProperties();
+    }
+
     updateListsProperties(listProperties: ListProperties) {
         this.listsProperties = listProperties;
         this.saveListsProperties();
-- 
GitLab