dynamic field

This commit is contained in:
Gaurav Kumar
2025-11-03 23:37:57 +05:30
parent e7ee226b66
commit 5f0594c93c
3 changed files with 13 additions and 20 deletions

View File

@@ -609,23 +609,12 @@ export class ChartConfigManagerComponent implements OnInit {
this.dynamicFieldLoadingState = ClrLoadingState.LOADING;
// Create a complete chartType object with only the ID
const chartTypeWithId = {
id: this.selectedChartType.id,
name: '',
displayName: '',
description: '',
isActive: true,
createdAt: '',
updatedAt: ''
};
// Remove the chartType from the dynamic field data since we're passing it as a parameter
const dynamicFieldData = { ...this.newDynamicField };
// Remove chartType property if it exists
delete (dynamicFieldData as any).chartType;
const dynamicFieldData = {
...this.newDynamicField,
chartType: chartTypeWithId
};
this.dynamicFieldService.createDynamicField(dynamicFieldData).subscribe({
this.dynamicFieldService.createDynamicField(dynamicFieldData, this.selectedChartType.id).subscribe({
next: (data) => {
this.dynamicFields.push(data);
this.newDynamicField = {};

View File

@@ -23,9 +23,13 @@ export class DynamicFieldService {
return this.apiRequest.get(url);
}
// Create new dynamic field
createDynamicField(dynamicField: Partial<DynamicField>): Observable<DynamicField> {
return this.apiRequest.post(this.dynamicFieldsUrl, dynamicField);
// Create new dynamic field with optional chart type ID as parameter
createDynamicField(dynamicField: Partial<DynamicField>, chartTypeId?: number): Observable<DynamicField> {
let url = this.dynamicFieldsUrl;
if (chartTypeId) {
url = `${this.dynamicFieldsUrl}?chartTypeId=${chartTypeId}`;
}
return this.apiRequest.post(url, dynamicField);
}
// Update dynamic field

View File

@@ -105,7 +105,7 @@ export class ChartTypeFieldsComponent implements OnInit {
};
this.loadingState = ClrLoadingState.LOADING;
this.dynamicFieldService.createDynamicField(fieldData).subscribe({
this.dynamicFieldService.createDynamicField(fieldData, this.chartType.id).subscribe({
next: (data) => {
this.dynamicFields.push(data);
this.newDynamicField = { isRequired: false, showInUi: true };