Răsfoiți Sursa

fix(admin-ui): Reinstate serialized filter state in url

Michael Bromley 2 ani în urmă
părinte
comite
a5bc0c1c2f

+ 7 - 0
packages/admin-ui/src/lib/core/src/providers/data-table/data-table-filter-collection.ts

@@ -218,6 +218,13 @@ export class DataTableFilterCollection<FilterInput extends Record<string, any> =
     }
 
     connectToRoute(route: ActivatedRoute) {
+        this.valueChanges.subscribe(() => {
+            this.router.navigate(['./'], {
+                queryParams: { [this.#filtersQueryParamName]: this.serialize(), page: 1 },
+                relativeTo: route,
+                queryParamsHandling: 'merge',
+            });
+        });
         route.queryParamMap
             .pipe(
                 map(params => params.get(this.#filtersQueryParamName)),

+ 1 - 1
packages/admin-ui/src/lib/core/src/shared/components/data-table-filters/data-table-filters.component.html

@@ -138,7 +138,7 @@
                 </div>
             </ng-container>
             <div class="apply-wrapper mt-2">
-                <button class="button" (click)="activate()" [disabled]="!formControl?.valid">
+                <button class="button" (click)="activate($event)" [disabled]="!formControl?.valid">
                     <span>{{ 'common.apply' | translate }}</span>
                     <clr-icon shape="check"></clr-icon>
                 </button>

+ 2 - 1
packages/admin-ui/src/lib/core/src/shared/components/data-table-filters/data-table-filters.component.ts

@@ -155,7 +155,8 @@ export class DataTableFiltersComponent implements AfterViewInit {
         }
     }
 
-    activate() {
+    activate(event: Event) {
+        event.preventDefault();
         if (!this.selectedFilter) {
             return;
         }