=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/program-summary-controller.js'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/program-summary-controller.js 2014-08-29 12:40:08 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/program-summary-controller.js 2014-08-29 14:15:09 +0000
@@ -28,36 +28,13 @@
});
//load programs associated with the selected org unit.
- $scope.loadPrograms = function(orgUnit) {
-
- $scope.selectedOrgUnit = orgUnit;
-
- if (angular.isObject($scope.selectedOrgUnit)) {
-
+ $scope.loadPrograms = function(orgUnit) {
+ $scope.selectedOrgUnit = orgUnit;
+ if (angular.isObject($scope.selectedOrgUnit)){
ProgramFactory.getAll().then(function(programs){
- $scope.programs = [];
- angular.forEach(programs, function(program){
- if(program.organisationUnits.hasOwnProperty($scope.selectedOrgUnit.id)){
- $scope.programs.push(program);
- }
- });
-
- if($scope.programs.length === 0){
- $scope.selectedProgram = null;
- }
- else{
- if($scope.selectedProgram){
- angular.forEach($scope.programs, function(program){
- if(program.id === $scope.selectedProgram.id){
- $scope.selectedProgram = program;
- }
- });
- }
- else{
- if($scope.programs.length === 1){
- $scope.selectedProgram = $scope.programs[0];
- }
- }
+ $scope.programs = programs;
+ if($scope.programs.length === 1){
+ $scope.selectedProgram = $scope.programs[0];
}
});
}
@@ -166,8 +143,7 @@
modalInstance.result.then({
});
- };
-
+ };
})
//Controller for event details
=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/program-summary.html'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/program-summary.html 2014-08-29 12:39:37 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/program-summary.html 2014-08-29 14:15:09 +0000
@@ -55,7 +55,7 @@
{{'no_visit_made'| translate}}
-
+
{{ev.orgUnitName}}
= report.startDate &&
+ ev.dueDate <= report.endDate){
+
+ ev.name = $scope.programStages[ev.programStage].name;
+ ev.programName = $scope.selectedProgram.name;
+ ev.statusColor = EventUtils.getEventStatusColor(ev);
+ ev.dueDate = DateUtils.format(ev.dueDate);
+
+ if($scope.dhis2Events[ev.trackedEntityInstance]){
+ if(teis.rows[ev.trackedEntityInstance]){
+ $scope.teiList.push(teis.rows[ev.trackedEntityInstance]);
+ delete teis.rows[ev.trackedEntityInstance];
+ }
+ $scope.dhis2Events[ev.trackedEntityInstance].push(ev);
+ }
+ else{
+ if(teis.rows[ev.trackedEntityInstance]){
+ $scope.teiList.push(teis.rows[ev.trackedEntityInstance]);
+ delete teis.rows[ev.trackedEntityInstance];
+ }
+ $scope.dhis2Events[ev.trackedEntityInstance] = [ev];
+ }
+ ev = EventUtils.setEventOrgUnitName(ev);
+ }
}
});
$scope.reportStarted = false;
@@ -129,5 +123,87 @@
});
});
};
-
+
+ $scope.showEventDetails = function(dhis2Event, selectedTei){
+
+ var modalInstance = $modal.open({
+ templateUrl: 'components/report/event-details.html',
+ controller: 'EventDetailsController',
+ resolve: {
+ dhis2Event: function () {
+ return dhis2Event;
+ },
+ gridColumns: function(){
+ return $scope.gridColumns;
+ },
+ selectedTei: function(){
+ return selectedTei;
+ },
+ entityName: function(){
+ return $scope.selectedProgram.trackedEntity.name;
+ },
+ reportMode: function(){
+ return 'PROGRAM';
+ }
+ }
+ });
+
+ modalInstance.result.then({
+ });
+ };
+})
+
+//Controller for event details
+.controller('EventDetailsController',
+ function($scope,
+ $modalInstance,
+ orderByFilter,
+ ProgramStageFactory,
+ dhis2Event,
+ selectedTei,
+ gridColumns,
+ entityName,
+ reportMode){
+
+ $scope.selectedTei = selectedTei;
+ $scope.gridColumns = gridColumns;
+ $scope.entityName = entityName;
+ $scope.reportMode = reportMode;
+ $scope.currentEvent = dhis2Event;
+ $scope.currentEvent.providedElsewhere = [];
+
+ if(!angular.isUndefined( $scope.currentEvent.notes)){
+ $scope.currentEvent.notes = orderByFilter($scope.currentEvent.notes, '-storedDate');
+ angular.forEach($scope.currentEvent.notes, function(note){
+ note.storedDate = moment(note.storedDate).format('YYYY-MM-DD @ hh:mm A');
+ });
+ }
+
+ ProgramStageFactory.get($scope.currentEvent.programStage).then(function(stage){
+ $scope.currentStage = stage;
+
+ $scope.allowProvidedElsewhereExists = false;
+ angular.forEach($scope.currentStage.programStageDataElements, function(prStDe){
+ $scope.currentStage.programStageDataElements[prStDe.dataElement.id] = prStDe.dataElement;
+ if(prStDe.allowProvidedElsewhere){
+ $scope.allowProvidedElsewhereExists = true;
+ $scope.currentEvent.providedElsewhere[prStDe.dataElement.id] = '';
+ }
+ });
+ angular.forEach($scope.currentEvent.dataValues, function(dataValue){
+ var val = dataValue.value;
+ if(val){
+ var de = $scope.currentStage.programStageDataElements[dataValue.dataElement];
+ if( de && de.type === 'int' && val){
+ val = parseInt(val);
+ dataValue.value = val;
+ }
+ $scope.currentEvent[dataValue.dataElement] = val;
+ }
+ });
+ });
+
+ $scope.close = function () {
+ $modalInstance.close();
+ };
});
\ No newline at end of file
=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/upcoming-events.html'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/upcoming-events.html 2014-08-27 15:40:36 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/upcoming-events.html 2014-08-29 14:15:09 +0000
@@ -21,75 +21,19 @@
{{'upcoming_events' | translate}}
-
-
- {{'no_program_exists_report'| translate}}
-
-
-
-
- {{'please_select_program_report'| translate}}
-
-
+
+
-
+
- {{'no'| translate}} {{selectedProgram.trackedEntity.name|| 'records' | translate}} {{'found'| translate}}
+ {{'no_data_found'| translate}}
- {{'no'| translate}} {{selectedProgram.trackedEntity.name|| 'records' | translate}} {{'found'| translate}}
+ {{'no_data_found'| translate}}
@@ -100,38 +44,28 @@
{{selectedProgram.trackedEntity.name}} |
- {{selectedProgram.name}} {{'visit' | translate}} |
+ {{selectedProgram.name}} {{'upcoming_event'| translate}} |
-
+
{{gridColumn.name}}: {{tei[gridColumn.id]}}
|
-
- {{'no_visit_made' | translate}}
-
- {{ev.orgUnitName}}
-
- {{ev.name}}
- {{ev.eventDate}}
- {{'no_data' | translate}}
-
-
+ {{'no_visit_made'| translate}}
+
+ {{ev.orgUnitName}}
+
{{ev.name}}
- {{ev.eventDate}}
- {{'data_exists' | translate}}
-
-
-
+ {{ev.dueDate}}
+
+
+
|
@@ -140,4 +74,4 @@
-
+
\ No newline at end of file
=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/i18n/en.json'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/i18n/en.json 2014-08-29 12:39:37 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/i18n/en.json 2014-08-29 14:15:09 +0000
@@ -123,6 +123,7 @@
"upcoming_events_description": "Generate a report that lists tracked entity instances and their upcoming events that require attention. The events displayed are those that are scheduled in due time.",
"overdue_events": "Overdue Events",
"overdue_events_description": "Generate a report of overdue events for a selected program and organisation unit. The report displays list of tracked entity instances and their events that are not conducted on scheduled due dates.",
+ "upcoming_event": "Upcoming event",
"report": "Report",
"_report": "report",
"visit_schedule": "Visit Schedule",
=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/scripts/services.js'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/scripts/services.js 2014-08-29 12:39:37 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/scripts/services.js 2014-08-29 14:15:09 +0000
@@ -533,8 +533,15 @@
});
return promise;
},
- getByOrgUnitAndProgram: function(orgUnit, ouMode, program, startDate, endDate){
- var promise = $http.get( '../api/events.json?' + 'orgUnit=' + orgUnit + '&ouMode='+ ouMode + '&program=' + program + '&startDate=' + startDate + '&endDate=' + endDate + '&paging=false').then(function(response){
+ getByOrgUnitAndProgram: function(orgUnit, ouMode, program, startDate, endDate){
+ var url;
+ if(startDate && endDate){
+ url = '../api/events.json?' + 'orgUnit=' + orgUnit + '&ouMode='+ ouMode + '&program=' + program + '&startDate=' + startDate + '&endDate=' + endDate + '&paging=false';
+ }
+ else{
+ url = '../api/events.json?' + 'orgUnit=' + orgUnit + '&ouMode='+ ouMode + '&program=' + program + '&paging=false';
+ }
+ var promise = $http.get( url ).then(function(response){
return response.data.events;
});
return promise;
|