← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 12287: don't generate deep links if its not needed (for basic/sharingBasic viewClass for now)

 

------------------------------------------------------------
revno: 12287
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Fri 2013-09-27 17:16:29 +0200
message:
  don't generate deep links if its not needed (for basic/sharingBasic viewClass for now)
modified:
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/AbstractCrudController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/event/PersonController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/event/ProgramController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/utils/WebUtils.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-api/src/main/java/org/hisp/dhis/api/controller/AbstractCrudController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/AbstractCrudController.java	2013-09-26 07:38:27 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/AbstractCrudController.java	2013-09-27 15:16:29 +0000
@@ -90,7 +90,14 @@
 
         ReflectionUtils.invokeSetterMethod( ExchangeClasses.getAllExportMap().get( getEntityClass() ), metaData, entityList );
 
-        handleLinksAndAccess( options, metaData, entityList );
+        if ( options.getViewClass( "basic" ).equals( "basic" ) )
+        {
+            handleLinksAndAccess( options, metaData, entityList, false );
+        }
+        else
+        {
+            handleLinksAndAccess( options, metaData, entityList, true );
+        }
 
         postProcessEntities( entityList );
         postProcessEntities( entityList, options, parameters );
@@ -110,13 +117,22 @@
 
         ReflectionUtils.invokeSetterMethod( ExchangeClasses.getAllExportMap().get( getEntityClass() ), metaData, entityList );
 
-        handleLinksAndAccess( options, metaData, entityList );
+        String viewClass = options.getViewClass( "basic" );
+
+        if ( viewClass.equals( "basic" ) || viewClass.equals( "sharingBasic" ) )
+        {
+            handleLinksAndAccess( options, metaData, entityList, false );
+        }
+        else
+        {
+            handleLinksAndAccess( options, metaData, entityList, true );
+        }
 
         postProcessEntities( entityList );
         postProcessEntities( entityList, options, parameters );
 
         model.addAttribute( "model", metaData );
-        model.addAttribute( "viewClass", options.getViewClass( "basic" ) );
+        model.addAttribute( "viewClass", viewClass );
 
         return StringUtils.uncapitalize( getEntitySimpleName() ) + "List";
     }
@@ -177,7 +193,7 @@
 
         return StringUtils.uncapitalize( getEntitySimpleName() );
     }
-    
+
     //--------------------------------------------------------------------------
     // POST
     //--------------------------------------------------------------------------
@@ -312,7 +328,7 @@
 
         return entityList;
     }
-    
+
     protected List<T> queryForList( Class<T> clazz, String query )
     {
         return new ArrayList<T>( manager.filter( getEntityClass(), query ) );
@@ -336,11 +352,11 @@
         ((BaseIdentifiableObject) object).setAccess( access );
     }
 
-    protected void handleLinksAndAccess( WebOptions options, WebMetaData metaData, List<T> entityList )
+    protected void handleLinksAndAccess( WebOptions options, WebMetaData metaData, List<T> entityList, boolean deep )
     {
         if ( options != null && options.hasLinks() )
         {
-            WebUtils.generateLinks( metaData );
+            WebUtils.generateLinks( metaData, deep );
         }
 
         if ( entityList != null && SharingUtils.isSupported( getEntityClass() ) )

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/event/PersonController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/event/PersonController.java	2013-09-27 13:56:18 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/event/PersonController.java	2013-09-27 15:16:29 +0000
@@ -59,6 +59,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.util.Date;
 import java.util.Map;
 
 /**

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/event/ProgramController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/event/ProgramController.java	2013-09-26 08:03:57 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/event/ProgramController.java	2013-09-27 15:16:29 +0000
@@ -45,7 +45,7 @@
  * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
  */
 @Controller
-@RequestMapping(value = ProgramController.RESOURCE_PATH)
+@RequestMapping( value = ProgramController.RESOURCE_PATH )
 public class ProgramController
     extends AbstractCrudController<Program>
 {

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/utils/WebUtils.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/utils/WebUtils.java	2013-08-23 16:00:30 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/utils/WebUtils.java	2013-09-27 15:16:29 +0000
@@ -52,6 +52,11 @@
 
     public static void generateLinks( WebMetaData metaData )
     {
+        generateLinks( metaData, true );
+    }
+
+    public static void generateLinks( WebMetaData metaData, boolean deep )
+    {
         Class<?> baseType = null;
         Collection<Field> fields = ReflectionUtils.collectFields( metaData.getClass(), alwaysTrue );
 
@@ -73,7 +78,7 @@
 
                     for ( Object object : objects )
                     {
-                        generateLinks( object );
+                        generateLinks( object, deep );
                     }
                 }
             }
@@ -116,8 +121,13 @@
         }
     }
 
+    public static void generateLinks( Object object )
+    {
+        generateLinks( object, true );
+    }
+
     @SuppressWarnings( "unchecked" )
-    public static void generateLinks( Object object )
+    public static void generateLinks( Object object, boolean deep )
     {
         if ( IdentifiableObject.class.isAssignableFrom( object.getClass() ) )
         {
@@ -127,6 +137,11 @@
 
         Collection<Field> fields = ReflectionUtils.collectFields( object.getClass(), alwaysTrue );
 
+        if ( !deep )
+        {
+            return;
+        }
+
         for ( Field field : fields )
         {
             if ( IdentifiableObject.class.isAssignableFrom( field.getType() ) )