=== 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-12-30 13:04:58 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/i18n/i18n_app.properties 2016-01-06 09:00:50 +0000 @@ -384,9 +384,14 @@ value_not_unique=Value not unique custom_form_has_invalid_attribute=Custom form has invalid attribute. custom_form_has_invalid_dataelement=Custom form has invalid data element. +events_today_persons=Only those with an event today has_no_dataelements=has no dataelements. section=Section display_mode=Display mode tracker_capture_display_mode=Tracker capture display mode +events_today_all=All events today +events_today_completeoractive=Complete or active +events_today_skipped=Skipped +events_today_scheduled=Scheduled print_form=Print form -value_must_be_email=Please enter a valid email address \ No newline at end of file +value_must_be_email=Please enter a valid email address === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/i18n/i18n_app_ar.properties' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/i18n/i18n_app_ar.properties 2015-12-11 19:41:20 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/i18n/i18n_app_ar.properties 2016-01-06 09:00:50 +0000 @@ -263,4 +263,9 @@ help=\u0645\u0633\u0627\u0639\u062f\u0629 log_out=\u062a\u0633\u062c\u064a\u0644 \u062e\u0631\u0648\u062c about_dhis2=\u062d\u0648\u0644 DHIS 2 -value_must_be_email = \u064a\u062c\u0628 \u0623\u0646 \u062a\u0643\u0648\u0646 \u0642\u064a\u0645\u0629 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a(\u062c\u0648\u062c\u0644 \u062a\u0631\u062c\u0645\u0629) \ No newline at end of file +events_today_persons=\u0641\u0642\u0637 \u062a\u0644\u0643 \u0627\u0644\u062a\u064a \u062d\u062f\u062b \u0627\u0644\u064a\u0648\u0645(\u062c\u0648\u062c\u0644 \u062a\u0631\u062c\u0645\u0629) +events_today_all = \u062c\u0645\u064a\u0639 \u0623\u062d\u062f\u0627\u062b \u0627\u0644\u064a\u0648\u0645(\u062c\u0648\u062c\u0644 \u062a\u0631\u062c\u0645\u0629) +events_today_completeoractive = \u0643\u0627\u0645\u0644\u0629 \u0623\u0648 \u0646\u0634\u0627\u0637\u0627(\u062c\u0648\u062c\u0644 \u062a\u0631\u062c\u0645\u0629) +events_today_skipped = \u062a\u062e\u0637\u064a(\u062c\u0648\u062c\u0644 \u062a\u0631\u062c\u0645\u0629) +events_today_scheduled = \u0627\u0644\u0645\u0642\u0631\u0631(\u062c\u0648\u062c\u0644 \u062a\u0631\u062c\u0645\u0629) +value_must_be_email = \u064a\u062c\u0628 \u0623\u0646 \u062a\u0643\u0648\u0646 \u0642\u064a\u0645\u0629 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a(\u062c\u0648\u062c\u0644 \u062a\u0631\u062c\u0645\u0629) === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/scripts/controllers.js' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/scripts/controllers.js 2015-12-23 09:29:34 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/scripts/controllers.js 2016-01-06 09:00:50 +0000 @@ -25,10 +25,14 @@ EntityQueryFactory, CurrentSelection, TEIGridService, - TEIService) { - - + TEIService, + EventReportService, + ModalService,$q) { $scope.maxOptionSize = 30; + $scope.eventsTodayFilters = [{name: $translate.instant('events_today_all'), value: 'all'},{name: $translate.instant('events_today_completeoractive'),value: 'completedOrActive', status:['COMPLETED', 'ACTIVE']},{name: $translate.instant('events_today_skipped') , value: 'skipped', status:['SKIPPED']},{name: $translate.instant('events_today_scheduled'), value: 'scheduled', status:['SCHEDULE']}]; + $scope.selectedEventsTodayFilter = $scope.eventsTodayFilters[0]; + $scope.availablePrograms = {}; + $scope.model = {}; //Selection @@ -39,8 +43,8 @@ $scope.treeLoaded = false; $scope.searchOuTree = {open: true}; $scope.teiListMode = {onlyActive: false}; - $scope.enrollmentStatus = 'ALL'; - + $scope.enrollmentStatus = 'FIND'; + //Searching $scope.showSearchDiv = false; $scope.searchText = null; @@ -63,7 +67,6 @@ $scope.teiFetched = false; $scope.queryUrl = null; $scope.programUrl = null; - $scope.enrollmentStatus = 'ALL'; $scope.attributeUrl = {url: null, hasValue: false}; $scope.pager = {pageSize: 50, page: 1, toolBarDisplay: 5}; } @@ -72,7 +75,7 @@ $scope.$watch('selectedOrgUnit', function() { if( angular.isObject($scope.selectedOrgUnit)){ - + $scope.doSearch = true; $scope.searchingOrgUnit = $scope.selectedOrgUnit; SessionStorageService.set('SELECTED_OU', $scope.selectedOrgUnit); @@ -124,9 +127,12 @@ $scope.showHideLabel = $translate.instant('show_hide_columns'); $scope.listProgramsLabel = $translate.instant('list_programs'); $scope.settingsLabel = $translate.instant('settings'); + $scope.todayLabel = $translate.instant('events_today_persons'); + $scope.displayModeLabel = $translate.instant('display_mode'); resetParams(); + //$scope.doSearch = true; $scope.loadPrograms($scope.selectedOrgUnit); } }); @@ -185,12 +191,22 @@ $scope.doSearch = false; } + $scope.setEnrollmentStatus(); if($scope.doSearch && $scope.selectedProgram && $scope.selectedProgram.displayFrontPageList){ $scope.search($scope.searchMode); } }); }; + $scope.setEnrollmentStatus = function(){ + if($rootScope.enrollmentStatus){ + $scope.enrollmentStatus = $rootScope.enrollmentStatus; + $rootScope.enrollmentStatus = null; + }else if($scope.selectedProgram && $scope.selectedProgram.displayFrontPageList){ + $scope.enrollmentStatus = 'TODAY'; + } + }; + //sortGrid $scope.sortGrid = function(gridHeader){ if ($scope.sortColumn && $scope.sortColumn.id === gridHeader.id){ @@ -268,42 +284,81 @@ $scope.doSearch = false; $scope.fetchTeis(); }; + $scope.fetchTeisEventsToday = function(eventsTodayFilter){ + $scope.teiFetched = false; + $scope.selectedEventsTodayFilter = eventsTodayFilter; + $scope.trackedEntityList = null; + var today = DateUtils.getToday(); + var promises = []; + + if(!eventsTodayFilter.status){ + promises.push(EventReportService.getEventReport($scope.searchingOrgUnit.id,$scope.selectedOuMode.name, $scope.selectedProgram.id,today,today,'ACTIVE',null,$scope.pager)); + }else{ + angular.forEach(eventsTodayFilter.status, function(status){ + promises.push(EventReportService.getEventReport($scope.searchingOrgUnit.id,$scope.selectedOuMode.name, $scope.selectedProgram.id,today,today,'ACTIVE',status,$scope.pager)); + }); + } + $q.all(promises).then(function(data){ + $scope.trackedEntityList = { rows: {own:[]}}; + var ids = []; + angular.forEach(data, function(result){ + if(result.eventRows){ + angular.forEach(result.eventRows, function(eventRow){ + if(ids.indexOf(eventRow.trackedEntityInstance) === -1){ + var row = { id: eventRow.trackedEntityInstance}; + angular.forEach(eventRow.attributes, function(attr){ + row[attr.attribute] = attr.value; + }); + $scope.trackedEntityList.rows.own.push(row); + ids.push(eventRow.trackedEntityInstance); + + } + }); + } + }); + $scope.trackedEntityList.length = $scope.trackedEntityList.rows.own.length; + $scope.teiFetched = true; + }); + }; $scope.fetchTeis = function(){ - $scope.teiFetched = false; $scope.trackedEntityList = null; $scope.showTrackedEntityDiv = true; - - //get events for the specified parameters - TEIService.search($scope.searchingOrgUnit.id, - $scope.selectedOuMode.name, - $scope.queryUrl, - $scope.programUrl, - $scope.attributeUrl.url, - $scope.pager, - true).then(function(data){ - if( data && data.metaData && data.metaData.pager ){ - $scope.pager = data.metaData.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); - } - - //process tei grid - $scope.trackedEntityList = TEIGridService.format(data,false, $scope.optionSets, null); - - $scope.showSearchDiv = false; - $scope.teiFetched = true; - $scope.doSearch = true; - - if(!$scope.sortColumn.id){ - $scope.sortGrid({id: 'created', name: 'registration_date', valueType: 'date', displayInListNoProgram: false, showFilter: false, show: false}); - } - }); + $scope.eventsToday = false; + //get events for the specified parameters + if($scope.enrollmentStatus==='TODAY'){ + $scope.fetchTeisEventsToday($scope.selectedEventsTodayFilter); + }else{ + TEIService.search($scope.searchingOrgUnit.id, + $scope.selectedOuMode.name, + $scope.queryUrl, + $scope.programUrl, + $scope.attributeUrl.url, + $scope.pager, + true).then(function(data){ + if( data && data.metaData && data.metaData.pager ){ + $scope.pager = data.metaData.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); + } + + //process tei grid + $scope.trackedEntityList = TEIGridService.format(data,false, $scope.optionSets, null); + $scope.showSearchDiv = false; + $scope.teiFetched = true; + $scope.doSearch = true; + + if(!$scope.sortColumn.id){ + $scope.sortGrid({id: 'created', name: 'registration_date', valueType: 'date', displayInListNoProgram: false, showFilter: false, show: false}); + } + }); + + } }; $scope.jumpToPage = function(){ @@ -392,7 +447,8 @@ sortedTeiIds.push(tei.id); }); - CurrentSelection.setSortedTeiIds(sortedTeiIds); + CurrentSelection.setSortedTeiIds(sortedTeiIds); + $rootScope.enrollmentStatus = $scope.enrollmentStatus; $location.path('/dashboard').search({tei: currentEntity.id, program: $scope.selectedProgram ? $scope.selectedProgram.id: null}); }; @@ -409,7 +465,6 @@ o.hasChildren = o.children && o.children.length > 0 ? true : false; }); }); - $scope.selectedSearchingOrgUnit = $scope.orgUnits[0] ? $scope.orgUnits[0] : null; }); @@ -434,13 +489,15 @@ $scope.filterByEnrollmentStatus = function(status){ if(status !== $scope.enrollmentStatus){ - $scope.enrollmentStatus = status; + $scope.enrollmentStatus = status; if($scope.enrollmentStatus === 'ALL'){ - $scope.programUrl = 'program=' + $scope.selectedProgram.id; + $scope.programUrl = 'program=' + $scope.selectedProgram.id; + }else if($scope.enrollmentStatus ==='TODAY'){ + $scope.programUrl = 'program=' + $scope.selectedProgram.id + '&programStatus=' + $scope.enrollmentStatus; } else{ $scope.programUrl = 'program=' + $scope.selectedProgram.id + '&programStatus=' + $scope.enrollmentStatus; - } + } $scope.fetchTeis(); } }; === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/scripts/tracker-capture.js' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/scripts/tracker-capture.js 2015-12-24 11:47:36 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/scripts/tracker-capture.js 2016-01-06 09:00:50 +0000 @@ -287,7 +287,7 @@ return $.ajax( { url: '../api/programs.json', type: 'GET', - data: 'fields=id,name,type,version,displayFrontPageList,dataEntryMethod,enrollmentDateLabel,incidentDateLabel,displayIncidentDate,ignoreOverdueEvents,selectEnrollmentDatesInFuture,selectIncidentDatesInFuture,onlyEnrollOnce,externalAccess,displayOnAllOrgunit,registration,dataEntryForm[id,name,style,htmlCode,format],relationshipText,relationshipFromA,relatedProgram[id,name],relationshipType[id,name],trackedEntity[id,name,description],userRoles[id,name],organisationUnits[id,name],userRoles[id,name],programStages[id,name,sortOrder,version,dataEntryForm[id,name,style,htmlCode,format],captureCoordinates,blockEntryForm,autoGenerateEvent,allowGenerateNextVisit,generatedByEnrollmentDate,remindCompleted,hideDueDate,excecutionDateLabel,minDaysFromStart,repeatable,openAfterEnrollment,standardInterval,periodType,reportDateToUse,programStageSections[id,name,programStageDataElements[dataElement[id]]],programStageDataElements[displayInReports,allowProvidedElsewhere,allowFutureDate,compulsory,dataElement[id,code,name,description,formName,valueType,optionSetValue,optionSet[id]]]],programTrackedEntityAttributes[displayInList,mandatory,allowFutureDate,trackedEntityAttribute[id,unique]]&paging=false&filter=id:in:' + ids + data: 'fields=id,name,type,version,displayFrontPageList,dataEntryMethod,enrollmentDateLabel,incidentDateLabel,displayIncidentDate,ignoreOverdueEvents,selectEnrollmentDatesInFuture,selectIncidentDatesInFuture,onlyEnrollOnce,externalAccess,displayOnAllOrgunit,registration,dataEntryForm[id,name,style,htmlCode,format],relationshipText,relationshipFromA,relatedProgram[id,name],relationshipType[id,name],trackedEntity[id,name,description],userRoles[id,name],organisationUnits[id,name],userRoles[id,name],programStages[id,name,sortOrder,version,dataEntryForm[id,name,style,htmlCode,format],captureCoordinates,blockEntryForm,autoGenerateEvent,allowGenerateNextVisit,generatedByEnrollmentDate,remindCompleted,hideDueDate,excecutionDateLabel,minDaysFromStart,repeatable,openAfterEnrollment,standardInterval,periodType,reportDateToUse,programStageSections[id,name,programStageDataElements[dataElement[id]]],programStageDataElements[displayInReports,allowProvidedElsewhere,allowFutureDate,compulsory,dataElement[id,code,name,description,formName,valueType,optionSetValue,optionSet[id],dataElementGroups[id,name]]]],programTrackedEntityAttributes[displayInList,mandatory,allowFutureDate,trackedEntityAttribute[id,unique]]&paging=false&filter=id:in:' + ids }).done( function( response ){ if(response.programs){ === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/views/home.html' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/views/home.html 2015-12-28 20:34:02 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/views/home.html 2016-01-06 09:00:50 +0000 @@ -112,7 +112,6 @@ - @@ -127,11 +126,12 @@ - +
- + + === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/views/tei.html' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/views/tei.html 2015-12-28 20:34:02 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/views/tei.html 2016-01-06 09:00:50 +0000 @@ -1,6 +1,20 @@ +
+
+ +
+ + +
+
+
+
- {{'no'| translate}} {{selectedProgram.trackedEntity.name|| 'records' | translate}} {{'found'| translate}} + {{'no'| translate}} {{selectedProgram.trackedEntity.name|| 'records' | translate}} {{'found'| translate}}
@@ -93,8 +107,9 @@ - -
+
+ +
+ +
- -