=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/controllers.js' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/controllers.js 2015-04-17 13:14:21 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/controllers.js 2015-04-22 07:45:28 +0000 @@ -98,7 +98,6 @@ $scope.loadPrograms = function() { $scope.resetOu = false; - $scope.selectedProgram = null; $scope.selectedProgramStage = null; $scope.programValidations = []; $scope.dhis2Events = []; @@ -115,13 +114,10 @@ if (angular.isObject($scope.selectedOrgUnit)) { - ProgramFactory.getAll().then(function(programs){ - $scope.programs = programs; - - if(angular.isObject($scope.programs) && $scope.programs.length === 1){ - $scope.selectedProgram = $scope.programs[0]; - $scope.getProgramDetails(); - } + ProgramFactory.getProgramsByOu($scope.selectedOrgUnit, $scope.selectedProgram).then(function(response){ + $scope.programs = response.programs; + $scope.selectedProgram = response.selectedProgram; + $scope.getProgramDetails(); }); } }; === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/services.js' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/services.js 2015-03-28 09:24:30 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/services.js 2015-04-22 07:45:28 +0000 @@ -179,28 +179,49 @@ }; return { - - getAll: function(){ + getProgramsByOu: function(ou, selectedProgram){ var roles = SessionStorageService.get('USER_ROLES'); var userRoles = roles && roles.userCredentials && roles.userCredentials.userRoles ? roles.userCredentials.userRoles : []; - var ou = SessionStorageService.get('SELECTED_OU'); var def = $q.defer(); ECStorageService.currentStore.open().done(function(){ ECStorageService.currentStore.getAll('programs').done(function(prs){ - var programs = []; - angular.forEach(prs, function(pr){ + var programs = []; + angular.forEach(prs, function(pr){ if(pr.organisationUnits.hasOwnProperty( ou.id ) && userHasValidRole(pr, userRoles)){ programs.push(pr); } }); + + if(programs.length === 0){ + selectedProgram = null; + } + else if(programs.length === 1){ + selectedProgram = programs[0]; + } + else{ + if(selectedProgram){ + var continueLoop = true; + for(var i=0; i