=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/overdue-events-controller.js' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/overdue-events-controller.js 2015-10-21 12:04:23 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/overdue-events-controller.js 2015-11-23 14:50:42 +0000 @@ -97,44 +97,45 @@ $scope.reportStarted = true; $scope.overdueEvents = []; - EventReportService.getEventReport($scope.selectedOrgUnit.id, $scope.selectedOuMode, $scope.selectedProgram.id, null, null, 'ACTIVE','OVERDUE', $scope.pager).then(function(data){ - if( data.pager ){ - $scope.pager = data.pager; - $scope.pager.toolBarDisplay = 5; - - Paginator.setPage($scope.pager.page); - Paginator.setPageCount($scope.pager.pageCount); - Paginator.setPageSize($scope.pager.pageSize); - Paginator.setItemCount($scope.pager.total); - } - - angular.forEach(data.eventRows, function(row){ - var overdueEvent = {}; - angular.forEach(row.attributes, function(att){ - var val = AttributesFactory.formatAttributeValue(att, $scope.attributesById, $scope.optionSets, 'USER'); - overdueEvent[att.attribute] = val; + EventReportService.getEventReport($scope.selectedOrgUnit.id, $scope.selectedOuMode, $scope.selectedProgram.id, null, null, 'ACTIVE','OVERDUE', $scope.pager).then(function(data){ + if( data ) { + if( data.pager ){ + $scope.pager = data.pager; + $scope.pager.toolBarDisplay = 5; + + Paginator.setPage($scope.pager.page); + Paginator.setPageCount($scope.pager.pageCount); + Paginator.setPageSize($scope.pager.pageSize); + Paginator.setItemCount($scope.pager.total); + } + + angular.forEach(data.eventRows, function(row){ + var overdueEvent = {}; + angular.forEach(row.attributes, function(att){ + var val = AttributesFactory.formatAttributeValue(att, $scope.attributesById, $scope.optionSets, 'USER'); + overdueEvent[att.attribute] = val; + }); + + overdueEvent.dueDate = DateUtils.formatFromApiToUser(row.dueDate); + overdueEvent.event = row.event; + overdueEvent.eventName = $scope.programStages[row.programStage].name; + overdueEvent.orgUnitName = row.orgUnitName; + overdueEvent.followup = row.followup; + overdueEvent.program = row.program; + overdueEvent.programStage = row.programStage; + overdueEvent.trackedEntityInstance = row.trackedEntityInstance; + $scope.overdueEvents.push(overdueEvent); + }); - - overdueEvent.dueDate = DateUtils.formatFromApiToUser(row.dueDate); - overdueEvent.event = row.event; - overdueEvent.eventName = $scope.programStages[row.programStage].name; - overdueEvent.orgUnitName = row.orgUnitName; - overdueEvent.followup = row.followup; - overdueEvent.program = row.program; - overdueEvent.programStage = row.programStage; - overdueEvent.trackedEntityInstance = row.trackedEntityInstance; - $scope.overdueEvents.push(overdueEvent); - - }); - - //sort overdue events by their due dates - this is default - if(!$scope.sortColumn.id){ - $scope.sortGrid({id: 'dueDate', name: $translate('due_date'), valueType: 'date', displayInListNoProgram: false, showFilter: false, show: true}); - $scope.reverse = false; - } - + + //sort overdue events by their due dates - this is default + if(!$scope.sortColumn.id){ + $scope.sortGrid({id: 'dueDate', name: $translate('due_date'), valueType: 'date', displayInListNoProgram: false, showFilter: false, show: true}); + $scope.reverse = false; + } + } $scope.reportFinished = true; - $scope.reportStarted = false; + $scope.reportStarted = false; }); } }; === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/overdue-events.html' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/overdue-events.html 2015-10-21 12:04:23 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/overdue-events.html 2015-11-23 14:50:42 +0000 @@ -45,7 +45,7 @@
- + === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/program-statistics-controller.js' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/program-statistics-controller.js 2015-04-20 07:30:05 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/program-statistics-controller.js 2015-11-23 14:50:42 +0000 @@ -85,61 +85,66 @@ DateUtils.formatFromUserToApi($scope.report.startDate), DateUtils.formatFromUserToApi($scope.report.endDate)).then(function(data){ - $scope.totalEnrollment = data.enrollments.length; - angular.forEach(data.enrollments, function(en){ - $scope.enrollmentList[en.enrollment] = en; - if(en.status === 'ACTIVE'){ - $scope.enrollments.active++; - } - else if(en.status === 'COMPLETED'){ - $scope.enrollments.completed++; - } - else{ - $scope.enrollments.cancelled++; - } - }); - - $scope.enrollmentStat = [{key: 'Completed', y: $scope.enrollments.completed}, - {key: 'Active', y: $scope.enrollments.active}, - {key: 'Cancelled', y: $scope.enrollments.cancelled}]; - - DHIS2EventFactory.getByOrgUnitAndProgram($scope.selectedOrgUnit.id, $scope.selectedOuMode.name, $scope.selectedProgram.id, null, null).then(function(data){ - - $scope.dhis2Events = {completed: 0, active: 0, skipped: 0, overdue: 0, ontime: 0}; - $scope.totalEvents = 0; - angular.forEach(data, function(ev){ + if( data ) { + $scope.totalEnrollment = data.enrollments.length; + angular.forEach(data.enrollments, function(en){ + $scope.enrollmentList[en.enrollment] = en; + if(en.status === 'ACTIVE'){ + $scope.enrollments.active++; + } + else if(en.status === 'COMPLETED'){ + $scope.enrollments.completed++; + } + else{ + $scope.enrollments.cancelled++; + } + }); + + $scope.enrollmentStat = [{key: 'Completed', y: $scope.enrollments.completed}, + {key: 'Active', y: $scope.enrollments.active}, + {key: 'Cancelled', y: $scope.enrollments.cancelled}]; + + DHIS2EventFactory.getByOrgUnitAndProgram($scope.selectedOrgUnit.id, $scope.selectedOuMode.name, $scope.selectedProgram.id, null, null).then(function(data){ - if(ev.trackedEntityInstance && $scope.enrollmentList[ev.enrollment]){ - - $scope.totalEvents++; - if(ev.status === 'COMPLETED'){ - $scope.dhis2Events.completed++; - } - else if(ev.status === 'ACTIVE'){ - $scope.dhis2Events.active++; - } - else if(ev.status === 'SKIPPED'){ - $scope.dhis2Events.skipped++; - } - else{ - if(ev.dueDate && moment($scope.today).isAfter(DateUtils.formatFromApiToUser(ev.dueDate))){ - $scope.dhis2Events.overdue++; - } - else{ - $scope.dhis2Events.ontime++; - } - } + if( data ) { + $scope.dhis2Events = {completed: 0, active: 0, skipped: 0, overdue: 0, ontime: 0}; + $scope.totalEvents = 0; + angular.forEach(data, function(ev){ + + if(ev.trackedEntityInstance && $scope.enrollmentList[ev.enrollment]){ + + $scope.totalEvents++; + if(ev.status === 'COMPLETED'){ + $scope.dhis2Events.completed++; + } + else if(ev.status === 'ACTIVE'){ + $scope.dhis2Events.active++; + } + else if(ev.status === 'SKIPPED'){ + $scope.dhis2Events.skipped++; + } + else{ + if(ev.dueDate && moment($scope.today).isAfter(DateUtils.formatFromApiToUser(ev.dueDate))){ + $scope.dhis2Events.overdue++; + } + else{ + $scope.dhis2Events.ontime++; + } + } + } + }); + $scope.eventStat = [{key: 'Completed', y: $scope.dhis2Events.completed}, + {key: 'Active', y: $scope.dhis2Events.active}, + {key: 'Skipped', y: $scope.dhis2Events.skipped}, + {key: 'Ontime', y: $scope.dhis2Events.overdue}, + {key: 'Overdue', y: $scope.dhis2Events.ontime}]; } - }); - $scope.eventStat = [{key: 'Completed', y: $scope.dhis2Events.completed}, - {key: 'Active', y: $scope.dhis2Events.active}, - {key: 'Skipped', y: $scope.dhis2Events.skipped}, - {key: 'Ontime', y: $scope.dhis2Events.overdue}, - {key: 'Overdue', y: $scope.dhis2Events.ontime}]; - - $scope.reportStarted = false; - $scope.dataReady = true; - }); + }); + } + + $scope.reportStarted = false; + $scope.dataReady = true; + }); }; }); \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/program-statistics.html' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/program-statistics.html 2015-10-21 12:04:23 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/program-statistics.html 2015-11-23 14:50:42 +0000 @@ -17,6 +17,10 @@ {{'loading_tree'| translate}} + + + +
=== 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 2015-10-21 12:04:23 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/program-summary-controller.js 2015-11-23 14:50:42 +0000 @@ -97,28 +97,32 @@ $scope.pager).then(function(data){ $scope.dhis2Events = []; $scope.teiList = []; - angular.forEach(data.eventRows, function(ev){ - if(ev.trackedEntityInstance){ - ev.name = $scope.stagesById[ev.programStage].name; - ev.programName = $scope.selectedProgram.name; - ev.statusColor = EventUtils.getEventStatusColor(ev); - ev.eventDate = DateUtils.formatFromApiToUser(ev.eventDate); - - angular.forEach(ev.dataValues, function(dv){ - ev[dv.dataElement] = dv.value; - $scope.stagesById[ev.programStage].hasData = true; - }); - - angular.forEach(ev.attributes, function(att){ - ev[att.attribute] = att.value; - }); - - if($scope.teiList.indexOf(ev.trackedEntityInstance) === -1){ - $scope.teiList.push( ev.trackedEntityInstance ); + + if( data && data.eventRows ){ + angular.forEach(data.eventRows, function(ev){ + if(ev.trackedEntityInstance){ + ev.name = $scope.stagesById[ev.programStage].name; + ev.programName = $scope.selectedProgram.name; + ev.statusColor = EventUtils.getEventStatusColor(ev); + ev.eventDate = DateUtils.formatFromApiToUser(ev.eventDate); + + angular.forEach(ev.dataValues, function(dv){ + ev[dv.dataElement] = dv.value; + $scope.stagesById[ev.programStage].hasData = true; + }); + + angular.forEach(ev.attributes, function(att){ + ev[att.attribute] = att.value; + }); + + if($scope.teiList.indexOf(ev.trackedEntityInstance) === -1){ + $scope.teiList.push( ev.trackedEntityInstance ); + } + $scope.dhis2Events.push(ev); } - $scope.dhis2Events.push(ev); - } - }); + }); + } + $scope.reportStarted = false; $scope.dataReady = true; }); === 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 2015-05-18 17:05:23 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/program-summary.html 2015-11-23 14:50:42 +0000 @@ -1,18 +1,26 @@ -
- -
+ + + + +
+ + + +
- {{'loading_tree'| translate}} + + {{'in_progress'| translate}} + +
+ {{'loading_tree'| translate}} +
+ +
=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/reportForm.html' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/reportForm.html 2015-09-15 13:51:19 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/reportForm.html 2015-11-23 14:50:42 +0000 @@ -2,7 +2,7 @@
{{orgUnitLabel}}{{'org_unit' | translate}}
- + === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/upcoming-events-controller.js' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/upcoming-events-controller.js 2015-10-21 12:04:23 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/upcoming-events-controller.js 2015-11-23 14:50:42 +0000 @@ -94,43 +94,44 @@ DateUtils.formatFromUserToApi($scope.report.endDate), 'ACTIVE', 'SCHEDULE', - $scope.pager).then(function(data){ - - if( data.pager ){ - $scope.pager = data.pager; - $scope.pager.toolBarDisplay = 5; - - Paginator.setPage($scope.pager.page); - Paginator.setPageCount($scope.pager.pageCount); - Paginator.setPageSize($scope.pager.pageSize); - Paginator.setItemCount($scope.pager.total); - } - - angular.forEach(data.eventRows, function(row){ - var upcomingEvent = {}; - angular.forEach(row.attributes, function(att){ - var val = AttributesFactory.formatAttributeValue(att, $scope.attributesById, $scope.optionSets, 'USER'); - upcomingEvent[att.attribute] = val; + $scope.pager).then(function(data){ + if( data ) { + if( data.pager ){ + $scope.pager = data.pager; + $scope.pager.toolBarDisplay = 5; + + Paginator.setPage($scope.pager.page); + Paginator.setPageCount($scope.pager.pageCount); + Paginator.setPageSize($scope.pager.pageSize); + Paginator.setItemCount($scope.pager.total); + } + + angular.forEach(data.eventRows, function(row){ + var upcomingEvent = {}; + angular.forEach(row.attributes, function(att){ + var val = AttributesFactory.formatAttributeValue(att, $scope.attributesById, $scope.optionSets, 'USER'); + upcomingEvent[att.attribute] = val; + }); + + upcomingEvent.dueDate = DateUtils.formatFromApiToUser(row.dueDate); + upcomingEvent.event = row.event; + upcomingEvent.eventName = $scope.programStages[row.programStage].name; + upcomingEvent.eventOrgUnitName = row.eventOrgUnitName; + upcomingEvent.orgUnitName = row.eventOrgUnitName; + upcomingEvent.followup = row.followup; + upcomingEvent.program = row.program; + upcomingEvent.programStage = row.programStage; + upcomingEvent.trackedEntityInstance = row.trackedEntityInstance; + upcomingEvent.created = DateUtils.formatFromApiToUser(row.registrationDate);; + $scope.upcomingEvents.push(upcomingEvent); + }); - - upcomingEvent.dueDate = DateUtils.formatFromApiToUser(row.dueDate); - upcomingEvent.event = row.event; - upcomingEvent.eventName = $scope.programStages[row.programStage].name; - upcomingEvent.eventOrgUnitName = row.eventOrgUnitName; - upcomingEvent.orgUnitName = row.eventOrgUnitName; - upcomingEvent.followup = row.followup; - upcomingEvent.program = row.program; - upcomingEvent.programStage = row.programStage; - upcomingEvent.trackedEntityInstance = row.trackedEntityInstance; - upcomingEvent.created = DateUtils.formatFromApiToUser(row.registrationDate);; - $scope.upcomingEvents.push(upcomingEvent); - - }); - - //sort upcoming events by their due dates - this is default - if(!$scope.sortColumn.id){ - $scope.sortGrid({id: 'dueDate', name: $translate('due_date'), valueType: 'date', displayInListNoProgram: false, showFilter: false, show: true}); - $scope.reverse = false; + + //sort upcoming events by their due dates - this is default + if(!$scope.sortColumn.id){ + $scope.sortGrid({id: 'dueDate', name: $translate('due_date'), valueType: 'date', displayInListNoProgram: false, showFilter: false, show: true}); + $scope.reverse = false; + } } $scope.reportFinished = true; === 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 2015-10-21 12:04:23 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/upcoming-events.html 2015-11-23 14:50:42 +0000 @@ -45,7 +45,7 @@
{{orgUnitLabel}}{{'org_unit' | translate}}
- + === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/i18n/i18n_app.properties' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/i18n/i18n_app.properties 2015-11-17 13:20:40 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/i18n/i18n_app.properties 2015-11-23 14:50:42 +0000 @@ -276,6 +276,7 @@ no_enity_for_tracker_associate_attribute=Selected attribute has invalid tracked entity error=Error success=Success +unable_to_fetch_data_from_server=Unable to fetch data from server. access_denied=Access is Denied registration_complete=Registration is completed validation_error=Validation Error === 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 2015-11-22 18:47:25 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/scripts/services.js 2015-11-23 14:50:42 +0000 @@ -501,7 +501,7 @@ }) /* Service to deal with enrollment */ -.service('EnrollmentService', function($http, DateUtils) { +.service('EnrollmentService', function($http, DateUtils, DialogService, $translate) { var convertFromApiToUser = function(enrollment){ if(enrollment.enrollments){ @@ -539,6 +539,14 @@ getByEntityAndProgram: function( entity, program ){ var promise = $http.get( '../api/enrollments.json?ouMode=ACCESSIBLE&trackedEntityInstance=' + entity + '&program=' + program + '&paging=false').then(function(response){ return convertFromApiToUser(response.data); + }, function(response){ + if( response && response.data && response.data.status === 'ERROR'){ + var dialogOptions = { + headerText: response.data.status, + bodyText: response.data.message ? response.data.message : $translate.instant('unable_to_fetch_data_from_server') + }; + DialogService.showDialog({}, dialogOptions); + } }); return promise; }, @@ -912,7 +920,7 @@ }) /* factory for handling events */ -.factory('DHIS2EventFactory', function($http) { +.factory('DHIS2EventFactory', function($http, DialogService, $translate) { return { @@ -943,6 +951,14 @@ } var promise = $http.get( url ).then(function(response){ return response.data.events; + }, function(response){ + if( response && response.data && response.data.status === 'ERROR'){ + var dialogOptions = { + headerText: response.data.status, + bodyText: response.data.message ? response.data.message : $translate.instant('unable_to_fetch_data_from_server') + }; + DialogService.showDialog({}, dialogOptions); + } }); return promise; }, @@ -992,7 +1008,7 @@ }) /* factory for handling event reports */ -.factory('EventReportService', function($http) { +.factory('EventReportService', function($http, DialogService, $translate) { return { getEventReport: function(orgUnit, ouMode, program, startDate, endDate, programStatus, eventStatus, pager){ @@ -1021,6 +1037,14 @@ var promise = $http.get( url ).then(function(response){ return response.data; + }, function(response){ + if( response && response.data && response.data.status === 'ERROR'){ + var dialogOptions = { + headerText: response.data.status, + bodyText: response.data.message ? response.data.message : $translate.instant('unable_to_fetch_data_from_server') + }; + DialogService.showDialog({}, dialogOptions); + } }); return promise; }
{{orgUnitLabel}}{{'org_unit' | translate}}