=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/filter/DefaultFilterService.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/filter/DefaultFilterService.java 2014-06-11 07:43:00 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/filter/DefaultFilterService.java 2014-06-11 09:59:34 +0000 @@ -132,7 +132,7 @@ return collectionNode; } - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") private ComplexNode buildObjectOutput( Map fieldMap, Object object ) { if ( object == null ) @@ -144,7 +144,7 @@ ComplexNode complexNode = new ComplexNode( schema.getName() ); complexNode.setNamespace( schema.getNamespace() ); - updateFields( fieldMap, object ); + updateFields( fieldMap, schema.getKlass() ); for ( String fieldKey : fieldMap.keySet() ) { @@ -164,7 +164,15 @@ } Map fieldValue = fieldMap.get( fieldKey ); - updateFields( fieldValue, returnValue ); + + if ( property.isCollection() ) + { + updateFields( fieldValue, property.getItemKlass() ); + } + else + { + updateFields( fieldValue, property.getKlass() ); + } if ( fieldValue.isEmpty() ) { @@ -258,22 +266,21 @@ return complexNode; } - private void updateFields( Map fieldMap, Object object ) + private void updateFields( Map fieldMap, Class klass ) { // we need two run this (at least) two times, since some of the presets might contain other presets - _updateFields( fieldMap, object, true ); - _updateFields( fieldMap, object, false ); + _updateFields( fieldMap, klass, true ); + _updateFields( fieldMap, klass, false ); } - private void _updateFields( Map fieldMap, Object object, boolean expandOnly ) + private void _updateFields( Map fieldMap, Class klass, boolean expandOnly ) { - Schema schema = schemaService.getDynamicSchema( object.getClass() ); - + Schema schema = schemaService.getDynamicSchema( klass ); List cleanupFields = Lists.newArrayList(); for ( String fieldKey : Sets.newHashSet( fieldMap.keySet() ) ) { - if ( fieldKey.equals( "*" ) ) + if ( "*".equals( fieldKey ) ) { for ( String mapKey : schema.getPropertyMap().keySet() ) { @@ -369,7 +376,7 @@ return complexNode; } - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") private boolean evaluateWithFilters( T object, Filters filters ) { Schema schema = schemaService.getDynamicSchema( object.getClass() ); === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DashboardController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DashboardController.java 2014-06-09 10:37:39 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DashboardController.java 2014-06-11 09:59:34 +0000 @@ -83,7 +83,6 @@ Dashboard dashboard = JacksonUtils.fromJson( input, Dashboard.class ); dashboardService.mergeDashboard( dashboard ); - dashboardService.saveDashboard( dashboard ); ContextUtils.createdResponse( response, "Dashboard created", DashboardSchemaDescriptor.API_ENDPOINT + "/" + dashboard.getUid() ); @@ -109,24 +108,6 @@ dashboardService.updateDashboard( dashboard ); } - @Override - @RequestMapping(value = "/{uid}", method = RequestMethod.DELETE) - @ResponseStatus(value = HttpStatus.NO_CONTENT) - public void deleteObject( HttpServletResponse response, HttpServletRequest request, @PathVariable("uid") String uid ) throws Exception - { - Dashboard dashboard = dashboardService.getDashboard( uid ); - - if ( dashboard == null ) - { - ContextUtils.notFoundResponse( response, "Dashboard does not exist: " + uid ); - return; - } - - dashboardService.deleteDashboard( dashboard ); - - ContextUtils.okResponse( response, "Dashboard deleted" ); - } - @RequestMapping(value = "/{uid}/items", method = RequestMethod.POST, consumes = "application/json") public void postJsonItem( HttpServletResponse response, HttpServletRequest request, InputStream input, @PathVariable String uid ) throws Exception