dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #24957
[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() ) )