← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 16734: optimized ouwt server sync, send all IDs in one request

 

------------------------------------------------------------
revno: 16734
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Wed 2014-09-17 17:16:52 +0700
message:
  optimized ouwt server sync, send all IDs in one request
modified:
  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ouwt/ouwt.js
  dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/ouwt/action/AddSelectedOrganisationUnitAction.java


--
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-commons-resources/src/main/webapp/dhis-web-commons/ouwt/ouwt.js'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ouwt/ouwt.js	2014-09-11 12:33:22 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ouwt/ouwt.js	2014-09-17 10:16:52 +0000
@@ -151,14 +151,14 @@
     };
 
     this.isSelected = function() {
-    	var ou = selection.getSelected();    	
+    	var ou = selection.getSelected();
     	return ou && ou.length > 0;
     };
-    
+
     this.setSelected = function( selected ) {
         sessionStorage[ OU_SELECTED_KEY ] = JSON.stringify( selected );
     };
-    
+
     this.selectedExists = function() {
         return sessionStorage[ OU_SELECTED_KEY ] != null;
     };
@@ -415,19 +415,21 @@
                 var selected = selection.getSelected();
 
                 if( multipleSelectionAllowed ) {
-                    var def = $.Deferred();
-                    var p = def.promise();
+                    var q = '';
 
                     $.each( selected, function( i, item ) {
-                        p = p.then(function() {
-                            return $.post(organisationUnitTreePath + "addorgunit.action", {
-                                id: item
-                            });
-                        });
-                    } );
-
-                    p.done(fn);
-                    def.resolve();
+                        q += "id=" + item;
+
+                        if( i < (selected.length - 1) ) {
+                            q += '&';
+                        }
+                    });
+
+                    $.ajax({
+                        url: organisationUnitTreePath + "addorgunit.action",
+                        data: q,
+                        type: 'POST'
+                    });
                 } else {
                     selected = $.isArray( selected ) ? selected[0] : selected;
 
@@ -571,7 +573,7 @@
 
     this.scrollToSelected = function() {
     	var ou = selection.getSelected();
-    	
+
     	if ( ou && ou.length ) {
     		$( "#orgUnitTree" ).scrollTop( 0 );
     		var tagId = "#" + getTagId( ou[0] );
@@ -581,7 +583,7 @@
     		$( "#orgUnitTree" ).animate( { scrollTop: offset }, 300 );
     	}
     };
-    
+
     this.findByName = function() {
         var name = $( '#searchField' ).val();
         var match;
@@ -625,7 +627,7 @@
             } );
         }
     };
-    
+
     this.enable = function() {
         $( "#orgUnitTree" ).show();
     };

=== modified file 'dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/ouwt/action/AddSelectedOrganisationUnitAction.java'
--- dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/ouwt/action/AddSelectedOrganisationUnitAction.java	2014-03-18 08:10:10 +0000
+++ dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/ouwt/action/AddSelectedOrganisationUnitAction.java	2014-09-17 10:16:52 +0000
@@ -28,13 +28,13 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-import java.util.Collection;
-
+import com.opensymphony.xwork2.Action;
 import org.hisp.dhis.organisationunit.OrganisationUnit;
 import org.hisp.dhis.organisationunit.OrganisationUnitService;
 import org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager;
 
-import com.opensymphony.xwork2.Action;
+import java.util.Collection;
+import java.util.List;
 
 /**
  * @author Torgeir Lorange Ostby
@@ -65,11 +65,11 @@
     // Input/output
     // -------------------------------------------------------------------------
 
-    private String id;
+    private List<String> id;
 
-    public void setId( String organisationUnitId )
+    public void setId( List<String> id )
     {
-        this.id = organisationUnitId;
+        this.id = id;
     }
 
     private Collection<OrganisationUnit> selectedUnits;
@@ -86,15 +86,20 @@
     public String execute()
         throws Exception
     {
-        OrganisationUnit unit = organisationUnitService.getOrganisationUnit( id );
+        selectedUnits = selectionManager.getSelectedOrganisationUnits();
 
-        if ( unit == null )
+        for ( String currentId : id )
         {
-            throw new RuntimeException( "OrganisationUnit with id " + id + " doesn't exist" );
+            OrganisationUnit unit = organisationUnitService.getOrganisationUnit( currentId );
+
+            if ( unit == null )
+            {
+                throw new RuntimeException( "OrganisationUnit with id " + id + " doesn't exist" );
+            }
+
+            selectedUnits.add( unit );
         }
 
-        selectedUnits = selectionManager.getSelectedOrganisationUnits();
-        selectedUnits.add( unit );
         selectionManager.setSelectedOrganisationUnits( selectedUnits );
 
         return SUCCESS;