=== modified file 'dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/i18n/en.json' --- dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/i18n/en.json 2014-05-15 12:45:17 +0000 +++ dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/i18n/en.json 2014-05-15 17:16:31 +0000 @@ -3,6 +3,7 @@ "registering_unit": "Registering unit", "program": "Program", "please_select": "[Please Select]", + "please_select_a_program": "[Please select a program]", "not_selected": "Not Selected", "view_all": "[View All]", "list_all_entities": "List All Entities", === modified file 'dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/scripts/controllers.js' --- dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/scripts/controllers.js 2014-05-15 12:45:17 +0000 +++ dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/scripts/controllers.js 2014-05-15 17:16:31 +0000 @@ -39,7 +39,11 @@ $scope.emptySearchText = false; $scope.searchFilterExists = false; $scope.attributes = AttributesFactory.getWithoutProgram(); - $scope.searchMode = {listAll: 'LIST_ALL', freeText: 'FREE_TEXT', attributeBased: 'ATTRIBUTE_BASED'}; + $scope.searchMode = { + listAll: 'LIST_ALL', + freeText: 'FREE_TEXT', + attributeBased: 'ATTRIBUTE_BASED' + }; //Registration $scope.showRegistrationDiv = false; @@ -92,6 +96,7 @@ }; $scope.getProgramAttributes = function(program){ + $scope.trackedEntityList = null; $scope.selectedProgram = program; if($scope.selectedProgram){ $scope.attributes = AttributesFactory.getByProgram($scope.selectedProgram); @@ -102,20 +107,21 @@ }; $scope.search = function(mode){ - + $scope.emptySearchText = false; + $scope.emptySearchAttribute = false; + $scope.showSearchDiv = false; + $scope.showRegistrationDiv = false; + $scope.gridColumns = $scope.attributes; + $scope.trackedEntityList = null; + var queryUrl = null, programUrl = null, - attributeUrl = null; + attributeUrl = {url: null, hasValue: false}; if($scope.selectedProgram){ programUrl = 'program=' + $scope.selectedProgram.id; - } - - $scope.showSearchDiv = false; - $scope.showRegistrationDiv = false; - - $scope.gridColumns = $scope.attributes; + } //generate grid column for the selected program angular.forEach($scope.gridColumns, function(gridColumn){ @@ -126,9 +132,7 @@ } }); - if( mode === $scope.searchMode.freeText ){ - $scope.trackedEntityList = null; - + if( mode === $scope.searchMode.freeText ){ if(!$scope.searchText){ $scope.emptySearchText = true; return; @@ -138,22 +142,20 @@ queryUrl = 'query=' + $scope.searchText; } else if( mode === $scope.searchMode.attributeBased ){ - $scope.showTrackedEntityDiv = true; - + $scope.showTrackedEntityDiv = true; attributeUrl = EntityQueryFactory.getQueryForAttributes($scope.attributes); - + if(!attributeUrl.hasValue){ - console.log('empty search filter'); + $scope.emptySearchAttribute = true; + $scope.showSearchDiv = true; return; } } else if( mode === $scope.searchMode.listAll ){ - $scope.showTrackedEntityDiv = true; - $scope.trackedEntityList = null; + $scope.showTrackedEntityDiv = true; } - //(ouId, ouMode, queryUrl, programUrl, attributeUrl) - $scope.trackedEntityList = null; + //get events for the specified parameters TrackedEntityInstanceService.search($scope.selectedOrgUnit.id, $scope.ouMode, queryUrl, @@ -163,33 +165,6 @@ }); }; - //get events for the selected program (and org unit) - $scope.loadTrackedEntities = function(){ - - console.log('am I called...'); - - $scope.showTrackedEntityDiv = !$scope.showTrackedEntityDiv; - $scope.showSearchDiv = false; - $scope.showRegistrationDiv = false; - $scope.trackedEntityList = null; - - $scope.gridColumns = $scope.attributes; - - //generate grid column for the selected program - angular.forEach($scope.gridColumns, function(gridColumn){ - gridColumn.showFilter = false; - gridColumn.hide = false; - if(gridColumn.type === 'date'){ - $scope.filterText[gridColumn.id]= {start: '', end: ''}; - } - }); - - //Load entities for the selected orgunit - TrackedEntityInstanceService.getByOrgUnit($scope.selectedOrgUnit.id).then(function(data){ - $scope.trackedEntityList = data; - }); - }; - $scope.clearEntities = function(){ $scope.trackedEntityList = null; }; @@ -203,7 +178,9 @@ $scope.showSearch = function(){ $scope.showSearchDiv = !$scope.showSearchDiv; $scope.showRegistrationDiv = false; - $scope.showTrackedEntityDiv = false; + $scope.showTrackedEntityDiv = false; + $scope.selectedProgram = ''; + $scope.emptySearchAttribute = false; }; $scope.hideSearch = function(){ @@ -243,7 +220,7 @@ $scope.showDashboard = function(currentEntity){ SelectedEntity.setSelectedEntity(currentEntity); - storage.set('SELECTED_OU', $scope.selectedOrgUnit); + storage.set('SELECTED_OU', $scope.selectedOrgUnit); $location.path('/dashboard').search({selectedEntityId: currentEntity.id}); }; @@ -313,7 +290,7 @@ //selections $scope.selectedEntityId = ($location.search()).selectedEntityId; - $scope.selectedOrgUnit = storage.get('SELECTED_OU'); + $scope.selectedOrgUnit = storage.get('SELECTED_OU'); if( $scope.selectedEntityId ){ @@ -389,7 +366,7 @@ TranslationService.translate(); - //selected org unit + //selected org unit $scope.selectedOrgUnit = storage.get('SELECTED_OU'); //programs for enrollment === modified file 'dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/scripts/services.js' --- dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/scripts/services.js 2014-05-15 12:45:17 +0000 +++ dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/scripts/services.js 2014-05-15 17:16:31 +0000 @@ -152,14 +152,25 @@ }) /* Service for getting tracked entity instances */ -.factory('TrackedEntityInstanceService', function($http, AttributesFactory) { +.factory('TrackedEntityInstanceService', function($http, $filter) { var promise; return { get: function(entityUid) { - promise = $http.get( '../api/trackedEntityInstances/' + entityUid ).then(function(response){ - return response.data; + promise = $http.get( '../api/trackedEntityInstances/' + entityUid ).then(function(response){ + var tei = response.data; + + angular.forEach(tei.attributes, function(attribute){ + if(attribute.type && attribute.value){ + if(attribute.type === 'date'){ + attribute.value = moment(attribute.value, 'YYYY-MM-DD')._d; + attribute.value = Date.parse(attribute.value); + attribute.value = $filter('date')(attribute.value, 'yyyy-MM-dd'); + } + } + }); + return tei; }); return promise; }, @@ -338,50 +349,59 @@ }; }) -.service('EntityQueryFactory', function(){ - - var query = {url: null, hasValue: false}; +.service('EntityQueryFactory', function(){ this.getQueryForAttributes = function(attributes){ - angular.forEach(attributes, function(attribute){ - - //console.log('attribute', attribute.valueType); + var query = {url: null, hasValue: false}; + + angular.forEach(attributes, function(attribute){ - if(attribute.value && attribute.value !== ""){ - query.hasValue = true; + if(attribute.value && attribute.value !== ''){ + query.hasValue = true; if(angular.isArray(attribute.value)){ - var index = 0; - - angular.forEach(attribute.value, function(val){ - if(query.url){ - query.url = query.url + '&attribute=' + attribute.id + ':LIKE:' + val; + var index = 0, q = ''; + + angular.forEach(attribute.value, function(val){ + + if(index < attribute.value.length-1){ + q = q + val + ';'; } else{ - query.url = 'attribute=' + attribute.id + ':LIKE:' + val; - } + q = q + val; + } index++; }); + + if(query.url){ + if(q){ + query.url = query.url + '&filter=' + attribute.id + ':IN:' + q; + } + } + else{ + if(q){ + query.url = 'filter=' + attribute.id + ':IN:' + q; + } + } } else{ if(query.url){ - query.url = query.url + '&attribute=' + attribute.id + ':LIKE:' + attribute.value; + query.url = query.url + '&filter=' + attribute.id + ':LIKE:' + attribute.value; } else{ - query.url = 'attribute=' + attribute.id + ':LIKE:' + attribute.value; + query.url = 'filter=' + attribute.id + ':LIKE:' + attribute.value; } } } - else{ + /*else{ if(query.url){ - query.url = query.url + '&attribute=' + attribute.id; + query.url = query.url + '&filter=' + attribute.id; } else{ - query.url = 'attribute=' + attribute.id; + query.url = 'filter=' + attribute.id; } - } + }*/ }); - return query; }; }) @@ -605,6 +625,8 @@ }); + + /* * Helper functions */ === modified file 'dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/styles/style.css' --- dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/styles/style.css 2014-05-15 12:45:17 +0000 +++ dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/styles/style.css 2014-05-15 17:16:31 +0000 @@ -398,6 +398,10 @@ padding-right: 40px; } +.btn-no-border { + border: none !important; +} + .max-column-width { max-width:200px !important; word-wrap:break-word; === modified file 'dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/views/enrollment.html' --- dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/views/enrollment.html 2014-05-12 14:08:02 +0000 +++ dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/views/enrollment.html 2014-05-15 17:16:31 +0000 @@ -8,7 +8,7 @@ - +
- {{'program'| translate}} + {{'program'| translate}}{{selectedProgram.name}}
- + - +
-
- - - +
+
+ + +
+ + +
-
{{'search_input_required' | translate}}
+
{{'search_input_required'| translate}}
- + +
+
+ +
+
+
@@ -59,7 +71,7 @@
- +
@@ -67,7 +79,7 @@
- +
=== modified file 'dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/views/search.html' --- dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/views/search.html 2014-05-14 13:04:39 +0000 +++ dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/views/search.html 2014-05-15 17:16:31 +0000 @@ -10,7 +10,7 @@ {{'use_all_children'| translate}}
@@ -55,11 +55,17 @@
- + +
+
+
{{'search_input_required'| translate}}
+
+
+
- - + \ No newline at end of file