]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Clarify query var transformation code
authorMichael Shamoon <4887959+shamoon@users.noreply.github.com>
Mon, 28 Mar 2022 06:47:53 +0000 (23:47 -0700)
committerMichael Shamoon <4887959+shamoon@users.noreply.github.com>
Mon, 28 Mar 2022 06:47:53 +0000 (23:47 -0700)
src-ui/src/app/components/document-list/document-list.component.ts

index e8eb7684f29b36d569eb86cd9accaf918276532a..19ada6785c5d90fcc70c801fa4a8bff95be172f2 100644 (file)
@@ -128,43 +128,40 @@ export class DocumentListComponent implements OnInit, OnDestroy, AfterViewInit {
         this.unmodifiedFilterRules = view.filter_rules
       })
 
-    const filterQueryVars: string[] = FILTER_RULE_TYPES.map(
+    const allFilterRuleQueryParams: string[] = FILTER_RULE_TYPES.map(
       (rt) => rt.filtervar
     )
 
     this.route.queryParamMap
       .pipe(
-        filter((qp) => !this.route.snapshot.paramMap.has('id')), // only when not on saved view
+        filter(() => !this.route.snapshot.paramMap.has('id')), // only when not on saved view
         takeUntil(this.unsubscribeNotifier)
       )
       .subscribe((queryParams) => {
-        const queryVarsFilterRules = []
-
-        filterQueryVars.forEach((filterQueryVar) => {
-          if (queryParams.has(filterQueryVar)) {
-            const value = queryParams.get(filterQueryVar)
-            if (value.split(',').length > 1) {
-              value.split(',').forEach((splitVal) => {
-                queryVarsFilterRules.push({
+        // transform query params to filter rules
+        let filterRulesFromQueryParams: FilterRule[] = []
+        allFilterRuleQueryParams
+          .filter((frqp) => queryParams.has(frqp))
+          .forEach((filterQueryParamName) => {
+            const filterQueryParamValues: string[] = queryParams
+              .get(filterQueryParamName)
+              .split(',')
+
+            filterRulesFromQueryParams = filterRulesFromQueryParams.concat(
+              // map all values to filter rules
+              filterQueryParamValues.map((val) => {
+                return {
                   rule_type: FILTER_RULE_TYPES.find(
-                    (rt) => rt.filtervar == filterQueryVar
+                    (rt) => rt.filtervar == filterQueryParamName
                   ).id,
-                  value: splitVal,
-                })
+                  value: val,
+                }
               })
-            } else {
-              queryVarsFilterRules.push({
-                rule_type: FILTER_RULE_TYPES.find(
-                  (rt) => rt.filtervar == filterQueryVar
-                ).id,
-                value: value,
-              })
-            }
-          }
-        })
+            )
+          })
 
         this.list.activateSavedView(null)
-        this.list.filterRules = queryVarsFilterRules
+        this.list.filterRules = filterRulesFromQueryParams
         this.list.reload()
         this.unmodifiedFilterRules = []
       })