Skip to content

Commit 8f0ac6d

Browse files
4manasamashm
andauthored
Fixed the dropdown datasource api call happening multiple times issue. (#259)
Co-authored-by: mashm <[email protected]>
1 parent 77a51a7 commit 8f0ac6d

File tree

1 file changed

+29
-15
lines changed

1 file changed

+29
-15
lines changed

packages/angular-sdk-components/src/lib/_components/field/dropdown/dropdown.component.ts

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -279,25 +279,39 @@ export class DropdownComponent implements OnInit, OnDestroy {
279279

280280
columns = preProcessColumns(columns) || [];
281281
if (!this.displayMode$ && listType !== 'associated' && typeof datasource === 'string') {
282-
this.getData(datasource, parameters, columns, context);
282+
this.getData(datasource, parameters, columns, context, listType);
283283
}
284284
}
285285

286-
getData(datasource, parameters, columns, context) {
287-
this.dataPageService.getDataPageData(datasource, parameters, context).then((results: any) => {
288-
const optionsData: any[] = [];
289-
const displayColumn = getDisplayFieldsMetaData(columns);
290-
results?.forEach(element => {
291-
const val = element[displayColumn.primary]?.toString();
292-
const obj = {
293-
key: element[displayColumn.key] || element.pyGUID,
294-
value: val
295-
};
296-
optionsData.push(obj);
286+
getData(dataSource, parameters, columns, context, listType) {
287+
const dataConfig: any = {
288+
columns,
289+
dataSource,
290+
deferDatasource: true,
291+
listType,
292+
parameters,
293+
matchPosition: 'contains',
294+
maxResultsDisplay: '5000',
295+
cacheLifeSpan: 'form'
296+
};
297+
PCore.getDataApi()
298+
.init(dataConfig, context)
299+
.then((dataApiObj: any) => {
300+
const optionsData: any[] = [];
301+
const displayColumn = getDisplayFieldsMetaData(columns);
302+
dataApiObj?.fetchData('').then(response => {
303+
response.data?.forEach(element => {
304+
const val = element[displayColumn.primary]?.toString();
305+
const obj = {
306+
key: element[displayColumn.key] || element.pyGUID,
307+
value: val
308+
};
309+
optionsData.push(obj);
310+
});
311+
optionsData?.unshift({ key: 'Select', value: this.pConn$.getLocalizedValue('Select...', '', '') });
312+
this.options$ = optionsData;
313+
});
297314
});
298-
optionsData?.unshift({ key: 'Select', value: this.pConn$.getLocalizedValue('Select...', '', '') });
299-
this.options$ = optionsData;
300-
});
301315
}
302316

303317
isSelected(buttonValue: string): boolean {

0 commit comments

Comments
 (0)