=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ajax/jsonOrganisationUnitTree.vm' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ajax/jsonOrganisationUnitTree.vm 2011-08-17 15:16:43 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ajax/jsonOrganisationUnitTree.vm 2011-08-17 15:46:00 +0000 @@ -2,6 +2,7 @@ "version":"$!encoder.jsonEncode( $version )" #if( ! $versionOnly ) ,"organisationUnits": { +"roots": [ #foreach( $root in $rootOrganisationUnits )$root.id#if( $velocityCount < $rootOrganisationUnits.size() ),#end#end ], #foreach( $unit in $organisationUnits ) "${unit.id}":{"id":${unit.id},"n":"${unit.name}",#if( $unit.parent )"pid":${unit.parent.id},#end"c":[#foreach( $child in $unit.sortedChildren )${child.id}#if( $velocityCount < $unit.children.size() ),#end#end]} #if( $velocityCount < $organisationUnits.size() ),#end#end === modified file 'dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/commons/action/GetOrganisationUnitTreeAction.java' --- dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/commons/action/GetOrganisationUnitTreeAction.java 2011-08-17 14:51:49 +0000 +++ dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/commons/action/GetOrganisationUnitTreeAction.java 2011-08-17 15:46:00 +0000 @@ -84,6 +84,13 @@ return organisationUnits; } + private List rootOrganisationUnits = new ArrayList(); + + public List getRootOrganisationUnits() + { + return rootOrganisationUnits; + } + private String version; public String getVersion() @@ -109,16 +116,17 @@ public String execute() throws Exception - { + { if ( !versionOnly ) { Collection userOrganisationUnits = new HashSet(); - + User user = currentUserService.getCurrentUser(); if ( user.getOrganisationUnits() != null && user.getOrganisationUnits().size() > 0 ) { userOrganisationUnits = new ArrayList( user.getOrganisationUnits() ); + rootOrganisationUnits = new ArrayList( user.getOrganisationUnits() ); } else { @@ -126,17 +134,20 @@ { userOrganisationUnits = new ArrayList( organisationUnitService.getRootOrganisationUnits() ); + rootOrganisationUnits = new ArrayList( + organisationUnitService.getRootOrganisationUnits() ); } else { userOrganisationUnits = new ArrayList(); + rootOrganisationUnits = new ArrayList(); } } for ( OrganisationUnit unit : userOrganisationUnits ) { organisationUnits.addAll( organisationUnitService.getOrganisationUnitWithChildren( unit.getId() ) ); - } + } } version = getVersionString();