← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 19448: event-capture: program indicators - WIP; some refactoring in meta-data fetching factory

 

------------------------------------------------------------
revno: 19448
committer: Abyot Asalefew Gizaw <abyota@xxxxxxxxx>
branch nick: dhis2
timestamp: Thu 2015-06-18 12:33:59 +0200
message:
  event-capture: program indicators - WIP; some refactoring in meta-data fetching factory
modified:
  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/event-capture.js
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/services.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-event-capture/scripts/controllers.js'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/controllers.js	2015-06-18 07:48:19 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/controllers.js	2015-06-18 10:33:59 +0000
@@ -16,9 +16,8 @@
                 SessionStorageService,
                 Paginator,
                 OptionSetService,
-                ProgramValidationService,
-                ProgramFactory,
-                ProgramStageFactory,                
+                MetaDataFactory,
+                ProgramFactory,                               
                 DHIS2EventFactory,
                 DHIS2EventService,
                 ContextMenuSelectedItem,                
@@ -87,7 +86,7 @@
             
             if($scope.optionSets.length < 1){
                 $scope.optionSets = [];
-                OptionSetService.getAll().then(function(optionSets){
+                MetaDataFactory.getAll('optionSets').then(function(optionSets){
                     angular.forEach(optionSets, function(optionSet){  
                         $scope.optionSets[optionSet.id] = optionSet;
                     });                    
@@ -145,7 +144,7 @@
                 $scope.selectedProgram.programStages[0].id){ 
                 
             //because this is single event, take the first program stage
-            ProgramStageFactory.get($scope.selectedProgram.programStages[0].id).then(function (programStage){
+            MetaDataFactory.get('programStages', $scope.selectedProgram.programStages[0].id).then(function (programStage){
 
                 $scope.selectedProgramStage = programStage;   
 
@@ -193,7 +192,7 @@
                 }
                 $scope.newDhis2Event.eventDate = '';
 
-                ProgramValidationService.getByProgram($scope.selectedProgram.id).then(function(pvs){
+                MetaDataFactory.getByProgram('programValidations', $scope.selectedProgram.id).then(function(pvs){
                     $scope.programValidations = pvs;
                     $scope.loadEvents();
                 });

=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/event-capture.js'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/event-capture.js	2015-06-17 11:50:16 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/event-capture.js	2015-06-18 10:33:59 +0000
@@ -32,7 +32,7 @@
 dhis2.ec.store = new dhis2.storage.Store({
     name: 'dhis2ec',
     adapters: [dhis2.storage.IndexedDBAdapter, dhis2.storage.DomSessionStorageAdapter, dhis2.storage.InMemoryAdapter],
-    objectStores: ['programs', 'programStages', 'geoJsons', 'optionSets', 'events', 'programValidations', 'programRules', 'programRuleVariables', 'ouLevels']
+    objectStores: ['programs', 'programStages', 'geoJsons', 'optionSets', 'events', 'programValidations', 'programRules', 'programRuleVariables', 'programIndicators', 'ouLevels']
 });
 
 (function($) {
@@ -152,6 +152,8 @@
     promise = promise.then( getProgramStages );
     promise = promise.then( getMetaProgramValidations );
     promise = promise.then( getProgramValidations );
+    promise = promise.then( getMetaProgramIndicators );
+    promise = promise.then( getProgramIndicators );
     promise = promise.then( getMetaProgramRules );
     promise = promise.then( getProgramRules );
     promise = promise.then( getMetaProgramRuleVariables );
@@ -480,6 +482,16 @@
     return getD2Objects( programValidations, 'programValidations', '../api/programValidations', 'fields=id,name,displayName,operator,rightSide[expression,description],leftSide[expression,description],program[id]');
 }
 
+function getMetaProgramIndicators( programs )
+{    
+    return getD2MetaObject(programs, 'programIndicators', '../api/programIndicators.json', 'paging=false&fields=id,program[id]');
+}
+
+function getProgramIndicators( programIndicators )
+{
+    return getD2Objects( programIndicators, 'programIndicators', '../api/programIndicators', 'fields=id,name,code,shortName,expression,displayDescription,rootDate,description,valueType,DisplayName,program[id,name]');
+}
+
 function getMetaProgramRules( programs )
 {    
     return getD2MetaObject(programs, 'programRules', '../api/programRules.json', 'paging=false&fields=id,program[id]');

=== 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-06-17 11:50:16 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/services.js	2015-06-18 10:33:59 +0000
@@ -1,4 +1,4 @@
-/* global angular */
+/* global angular, dhis2 */
 
 'use strict';
 
@@ -10,7 +10,7 @@
     var store = new dhis2.storage.Store({
         name: 'dhis2ec',
         adapters: [dhis2.storage.IndexedDBAdapter, dhis2.storage.DomSessionStorageAdapter, dhis2.storage.InMemoryAdapter],
-        objectStores: ['programs', 'programStages', 'geoJsons', 'optionSets', 'events', 'programValidations', 'programRules', 'programRuleVariables', 'ouLevels']
+        objectStores: ['programs', 'programStages', 'geoJsons', 'optionSets', 'events', 'programValidations', 'programRules', 'programRuleVariables', 'programIndicators', 'ouLevels']
     });
     return{
         currentStore: store
@@ -82,35 +82,8 @@
 })
 
 /* Factory to fetch optionSets */
-.factory('OptionSetService', function($q, $rootScope, ECStorageService) { 
+.factory('OptionSetService', function() { 
     return {
-        getAll: function(){
-            
-            var def = $q.defer();
-            
-            ECStorageService.currentStore.open().done(function(){
-                ECStorageService.currentStore.getAll('optionSets').done(function(optionSets){
-                    $rootScope.$apply(function(){
-                        def.resolve(optionSets);
-                    });                    
-                });
-            });            
-            
-            return def.promise;            
-        },
-        get: function(uid){
-            
-            var def = $q.defer();
-            
-            ECStorageService.currentStore.open().done(function(){
-                ECStorageService.currentStore.get('optionSets', uid).done(function(optionSet){                    
-                    $rootScope.$apply(function(){
-                        def.resolve(optionSet);
-                    });
-                });
-            });                        
-            return def.promise;            
-        },        
         getCode: function(options, key){
             if(options){
                 for(var i=0; i<options.length; i++){
@@ -135,39 +108,6 @@
     };
 })
 
-/* Factory to fetch geojsons */
-.factory('GeoJsonFactory', function($q, $rootScope, ECStorageService) { 
-    return {
-        getAll: function(){
-
-            var def = $q.defer();
-            
-            ECStorageService.currentStore.open().done(function(){
-                ECStorageService.currentStore.getAll('geoJsons').done(function(geoJsons){
-                    $rootScope.$apply(function(){
-                        def.resolve(geoJsons);
-                    });                    
-                });
-            });
-            
-            return def.promise;            
-        },
-        get: function(level){
-            
-            var def = $q.defer();
-            
-            ECStorageService.currentStore.open().done(function(){
-                ECStorageService.currentStore.get('geoJsons', level).done(function(geoJson){                    
-                    $rootScope.$apply(function(){
-                        def.resolve(geoJson);
-                    });
-                });
-            });                        
-            return def.promise;            
-        }
-    };
-})
-
 /* Factory to fetch programs */
 .factory('ProgramFactory', function($q, $rootScope, SessionStorageService, ECStorageService) {  
     
@@ -234,36 +174,16 @@
     };
 })
 
-/* Factory to fetch programStages */
-.factory('ProgramStageFactory', function($q, $rootScope, ECStorageService) {  
-    
-    return {        
-        get: function(uid){
-            
-            var def = $q.defer();
-            
-            ECStorageService.currentStore.open().done(function(){
-                ECStorageService.currentStore.get('programStages', uid).done(function(pst){                    
-                    $rootScope.$apply(function(){
-                        def.resolve(pst);
-                    });
-                });
-            });                        
-            return def.promise;            
-        }        
-    };        
-})
-
-/* Service to fetch and process programValidations */
-.service('ProgramValidationService', function($q, $rootScope, ECStorageService) {  
-    
-    return {        
-        get: function(uid){
-            
-            var def = $q.defer();
-            
-            ECStorageService.currentStore.open().done(function(){
-                ECStorageService.currentStore.get('programValidations', uid).done(function(pv){                    
+/* factory to fetch and process programValidations */
+.factory('MetaDataFactory', function($q, $rootScope, ECStorageService) {  
+    
+    return {        
+        get: function(store, uid){
+            
+            var def = $q.defer();
+            
+            ECStorageService.currentStore.open().done(function(){
+                ECStorageService.currentStore.get(store, uid).done(function(pv){                    
                     $rootScope.$apply(function(){
                         def.resolve(pv);
                     });
@@ -271,34 +191,34 @@
             });                        
             return def.promise;
         },
-        getByProgram: function(program){
+        getByProgram: function(store, program){
             var def = $q.defer();
-            var programValidations = [];
+            var obj = [];
             
             ECStorageService.currentStore.open().done(function(){
-                ECStorageService.currentStore.getAll('programValidations').done(function(pvs){   
+                ECStorageService.currentStore.getAll(store, program).done(function(pvs){   
                     angular.forEach(pvs, function(pv){
                         if(pv.program.id === program){                            
-                            programValidations.push(pv);                               
+                            obj.push(pv);                               
                         }                        
                     });
                     $rootScope.$apply(function(){
-                        def.resolve(programValidations);
+                        def.resolve(obj);
                     });
                 });                
             });            
             return def.promise;
         },
-        getExpression: function(str){
-            if( !str ){
-                return null;
-            }
-            
-            var expression = str.substring(1, str.length-1);
-            
-            if(expression){
-                
-            }
+        getAll: function(store){
+            var def = $q.defer();            
+            ECStorageService.currentStore.open().done(function(){
+                ECStorageService.currentStore.getAll(store).done(function(pvs){                       
+                    $rootScope.$apply(function(){
+                        def.resolve(pvs);
+                    });
+                });                
+            });            
+            return def.promise;
         }
     };        
 })