← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 18539: tracker-capture: bug fix in synching widgets when program/enrollment is selected/canceled

 

------------------------------------------------------------
revno: 18539
committer: Abyot Asalefew Gizaw <abyota@xxxxxxxxx>
branch nick: dhis2
timestamp: Mon 2015-03-09 16:56:34 +0100
message:
  tracker-capture: bug fix in synching widgets when program/enrollment is selected/canceled
modified:
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dashboard/dashboard-controller.js
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry-controller.js
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry.html
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/enrollment/enrollment-controller.js
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/notes/notes-controller.js
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/profile/profile-controller.js


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dashboard/dashboard-controller.js'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dashboard/dashboard-controller.js	2015-03-06 16:27:25 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dashboard/dashboard-controller.js	2015-03-09 15:56:34 +0000
@@ -199,6 +199,8 @@
                 $scope.selectedProgram = pr;
             }
         });
+        
+        $scope.applySelectedProgram();
     }); 
     
     //watch for widget sorting    

=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry-controller.js'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry-controller.js	2015-03-06 09:37:05 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry-controller.js	2015-03-09 15:56:34 +0000
@@ -61,8 +61,7 @@
         $scope.optionSets = selections.optionSets;
         
         $scope.selectedProgramWithStage = [];        
-        if($scope.selectedOrgUnit && $scope.selectedProgram && $scope.selectedEntity && $scope.selectedEnrollment){
-
+        if($scope.selectedOrgUnit && $scope.selectedProgram && $scope.selectedProgram.id && $scope.selectedEntity && $scope.selectedEnrollment && $scope.selectedEnrollment.enrollment){            
             ProgramStageFactory.getByProgram($scope.selectedProgram).then(function(stages){
                 $scope.programStages = stages;
                 angular.forEach(stages, function(stage){

=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry.html'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry.html	2015-03-03 16:55:58 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/dataentry/dataentry.html	2015-03-09 15:56:34 +0000
@@ -24,7 +24,7 @@
             </table>
         </div>
 
-        <div class="table-responsive" ng-if="selectedEnrollment">
+        <div class="table-responsive" ng-if="selectedEnrollment && selectedEnrollment.enrollment">
             <table class="table table-bordered">
                 <thead>
                     <tr>
@@ -40,8 +40,7 @@
                                     <a href title="{{'filter'| translate}}"><i class="fa fa-search"></i></a>
                                 </span>                                                    
                             </span>
-                            <!-- event add/filter icon ends -->                           
-
+                            <!-- event add/filter icon ends -->
                         </th>
                     </tr>
                 </thead>
@@ -63,7 +62,8 @@
                 </tbody>                
             </table>
         </div>
-        <div ng-if="!selectedEnrollment" class="alert alert-danger">{{'not_yet_enrolled_data_entry'| translate}}</div>
+        
+        <div ng-if="!selectedEnrollment || !selectedEnrollment.enrollment" class="alert alert-danger">{{'not_yet_enrolled_data_entry'| translate}}</div>
 
         <form name="outerForm" novalidate>
             <div ng-if="currentEvent">

=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/enrollment/enrollment-controller.js'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/enrollment/enrollment-controller.js	2015-03-09 14:38:11 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/enrollment/enrollment-controller.js	2015-03-09 15:56:34 +0000
@@ -17,9 +17,7 @@
                 DialogService) {
     
     $scope.today = DateUtils.getToday();
-    $scope.selectedOrgUnit = storage.get('SELECTED_OU');
-    
-    
+    $scope.selectedOrgUnit = storage.get('SELECTED_OU');    
     
     //listen for the selected items
     var selections = {};
@@ -88,10 +86,11 @@
         $scope.showEnrollmentHistoryDiv = false;
         $scope.selectedEnrollment = enrollment;
         
-        if(!$scope.selectedEnrollment.enrollment){//prepare for possible enrollment
-            AttributesFactory.getByProgram($scope.selectedProgram).then(function(atts){
-                $scope.attributes = atts;                
-                $scope.customFormExists = false;               
+        AttributesFactory.getByProgram($scope.selectedProgram).then(function(atts){
+            $scope.attributes = atts;                
+            $scope.customFormExists = false;    
+            
+            if($scope.selectedProgram && $scope.selectedProgram.id){
                 TEFormService.getByProgram($scope.selectedProgram, atts).then(function(teForm){                    
                     if(angular.isObject(teForm)){                        
                         $scope.customFormExists = true;
@@ -100,22 +99,16 @@
                     }
                     $scope.broadCastSelections('dashboardWidgets');
                 });
-            });                
-        }
-        else{
-            $scope.broadCastSelections('dashboardWidgets');
-        }
+            }
+            else{
+                $scope.broadCastSelections('dashboardWidgets');
+            }            
+        });
     };
         
-    $scope.showNewEnrollment = function(){       
-        if($scope.showEnrollmentDiv){
-            $scope.hideEnrollmentDiv();
-        }
-       
+    $scope.showNewEnrollment = function(){
+        
         $scope.showEnrollmentDiv = !$scope.showEnrollmentDiv;
-        $timeout(function() { 
-            $rootScope.$broadcast('enrollmentEditing', {enrollmentEditing: $scope.showEnrollmentDiv});
-        }, 100);        
         
         if($scope.showEnrollmentDiv){            
             $scope.showEnrollmentHistoryDiv = false;
@@ -123,18 +116,9 @@
             //load new enrollment details
             $scope.selectedEnrollment = {};            
             $scope.loadEnrollmentDetails($scope.selectedEnrollment);
-            
-            //check custom form for enrollment
-            $scope.customFormExists = false;
-            $scope.registrationForm = '';
-            TEFormService.getByProgram($scope.selectedProgram, $scope.attributes).then(function(teForm){
-                if(angular.isObject(teForm)){
-                    $scope.customFormExists = true;
-                    $scope.registrationForm = teForm;
-                }                
-                $scope.customFormExists = $scope.customFormExists ? true:false;
-                $scope.broadCastSelections('dashboardWidgets');
-            });            
+        }
+        else{
+            hideEnrollmentDiv();
         }
     };
        
@@ -224,15 +208,15 @@
     $scope.broadCastSelections = function(listeners){
         var selections = CurrentSelection.get();
         var tei = selections.tei;
-        var pr = selections.pr;;
-        var enrollment = null;      
-        if($scope.selectedEnrollment && $scope.selectedEnrollment.enrollment){
-            enrollment = $scope.selectedEnrollment;
-        }
-        CurrentSelection.set({tei: tei, te: $scope.selectedEntity, prs: $scope.programs, pr: pr, prNames: $scope.programNames, prStNames: $scope.programStageNames, enrollments: $scope.enrollments, selectedEnrollment: enrollment, optionSets: $scope.optionSets});
+        
+        CurrentSelection.set({tei: tei, te: $scope.selectedEntity, prs: $scope.programs, pr: $scope.selectedProgram, prNames: $scope.programNames, prStNames: $scope.programStageNames, enrollments: $scope.enrollments, selectedEnrollment: $scope.selectedEnrollment, optionSets: $scope.optionSets});
         $timeout(function() { 
             $rootScope.$broadcast(listeners, {});
         }, 100);
+        
+        $timeout(function() { 
+            $rootScope.$broadcast('enrollmentEditing', {enrollmentEditing: $scope.showEnrollmentDiv});
+        }, 100);
     };    
     
     var getProcessedForm = function(){        
@@ -257,7 +241,7 @@
         delete $scope.selectedTei.attributes;
     };
     
-    $scope.hideEnrollmentDiv = function(){
+    var hideEnrollmentDiv = function(){
         
         /*currently the only way to cancel enrollment window is by going through
          * the main dashboard controller. Here I am mixing program and programId, 

=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/notes/notes-controller.js'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/notes/notes-controller.js	2015-01-05 10:20:46 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/notes/notes-controller.js	2015-03-09 15:56:34 +0000
@@ -19,12 +19,11 @@
     
     $scope.$on('dashboardWidgets', function() {
         $scope.selectedEnrollment = null;
-        var selections = CurrentSelection.get();                    
-        $scope.selectedTei = angular.copy(selections.tei);
-        $scope.selectedProgram = selections.pr;
+        var selections = CurrentSelection.get();
+        $scope.selectedTei = selections.tei;
         
         var selections = CurrentSelection.get();
-        if(selections.selectedEnrollment){
+        if(selections.selectedEnrollment && selections.selectedEnrollment.enrollment){
             EnrollmentService.get(selections.selectedEnrollment.enrollment).then(function(data){    
                 $scope.selectedEnrollment = data;   
                 if(!angular.isUndefined( $scope.selectedEnrollment.notes)){

=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/profile/profile-controller.js'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/profile/profile-controller.js	2015-03-06 14:43:54 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/profile/profile-controller.js	2015-03-09 15:56:34 +0000
@@ -10,6 +10,7 @@
     
     $scope.editingDisabled = true;
     $scope.enrollmentEditing = false;
+    $scope.widget = 'PROFILE';
     
     //listen for the selected entity
     var selections = {};
@@ -24,7 +25,7 @@
         $scope.customForm = null;
         $scope.attributes = [];
         $scope.attributesById = CurrentSelection.getAttributesById();
-
+        
         //display only those attributes that belong to the selected program
         //if no program, display attributesInNoProgram        
         angular.forEach($scope.selectedTei.attributes, function(att){
@@ -34,15 +35,17 @@
         delete $scope.selectedTei.attributes;
         
         AttributesFactory.getByProgram($scope.selectedProgram).then(function(atts){
-            $scope.attributes = atts;            
-            $scope.customFormExists = false;               
-            TEFormService.getByProgram($scope.selectedProgram, atts).then(function(teForm){                    
-                if(angular.isObject(teForm)){                        
-                    $scope.customFormExists = true;
-                    $scope.trackedEntityForm = teForm;
-                    $scope.customForm = CustomFormService.getForTrackedEntity($scope.trackedEntityForm, 'PROFILE');
-                }                    
-            });            
+            $scope.attributes = atts;          
+            $scope.customFormExists = false;
+            if($scope.selectedProgram && $scope.selectedProgram.id){
+                TEFormService.getByProgram($scope.selectedProgram, atts).then(function(teForm){                    
+                    if(angular.isObject(teForm)){                        
+                        $scope.customFormExists = true;
+                        $scope.trackedEntityForm = teForm;
+                        $scope.customForm = CustomFormService.getForTrackedEntity($scope.trackedEntityForm, 'PROFILE');
+                    }                    
+                }); 
+            }           
         });
     });