From cdcf1e07c7d2fea1a17cc75cae75171702a69fcc Mon Sep 17 00:00:00 2001 From: Gaurav Kumar Date: Sat, 25 Oct 2025 21:57:10 +0530 Subject: [PATCH] Update compact-filter.component.ts --- .../common-filter/compact-filter.component.ts | 52 ++++++++++++++++++- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/common-filter/compact-filter.component.ts b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/common-filter/compact-filter.component.ts index ec53eae..90d5bcf 100644 --- a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/common-filter/compact-filter.component.ts +++ b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/common-filter/compact-filter.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core'; +import { Component, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core'; import { FilterService, Filter } from './filter.service'; import { AlertsService } from 'src/app/services/fnd/alerts.service'; @@ -7,7 +7,7 @@ import { AlertsService } from 'src/app/services/fnd/alerts.service'; templateUrl: './compact-filter.component.html', styleUrls: ['./compact-filter.component.scss'] }) -export class CompactFilterComponent implements OnInit { +export class CompactFilterComponent implements OnInit, OnChanges { @Input() filterKey: string = ''; @Input() filterType: string = 'text'; @Input() filterOptions: string[] = []; @@ -67,6 +67,51 @@ export class CompactFilterComponent implements OnInit { this.loadAvailableValues(this.filterKey); } } + + // Register this filter with the filter service + this.registerFilter(); + } + + ngOnChanges(changes: SimpleChanges): void { + // If filterKey or filterType changes, re-register the filter + if (changes.filterKey || changes.filterType) { + this.registerFilter(); + } + } + + // Register this filter with the filter service + registerFilter(): void { + if (this.filterKey) { + // Create a filter definition for this compact filter + const filterDef: Filter = { + id: `compact-filter-${this.filterKey}`, + field: this.filterKey, + label: this.filterLabel || this.filterKey, + type: this.filterType as any, + options: this.filterOptions, + value: this.filterValue + }; + + // Get current filters + const currentFilters = this.filterService.getFilters(); + + // Check if this filter is already registered + const existingFilterIndex = currentFilters.findIndex(f => f.id === filterDef.id); + + if (existingFilterIndex >= 0) { + // Update existing filter + currentFilters[existingFilterIndex] = filterDef; + } else { + // Add new filter + currentFilters.push(filterDef); + } + + // Update the filter service with the new filter list + this.filterService.setFilters(currentFilters); + + // Update the selected filter reference + this.selectedFilter = filterDef; + } } updateSelectedFilter(): void { @@ -175,6 +220,9 @@ export class CompactFilterComponent implements OnInit { this.loadAvailableValues(this.filterKey); } + // Register the updated filter with the filter service + this.registerFilter(); + // Update selected filter this.updateSelectedFilter();