This commit is contained in:
string 2025-10-22 11:52:27 +05:30
parent 8ccfb37847
commit b1dc16a67b
2 changed files with 18 additions and 4 deletions

View File

@ -228,7 +228,7 @@
<select [(ngModel)]="filter.field" [ngModelOptions]="{standalone: true}" class="clr-select">
<option value="">Select Field</option>
<!-- Use columnData for base API filters when drilldown is not enabled, drilldownColumnData when it is -->
<option *ngFor="let column of (gadgetsEditdata.drilldownEnabled ? drilldownColumnData : columnData)" [value]="column">{{column}}</option>
<option *ngFor="let column of getAvailableFields(gadgetsEditdata.baseFilters, i, gadgetsEditdata.drilldownEnabled ? drilldownColumnData : columnData)" [value]="column">{{column}}</option>
</select>
</div>
@ -343,7 +343,7 @@
<div class="clr-col-sm-5">
<select [(ngModel)]="filter.field" [ngModelOptions]="{standalone: true}" class="clr-select">
<option value="">Select Field</option>
<option *ngFor="let column of drilldownColumnData" [value]="column">{{column}}</option>
<option *ngFor="let column of getAvailableFields(gadgetsEditdata.baseFilters, i, drilldownColumnData)" [value]="column">{{column}}</option>
</select>
</div>
@ -472,7 +472,7 @@
<div class="clr-col-sm-5">
<select [(ngModel)]="filter.field" [ngModelOptions]="{standalone: true}" class="clr-select">
<option value="">Select Field</option>
<option *ngFor="let column of layerColumnData[i] || []" [value]="column">{{column}}</option>
<option *ngFor="let column of getAvailableFields(layer.filters, j, layerColumnData[i] || [])" [value]="column">{{column}}</option>
</select>
</div>

View File

@ -319,6 +319,20 @@ export class EditnewdashComponent implements OnInit {
});
});
}
// Add method to get available fields for a filter dropdown (excluding already selected fields)
getAvailableFields(filters: any[], currentIndex: number, allFields: string[]): string[] {
if (!filters || !allFields) {
return allFields || [];
}
// Get all selected fields except the current one
const selectedFields = filters
.filter((filter, index) => filter.field && index !== currentIndex)
.map(filter => filter.field);
// Return fields that haven't been selected yet
return allFields.filter(field => !selectedFields.includes(field));
}
itemChange() {
this.dashboardCollection.dashboard = this.dashboardArray;