@iapps/ng-dhis2-ui 1.2.6 → 1.2.7
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.
- package/fesm2022/iapps-ng-dhis2-ui.mjs +108 -22
- package/fesm2022/iapps-ng-dhis2-ui.mjs.map +1 -1
- package/lib/modules/form/models/form-metadata-section.model.d.ts +0 -1
- package/lib/modules/form/utils/field-type.util.d.ts +1 -1
- package/lib/modules/form/utils/field.util.d.ts +1 -1
- package/lib/modules/line-list/models/filter-config.model.d.ts +6 -0
- package/lib/modules/line-list/models/line-list.models.d.ts +1 -1
- package/lib/modules/line-list/utils/event-table-table-util.d.ts +6 -0
- package/lib/modules/program-entry-form/program-entry-form.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -3314,15 +3314,14 @@ const FilterToolbar = ({ orgUnitLabel, selectedOrgUnit, setSelectedOrgUnit, setO
|
|
|
3314
3314
|
setOrgUnitState(defaultOrgUnit);
|
|
3315
3315
|
} }),
|
|
3316
3316
|
React__default.createElement(CalendarInput, { label: "Start date:", calendar: "gregory", locale: "en-GB", timeZone: "Africa/Dar_es_Salaam", className: "custom-input", clearable: !!startDateState, date: startDateState, onDateSelect: (selectedDate) => {
|
|
3317
|
-
if (!(selectedDate.calendarDateString === null)) {
|
|
3318
|
-
|
|
3319
|
-
}
|
|
3320
|
-
console.log(selectedDate.calendarDateString);
|
|
3317
|
+
// if (!(selectedDate.calendarDateString === null)) {
|
|
3318
|
+
setStartDateState(selectedDate.calendarDateString);
|
|
3319
|
+
//}
|
|
3321
3320
|
} }),
|
|
3322
3321
|
React__default.createElement(CalendarInput, { label: "End date:", calendar: "gregory", locale: "en-GB", timeZone: "Africa/Dar_es_Salaam", className: "custom-input", clearable: !!endDateState, date: endDateState, onDateSelect: (selectedDate) => {
|
|
3323
|
-
if (!(selectedDate.calendarDateString === null)) {
|
|
3324
|
-
|
|
3325
|
-
}
|
|
3322
|
+
// if (!(selectedDate.calendarDateString === null)) {
|
|
3323
|
+
setEndDateState(selectedDate.calendarDateString);
|
|
3324
|
+
//}
|
|
3326
3325
|
} }),
|
|
3327
3326
|
(visibleFilters ?? []).map(({ label, key, valueType, options }) => {
|
|
3328
3327
|
if (valueType === 'DATE') {
|
|
@@ -3535,6 +3534,7 @@ const DataTableActions = (props) => {
|
|
|
3535
3534
|
// license that can be found in the LICENSE file.
|
|
3536
3535
|
|
|
3537
3536
|
const TableCell = ({ cell, getTextColorFromBackGround, }) => {
|
|
3537
|
+
console.log('cel value', cell);
|
|
3538
3538
|
if (cell?.style && cell?.style !== 'default-value') {
|
|
3539
3539
|
return (React__default.createElement(DataTableCell, null,
|
|
3540
3540
|
React__default.createElement("div", { style: { display: 'flex', justifyContent: 'center' } },
|
|
@@ -3787,15 +3787,15 @@ const getTrackedEntityTableData = (response, programId, pager, metaData) => {
|
|
|
3787
3787
|
.orgUnitsMap;
|
|
3788
3788
|
const attributeColumns = metaData.displayInListTrackedEntityAttributes
|
|
3789
3789
|
.sort((a, b) => a.sortOrder - b.sortOrder)
|
|
3790
|
-
.map((
|
|
3791
|
-
label:
|
|
3792
|
-
key:
|
|
3790
|
+
.map((trackedEntityAttribute) => ({
|
|
3791
|
+
label: trackedEntityAttribute.formName ?? trackedEntityAttribute.name,
|
|
3792
|
+
key: trackedEntityAttribute.id,
|
|
3793
3793
|
}));
|
|
3794
3794
|
const dataElementColumns = metaData.displayInListDataElements
|
|
3795
3795
|
.sort((a, b) => a.sortOrder - b.sortOrder)
|
|
3796
|
-
.map((
|
|
3797
|
-
label:
|
|
3798
|
-
key:
|
|
3796
|
+
.map((dataElement) => ({
|
|
3797
|
+
label: dataElement.formName || dataElement.name,
|
|
3798
|
+
key: dataElement.id,
|
|
3799
3799
|
}));
|
|
3800
3800
|
const dataElementOptions = metaData.displayInListDataElements.map((element) => ({
|
|
3801
3801
|
id: element.id,
|
|
@@ -3843,7 +3843,17 @@ const getTrackedEntityTableData = (response, programId, pager, metaData) => {
|
|
|
3843
3843
|
return attr;
|
|
3844
3844
|
});
|
|
3845
3845
|
attributesData.forEach((attr) => {
|
|
3846
|
-
|
|
3846
|
+
const attributeMeta = metaData.programTrackedEntityAttributes?.find((metadata) => metadata.trackedEntityAttribute.id === attr.attribute);
|
|
3847
|
+
if (attributeMeta?.trackedEntityAttribute.optionSetValue) {
|
|
3848
|
+
const optionSet = attributeMeta?.trackedEntityAttribute?.optionSet;
|
|
3849
|
+
const option = optionSet?.options?.find((option) => option.code === attr.value);
|
|
3850
|
+
row[attr.attribute] = option
|
|
3851
|
+
? { value: option?.name }
|
|
3852
|
+
: { value: attr.value };
|
|
3853
|
+
}
|
|
3854
|
+
else {
|
|
3855
|
+
row[attr.attribute] = { value: attr.value };
|
|
3856
|
+
}
|
|
3847
3857
|
});
|
|
3848
3858
|
dataElementsData.forEach((element) => {
|
|
3849
3859
|
// Find the matching data element in dataElementOptions by ID
|
|
@@ -3887,6 +3897,58 @@ const addActionsColumn = (columns, actionOptions) => {
|
|
|
3887
3897
|
];
|
|
3888
3898
|
};
|
|
3889
3899
|
|
|
3900
|
+
const getEvents = (response, programStageId, pager, metaData) => {
|
|
3901
|
+
const events = response.data.events;
|
|
3902
|
+
const eventsiiii = response.data;
|
|
3903
|
+
const allDataElements = new Set();
|
|
3904
|
+
events.forEach((event) => {
|
|
3905
|
+
event.dataValues.forEach((dv) => allDataElements.add(dv.dataElement));
|
|
3906
|
+
});
|
|
3907
|
+
let stageFromMetaData;
|
|
3908
|
+
if (programStageId) {
|
|
3909
|
+
stageFromMetaData = metaData.programStages.find((stage) => stage.id === programStageId);
|
|
3910
|
+
}
|
|
3911
|
+
else if (metaData.programType === 'WITHOUT_REGISTRATION') {
|
|
3912
|
+
stageFromMetaData = metaData.programStages[0];
|
|
3913
|
+
}
|
|
3914
|
+
if (!stageFromMetaData) {
|
|
3915
|
+
throw new Error(`Program stage with ID ${programStageId} not found`);
|
|
3916
|
+
}
|
|
3917
|
+
const entityColumns = Array.from(allDataElements).map((dataElementId) => {
|
|
3918
|
+
const dataElementMeta = stageFromMetaData.programStageDataElements.find((psde) => psde.dataElement.id === dataElementId);
|
|
3919
|
+
return {
|
|
3920
|
+
label: dataElementMeta?.dataElement.name || dataElementId,
|
|
3921
|
+
key: dataElementId,
|
|
3922
|
+
};
|
|
3923
|
+
});
|
|
3924
|
+
const dataElementsData = events.map((event, idx) => {
|
|
3925
|
+
const row = {
|
|
3926
|
+
event: { value: event.event },
|
|
3927
|
+
index: {
|
|
3928
|
+
value: (pager.page - 1) * pager.pageSize + idx + 1,
|
|
3929
|
+
},
|
|
3930
|
+
};
|
|
3931
|
+
allDataElements.forEach((dataElementId) => {
|
|
3932
|
+
row[dataElementId] = { value: '' };
|
|
3933
|
+
});
|
|
3934
|
+
event.dataValues.forEach((dv) => {
|
|
3935
|
+
const dataElementMeta = stageFromMetaData.programStageDataElements.find((psde) => psde.dataElement.id === dv.dataElement);
|
|
3936
|
+
if (dataElementMeta?.dataElement.optionSet) {
|
|
3937
|
+
const optionSet = dataElementMeta.dataElement.optionSet;
|
|
3938
|
+
const matchingOption = optionSet.options.find((option) => option.code === dv.value);
|
|
3939
|
+
row[dv.dataElement] = matchingOption
|
|
3940
|
+
? { value: matchingOption.name }
|
|
3941
|
+
: { value: dv.value };
|
|
3942
|
+
}
|
|
3943
|
+
else {
|
|
3944
|
+
row[dv.dataElement] = { value: dv.value };
|
|
3945
|
+
}
|
|
3946
|
+
});
|
|
3947
|
+
return row;
|
|
3948
|
+
});
|
|
3949
|
+
return { columns: entityColumns, data: dataElementsData };
|
|
3950
|
+
};
|
|
3951
|
+
|
|
3890
3952
|
// src/app/line-list-table.component.ts
|
|
3891
3953
|
class LineListTableComponent extends ReactWrapperModule {
|
|
3892
3954
|
constructor() {
|
|
@@ -3974,10 +4036,36 @@ class LineListTableComponent extends ReactWrapperModule {
|
|
|
3974
4036
|
if (!metaData) {
|
|
3975
4037
|
return undefined;
|
|
3976
4038
|
}
|
|
3977
|
-
setLoading(true);
|
|
3978
4039
|
const isTracker = metaData.programType === 'WITH_REGISTRATION';
|
|
4040
|
+
const isEvent = metaData.programType === 'WITHOUT_REGISTRATION';
|
|
3979
4041
|
const endDate = endDateState ?? new Date().toISOString().split('T')[0];
|
|
3980
|
-
if (
|
|
4042
|
+
if (this.programStageId || isEvent) {
|
|
4043
|
+
setLoading(true);
|
|
4044
|
+
d2.eventModule.event
|
|
4045
|
+
.setProgram(this.programId)
|
|
4046
|
+
.setProgramStage(this.programStageId)
|
|
4047
|
+
.setPagination(new Pager({
|
|
4048
|
+
pageSize: pager.pageSize,
|
|
4049
|
+
page: pager.page,
|
|
4050
|
+
}))
|
|
4051
|
+
.get()
|
|
4052
|
+
.then((response) => {
|
|
4053
|
+
const eventsResponse = {
|
|
4054
|
+
events: response.data,
|
|
4055
|
+
pager: pager,
|
|
4056
|
+
// orgUnitsMap: fetchedOrgUnits,
|
|
4057
|
+
};
|
|
4058
|
+
const { columns, data } = getEvents({ data: eventsResponse }, this.programStageId, pager, metaData);
|
|
4059
|
+
const finalColumns = addActionsColumn([{ label: '#', key: 'index' }, ...columns], this.actionOptions);
|
|
4060
|
+
const pagerResponse = response.pagination;
|
|
4061
|
+
setLoading(false);
|
|
4062
|
+
setColumns(finalColumns);
|
|
4063
|
+
setData(data);
|
|
4064
|
+
setPager(new Pager(pagerResponse || {}));
|
|
4065
|
+
});
|
|
4066
|
+
}
|
|
4067
|
+
else if (isTracker) {
|
|
4068
|
+
setLoading(true);
|
|
3981
4069
|
d2.trackerModule.trackedEntity
|
|
3982
4070
|
.setEndDate(endDate)
|
|
3983
4071
|
.setStartDate(startDateState)
|
|
@@ -4028,9 +4116,6 @@ class LineListTableComponent extends ReactWrapperModule {
|
|
|
4028
4116
|
});
|
|
4029
4117
|
});
|
|
4030
4118
|
}
|
|
4031
|
-
else {
|
|
4032
|
-
//TODO: TO IMPLEMEMNT EVENT QUERY FOR FILTERING EVENTS WHEN PROGRAM STAGE IS PASSED OR DEALING WITH EVENT PROGRAM USING TRACKER SDK QUERY
|
|
4033
|
-
}
|
|
4034
4119
|
}, [
|
|
4035
4120
|
metaData,
|
|
4036
4121
|
programIdState,
|
|
@@ -5009,7 +5094,9 @@ class FormFieldGroup {
|
|
|
5009
5094
|
...field,
|
|
5010
5095
|
id: field.id,
|
|
5011
5096
|
code: fieldMetaData['code'],
|
|
5012
|
-
label: (fieldMetaData['formName'] ??
|
|
5097
|
+
label: (fieldMetaData['formName'] ??
|
|
5098
|
+
fieldMetaData['name'] ??
|
|
5099
|
+
field['label']),
|
|
5013
5100
|
key: camelCase(fieldMetaData['code']) || field.id,
|
|
5014
5101
|
required: (fieldMetaData['mandatory'] ??
|
|
5015
5102
|
fieldMetaData['required']),
|
|
@@ -5140,7 +5227,6 @@ class FormMetadataSection {
|
|
|
5140
5227
|
return programTrackedEntityAttributes.map((programTrackedEntityAttribute) => {
|
|
5141
5228
|
return {
|
|
5142
5229
|
...programTrackedEntityAttribute['trackedEntityAttribute'],
|
|
5143
|
-
formName: (programTrackedEntityAttribute['trackedEntityAttribute'] || {})['name'],
|
|
5144
5230
|
sortOrder: programTrackedEntityAttribute['sortOrder'],
|
|
5145
5231
|
mandatory: programTrackedEntityAttribute['mandatory'],
|
|
5146
5232
|
allowFutureDate: programTrackedEntityAttribute['allowFutureDate'],
|
|
@@ -7049,7 +7135,7 @@ class TrackerFormComponent {
|
|
|
7049
7135
|
programs: [program],
|
|
7050
7136
|
programStage: this.programStage(),
|
|
7051
7137
|
disableEnrollmentDate: true,
|
|
7052
|
-
excludeInheritedAttributes:
|
|
7138
|
+
excludeInheritedAttributes: false,
|
|
7053
7139
|
}).toJson();
|
|
7054
7140
|
}
|
|
7055
7141
|
}
|