=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitService.java 2012-05-28 14:25:12 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitService.java 2012-10-31 17:24:33 +0000 @@ -239,25 +239,24 @@ Collection getOrganisationUnitsWithoutGroups(); /** - * Get the units which name are like the given name and are members of the - * given groups. If name or groups are null or empty they are ignored in the - * search. If name and groups are null an empty collection is returned. - * - * @param name the name. + * Returns all OrganisationUnit which names are like the given name, or which + * code or uid are equal the given name, and are within the given groups. + * + * @param query the query to match on name, code or uid. * @param groups the organisation unit groups. - * @return a collection of organisation units. + * @param limit the limit of returned objects. + * @return a collection of OrganisationUnits. */ Collection getOrganisationUnitsByNameAndGroups( String name, Collection groups, boolean limit ); /** - * Get the units which name are like the given name, are members of the - * given groups and children of the given parent organisation unit. If name - * or groups are null or empty they are ignored in the sarch. If name and - * groups are null an empty collection is returned. - * - * @param name the name. + * Returns all OrganisationUnit which names are like the given name, or which + * code or uid are equal the given name, and are within the given groups. + * + * @param query the query to match on name, code or uid. * @param groups the organisation unit groups. - * @return a collection of organisation units. + * @param limit the limit of returned objects. + * @return a collection of OrganisationUnits. */ Collection getOrganisationUnitsByNameAndGroups( String name, Collection groups, OrganisationUnit parent, boolean limit ); === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitStore.java 2012-05-24 05:13:57 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitStore.java 2012-10-31 17:24:33 +0000 @@ -72,7 +72,16 @@ */ Collection getOrganisationUnitsWithoutGroups(); - Collection getOrganisationUnitsByNameAndGroups( String name, Collection groups, boolean limit ); + /** + * Returns all OrganisationUnit which names are like the given name, or which + * code or uid are equal the given name, and are within the given groups. + * + * @param query the query to match on name, code or uid. + * @param groups the organisation unit groups. + * @param limit the limit of returned objects. + * @return a collection of OrganisationUnits. + */ + Collection getOrganisationUnitsByNameAndGroups( String query, Collection groups, boolean limit ); Map> getOrganisationUnitDataSetAssocationMap(); === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/DefaultOrganisationUnitService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/DefaultOrganisationUnitService.java 2012-09-26 04:56:05 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/DefaultOrganisationUnitService.java 2012-10-31 17:24:33 +0000 @@ -430,10 +430,10 @@ return organisationUnitStore.getOrganisationUnitsWithoutGroups(); } - public Collection getOrganisationUnitsByNameAndGroups( String name, + public Collection getOrganisationUnitsByNameAndGroups( String query, Collection groups, boolean limit ) { - return organisationUnitStore.getOrganisationUnitsByNameAndGroups( name, groups, limit ); + return organisationUnitStore.getOrganisationUnitsByNameAndGroups( query, groups, limit ); } @SuppressWarnings( "unchecked" ) === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/hibernate/HibernateOrganisationUnitStore.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/hibernate/HibernateOrganisationUnitStore.java 2012-05-24 05:13:57 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/hibernate/HibernateOrganisationUnitStore.java 2012-10-31 17:24:33 +0000 @@ -80,19 +80,19 @@ } @SuppressWarnings( "unchecked" ) - public Collection getOrganisationUnitsByNameAndGroups( String name, + public Collection getOrganisationUnitsByNameAndGroups( String query, Collection groups, boolean limit ) { boolean first = true; - name = StringUtils.trimToNull( name ); + query = StringUtils.trimToNull( query ); groups = CollectionUtils.isEmpty( groups ) ? null : groups; StringBuilder hql = new StringBuilder( "from OrganisationUnit o" ); - if ( name != null ) + if ( query != null ) { - hql.append( " where lower(name) like :name" ); + hql.append( " where ( lower(o.name) like :expression or o.code = :query or o.uid = :query )" ); first = false; } @@ -109,11 +109,12 @@ } } - Query query = sessionFactory.getCurrentSession().createQuery( hql.toString() ); - - if ( name != null ) + Query q = sessionFactory.getCurrentSession().createQuery( hql.toString() ); + + if ( query != null ) { - query.setString( "name", "%" + name.toLowerCase() + "%" ); + q.setString( "expression", "%" + query.toLowerCase() + "%" ); + q.setString( "query", query ); } if ( groups != null ) @@ -122,16 +123,16 @@ for ( OrganisationUnitGroup group : groups ) { - query.setEntity( "g" + i++, group ); + q.setEntity( "g" + i++, group ); } } if ( limit ) { - query.setMaxResults( OrganisationUnitService.MAX_LIMIT ); + q.setMaxResults( OrganisationUnitService.MAX_LIMIT ); } - return query.list(); + return q.list(); } public Map> getOrganisationUnitDataSetAssocationMap() === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-organisationunit/src/main/java/org/hisp/dhis/oum/action/search/SearchOrganisationUnitsAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-organisationunit/src/main/java/org/hisp/dhis/oum/action/search/SearchOrganisationUnitsAction.java 2012-01-25 17:11:43 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-organisationunit/src/main/java/org/hisp/dhis/oum/action/search/SearchOrganisationUnitsAction.java 2012-10-31 17:24:33 +0000 @@ -236,7 +236,8 @@ private Grid generateGrid() { final Grid orgUnitGrid = new ListGrid().setTitle( "Organisation unit search result" ); - + + orgUnitGrid.addHeader( new GridHeader( "Identifier", false, true ) ); orgUnitGrid.addHeader( new GridHeader( "Code", false, true ) ); orgUnitGrid.addHeader( new GridHeader( "Name", false, true ) ); @@ -249,6 +250,7 @@ { orgUnitGrid.addRow(); + orgUnitGrid.addValue( unit.getUid() ); orgUnitGrid.addValue( unit.getCode() ); orgUnitGrid.addValue( unit.getName() ); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-organisationunit/src/main/resources/org/hisp/dhis/oum/i18n_module.properties' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-organisationunit/src/main/resources/org/hisp/dhis/oum/i18n_module.properties 2012-10-31 08:31:37 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-organisationunit/src/main/resources/org/hisp/dhis/oum/i18n_module.properties 2012-10-31 17:24:33 +0000 @@ -99,4 +99,6 @@ select_group=Select group phone_number=Phone number select_symbol=Select symbol -symbol=Symbol \ No newline at end of file +symbol=Symbol +name_code_identifier=Name, code or identifier +identifier=Identifier \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-organisationunit/src/main/webapp/dhis-web-maintenance-organisationunit/organisationUnitSearch.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-organisationunit/src/main/webapp/dhis-web-maintenance-organisationunit/organisationUnitSearch.vm 2012-02-22 15:04:08 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-organisationunit/src/main/webapp/dhis-web-maintenance-organisationunit/organisationUnitSearch.vm 2012-10-31 17:24:33 +0000 @@ -25,7 +25,7 @@ - $i18n.getString( "name" ) + $i18n.getString( "name_code_identifier" ) #foreach( $groupSet in $groupSets ) @@ -47,15 +47,18 @@ - + + + + - + + @@ -77,6 +80,7 @@ + #foreach( $groupSet in $groupSets ) @@ -89,6 +93,7 @@ #foreach( $unit in $organisationUnits ) + #foreach( $groupSet in $groupSets )
$i18n.getString( "identifier" ) $i18n.getString( "code" ) $i18n.getString( "name" )
$!encoder.htmlEncode( $unit.uid ) $!encoder.htmlEncode( $unit.code ) $!encoder.htmlEncode( $unit.name )