@iapps/ng-dhis2-ui 1.1.45 → 1.1.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3141,7 +3141,7 @@ class LineListService {
3141
3141
  const filterParams = buildFilters(filters);
3142
3142
  const dateFilter = startDate && endDate ? `&programStartDate=${startDate}&programEndDate=${endDate}` : '';
3143
3143
  const ouModeIdentifier = ouMode ? `&ouMode=${ouMode}` : ``;
3144
- return this.httpClient.get(`trackedEntityInstances.json?program=${programId}&ou=${orgUnit}${ouModeIdentifier}&page=${page}&pageSize=${pageSize}&fields=trackedEntityInstance,attributes[*,displayInList],enrollments[*]&totalPages=true&${filterParams}${dateFilter}&order=created:desc`).pipe(map$1((response) => {
3144
+ return this.httpClient.get(`trackedEntityInstances.json?program=${programId}&ou=${orgUnit}${ouModeIdentifier}&page=${page}&pageSize=${pageSize}&fields=trackedEntityInstance,orgUnit,attributes[*,displayInList],enrollments[*]&totalPages=true&${filterParams}${dateFilter}&order=created:desc`).pipe(map$1((response) => {
3145
3145
  //TODO: use the api to to order by desc
3146
3146
  // response.trackedEntityInstances.reverse();
3147
3147
  return response;
@@ -3217,20 +3217,21 @@ const getTrackedEntityData = (response, programId, pager, filters) => {
3217
3217
  let teis = response.data
3218
3218
  .trackedEntityInstances;
3219
3219
  let programMetaData = response.metadata.programTrackedEntityAttributes;
3220
- //let progrmaMetaDataAttributesMap = programMetaData.reduce
3220
+ //organisation units from metadata
3221
+ let orgUnitsFromMetaData = response.metadata.organisationUnits;
3222
+ //a Map to efficiently look up orgUnit names by ID
3223
+ const orgUnitMap = new Map(orgUnitsFromMetaData.map((ou) => [ou.id, ou.name]));
3221
3224
  const mappedProgramMetadataAttributes = programMetaData.map((attr) => ({
3222
3225
  displayInList: attr.displayInList,
3223
3226
  searchable: attr.searchable,
3224
3227
  id: attr.trackedEntityAttribute.id,
3225
3228
  }));
3226
- console.log('the mapped attributes', mappedProgramMetadataAttributes);
3227
3229
  const programAttributesMap = programMetaData.reduce((acc, attribute) => {
3228
3230
  if (attribute.displayInList) {
3229
3231
  acc[attribute.id] = attribute.displayName;
3230
3232
  }
3231
3233
  return acc;
3232
3234
  }, {});
3233
- console.log('metadat attributes', programMetaData);
3234
3235
  if (filters) {
3235
3236
  teis = getFilteredTrackedEntityInstances(teis, filters);
3236
3237
  }
@@ -3242,11 +3243,6 @@ const getTrackedEntityData = (response, programId, pager, filters) => {
3242
3243
  : tei.attributes;
3243
3244
  attributes.forEach((attr) => allAttributes.add(attr.attribute));
3244
3245
  });
3245
- console.log('all of the attributes', allAttributes);
3246
- // const filteredAttributes = new Set(
3247
- // [...allAttributes].filter((attributeId) => programAttributesMap[attributeId])
3248
- // );
3249
- // console.log('Filtered All Attributes:', filteredAttributes);
3250
3246
  let entityColumns = Array.from(allAttributes).map((attrId) => {
3251
3247
  const foundAttribute = teis
3252
3248
  .flatMap((tei) => {
@@ -3265,6 +3261,15 @@ const getTrackedEntityData = (response, programId, pager, filters) => {
3265
3261
  // Check if the column label is part of any value in programAttributesMap
3266
3262
  return Object.values(programAttributesMap).some((value) => value.includes(column.label));
3267
3263
  });
3264
+ // entityColumns.push({
3265
+ // label: 'Location',
3266
+ // key: 'orgUnit',
3267
+ // });
3268
+ // Add orgUnit as the first column
3269
+ entityColumns.unshift({
3270
+ label: 'Location',
3271
+ key: 'orgUnit',
3272
+ });
3268
3273
  const searchableAttributes = mappedProgramMetadataAttributes
3269
3274
  .filter((attr) => attr.searchable && attr.displayInList)
3270
3275
  .map((attr) => ({
@@ -3275,8 +3280,6 @@ const getTrackedEntityData = (response, programId, pager, filters) => {
3275
3280
  const searchableKeys = new Set(searchableAttributes.map((attr) => attr.key));
3276
3281
  // Filter entityColumns to keep only those whose key exists in searchableAttributes
3277
3282
  const filteredEntityColumns = entityColumns.filter((column) => searchableKeys.has(column.key));
3278
- console.log('show the filtered values', filteredEntityColumns);
3279
- console.log('the answer is ', searchableAttributes);
3280
3283
  const attributesData = teis.map((tei, idx) => {
3281
3284
  let row = {
3282
3285
  trackedEntityInstance: tei.trackedEntityInstance,
@@ -3288,9 +3291,10 @@ const getTrackedEntityData = (response, programId, pager, filters) => {
3288
3291
  ? matchingEnrollment.attributes
3289
3292
  : tei.attributes;
3290
3293
  attributesToUse.forEach((attr) => (row[attr.attribute] = attr.value));
3294
+ // Access the name of the orgUnit using the Map
3295
+ row['orgUnit'] = orgUnitMap.get(tei.orgUnit) || tei.orgUnit || 'N/A';
3291
3296
  return row;
3292
3297
  });
3293
- console.log('attributes to use', entityColumns);
3294
3298
  return { columns: entityColumns, data: attributesData, filteredEntityColumns: filteredEntityColumns };
3295
3299
  };
3296
3300
  const getEventData = (response, pager) => {
@@ -3406,10 +3410,8 @@ class LineListTableComponent extends ReactWrapperModule {
3406
3410
  else if ('trackedEntityInstances' in response.data) {
3407
3411
  responsePager = response.data
3408
3412
  .pager;
3409
- console.log('tei received', response.data.trackedEntityInstances);
3410
3413
  const { columns, data, filteredEntityColumns } = getTrackedEntityData(response, this.programId, pager, this.filters);
3411
3414
  entityColumns = columns;
3412
- console.log('columns shown', entityColumns);
3413
3415
  entityData = data;
3414
3416
  let firstTei = response.data
3415
3417
  ?.trackedEntityInstances?.[0]?.trackedEntityInstance;
@@ -3428,16 +3430,11 @@ class LineListTableComponent extends ReactWrapperModule {
3428
3430
  entityColumns = columns;
3429
3431
  entityData = data;
3430
3432
  }
3431
- console.log('before final columns');
3432
3433
  const finalColumns = addActionsColumn([{ label: '#', key: 'index' }, ...entityColumns], this.actionOptions);
3433
- console.log('the columns shown', finalColumns);
3434
3434
  setLoading(false);
3435
- // console.log('hey');
3436
3435
  setColumns(...[finalColumns]);
3437
3436
  setData(...[entityData]);
3438
3437
  setPager(...[responsePager]);
3439
- // console.log('columns', columns);
3440
- // console.log('data', data);
3441
3438
  });
3442
3439
  }, [
3443
3440
  programIdState,
@@ -3449,7 +3446,6 @@ class LineListTableComponent extends ReactWrapperModule {
3449
3446
  pager.page,
3450
3447
  pager.pageSize,
3451
3448
  ]);
3452
- console.log('the columns shown hehe', columns);
3453
3449
  const getDropdownOptions = (row) => {
3454
3450
  return (this.actionOptions || []).map((option) => ({
3455
3451
  ...option,
@@ -3480,11 +3476,9 @@ class LineListTableComponent extends ReactWrapperModule {
3480
3476
  : null;
3481
3477
  })
3482
3478
  .filter((item) => item !== null); // Remove null entries (no matching enrollment)
3483
- // console.log('TEI and Enrollment IDs emitted:', teiEnrollmentList);
3484
3479
  this.approvalSelected.emit(teiEnrollmentList);
3485
3480
  }
3486
3481
  else {
3487
- // console.log('No tracked entity instances found in the response');
3488
3482
  this.approvalSelected.emit([]); // Emit empty array if no TEIs
3489
3483
  }
3490
3484
  });
@@ -3501,7 +3495,6 @@ class LineListTableComponent extends ReactWrapperModule {
3501
3495
  const updatedFilters = value.trim()
3502
3496
  ? [...filteredFilters, { attribute: key, operator: 'like', value }]
3503
3497
  : filteredFilters;
3504
- // console.log(`Updated Filters:`, updatedFilters); // Debugging
3505
3498
  return updatedFilters;
3506
3499
  });
3507
3500
  };
@@ -3543,7 +3536,6 @@ class LineListTableComponent extends ReactWrapperModule {
3543
3536
  flexWrap: 'wrap',
3544
3537
  paddingBottom: '16px',
3545
3538
  } }, (filteredColumns ?? []).map(({ label, key }) => (React__default.createElement(InputField$1, { key: key, label: label, value: inputValues[key] || '', onChange: (e) => {
3546
- console.log(`Event for key "${key}":`, e);
3547
3539
  // Check if it's a standard event with target.value
3548
3540
  if ('target' in e && e.target) {
3549
3541
  handleInputChange(key, e.target.value);