Merge branch 'master'
[arvados-workbench2.git] / src / services / search-service / search-service.ts
index 9d60e1b6a750550d141fbef8a8c99b5ff43a52df..a8e91c39633b6007ad89cb2aa354a9fbe58fc1f4 100644 (file)
@@ -5,34 +5,29 @@
 import { SearchBarAdvanceFormData } from '~/models/search-bar';
 
 export class SearchService {
-    private recentQueries: string[] = this.getRecentQueries();
+    private recentQueries = this.getRecentQueries();
     private savedQueries: SearchBarAdvanceFormData[] = this.getSavedQueries();
 
     saveRecentQuery(query: string) {
         if (this.recentQueries.length >= MAX_NUMBER_OF_RECENT_QUERIES) {
             this.recentQueries.shift();
-            this.recentQueries.push(query);
-        } else {
-            this.recentQueries.push(query);
         }
+        this.recentQueries.push(query);
         localStorage.setItem('recentQueries', JSON.stringify(this.recentQueries));
     }
 
-    getRecentQueries() {
-        return JSON.parse(localStorage.getItem('recentQueries') || '[]') as string[];
+    getRecentQueries(): string[] {
+        return JSON.parse(localStorage.getItem('recentQueries') || '[]');
     }
 
     saveQuery(data: SearchBarAdvanceFormData) {
-        this.savedQueries.push({
-            type: data.type,
-            cluster: data.cluster,
-            project: data.project,
-            inTrash: data.inTrash,
-            dateFrom: data.dateFrom,
-            dateTo: data.dateTo,
-            saveQuery: data.saveQuery,
-            searchQuery: data.searchQuery
-        });
+        this.savedQueries.push({...data});
+        localStorage.setItem('savedQueries', JSON.stringify(this.savedQueries));
+    }
+
+    editSavedQueries(data: SearchBarAdvanceFormData) {
+        const itemIndex = this.savedQueries.findIndex(item => item.searchQuery === data.searchQuery);
+        this.savedQueries[itemIndex] = {...data};
         localStorage.setItem('savedQueries', JSON.stringify(this.savedQueries));
     }
 
@@ -46,4 +41,4 @@ export class SearchService {
     }
 }
 
-const MAX_NUMBER_OF_RECENT_QUERIES = 5;
\ No newline at end of file
+const MAX_NUMBER_OF_RECENT_QUERIES = 5;