------------------------------------------------------------ revno: 11012 committer: Lars Helge Ă˜verland <larshe...@gmail.com> branch nick: dhis2 timestamp: Mon 2013-05-27 13:07:26 +0200 message: Added resource table _dataelementcategoryoptioncombo which holds data elements and relevant option combos. Using it to improve peformance in analytics queries. modified: dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementService.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementStore.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/expression/ExpressionService.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/resourcetable/ResourceTableService.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/resourcetable/ResourceTableStore.java dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/DefaultResourceTableService.java dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/jdbc/JdbcResourceTableStore.java dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementService.java dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/hibernate/HibernateDataElementStore.java dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/expression/DefaultExpressionService.java dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/expression/ExpressionServiceTest.java dhis-2/dhis-web/dhis-web-api/src/main/resources/templates/html/indicator.xsl dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/resourcetable/GenerateResourceTableAction.java dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/javascript/resourceTable.js dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/resourceTableForm.vm
-- 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-api/src/main/java/org/hisp/dhis/dataelement/DataElementService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementService.java 2013-03-07 14:10:37 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementService.java 2013-05-27 11:07:26 +0000 @@ -30,6 +30,7 @@ import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.Set; import org.hisp.dhis.common.ListMap; import org.hisp.dhis.dataset.DataSet; @@ -290,9 +291,10 @@ * Returns a mapping of data element uid and associated category option combo * uids. * + * @param dataElementUids the uids of the data elements to include in the map. * @return a ListMap. */ - ListMap<String, String> getDataElementCategoryOptionComboMap(); + ListMap<String, String> getDataElementCategoryOptionComboMap( Set<String> dataElementUids ); Map<String, Integer> getDataElementUidIdMap(); === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementStore.java 2013-03-07 14:10:37 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementStore.java 2013-05-27 11:07:26 +0000 @@ -28,6 +28,7 @@ */ import java.util.Collection; +import java.util.Set; import org.hisp.dhis.common.GenericNameableObjectStore; import org.hisp.dhis.common.ListMap; @@ -171,9 +172,10 @@ * Returns a mapping of data element uid and associated category option combo * uids. * + * @param dataElementUids the uids of the data elements to include in the map. * @return a ListMap. */ - ListMap<String, String> getDataElementCategoryOptionComboMap(); + ListMap<String, String> getDataElementCategoryOptionComboMap( Set<String> dataElementUids ); Collection<DataElement> get( DataSet dataSet, String key, Integer max ); } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/expression/ExpressionService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/expression/ExpressionService.java 2013-05-10 12:07:51 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/expression/ExpressionService.java 2013-05-27 11:07:26 +0000 @@ -68,11 +68,13 @@ final String OPERAND_EXPRESSION = "#\\{(\\w+)\\.?(\\w*)\\}"; final String OPERAND_UID_EXPRESSION = "(\\w+)\\.?(\\w*)"; + final String DATA_ELEMENT_TOTAL_EXPRESSION = "#\\{(\\w+)\\}"; final String CONSTANT_EXPRESSION = "C\\{(\\w+)\\}"; final String DAYS_EXPRESSION = "\\[days\\]"; final Pattern OPERAND_PATTERN = Pattern.compile( OPERAND_EXPRESSION ); final Pattern OPERAND_UID_PATTERN = Pattern.compile( OPERAND_UID_EXPRESSION ); + final Pattern DATA_ELEMENT_TOTAL_PATTERN = Pattern.compile( DATA_ELEMENT_TOTAL_EXPRESSION ); final Pattern CONSTANT_PATTERN = Pattern.compile( CONSTANT_EXPRESSION ); final Pattern DAYS_PATTERN = Pattern.compile( DAYS_EXPRESSION ); @@ -134,6 +136,14 @@ Map<String, Double> constantMap, Integer days ); /** + * Returns the uids of the data element totals in the given expression. + * + * @param expression the expression. + * @return a set of data element uids. + */ + Set<String> getDataElementTotalUids( String expression ); + + /** * Returns all DataElements included in the given expression string. * * @param expression the expression string. === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/resourcetable/ResourceTableService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/resourcetable/ResourceTableService.java 2013-03-01 17:59:05 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/resourcetable/ResourceTableService.java 2013-05-27 11:07:26 +0000 @@ -29,7 +29,6 @@ /** * @author Lars Helge Overland - * @version $Id: ResourceTableService.java 5459 2008-06-26 01:12:03Z larshelg $ */ public interface ResourceTableService { @@ -81,4 +80,10 @@ * Generates a resource table for all periods. */ void generatePeriodTable(); + + /** + * Generates a resource table for all data elements and relevant category + * option combinations. + */ + void generateDataElementCategoryOptionComboTable(); } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/resourcetable/ResourceTableStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/resourcetable/ResourceTableStore.java 2013-03-05 10:28:10 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/resourcetable/ResourceTableStore.java 2013-05-27 11:07:26 +0000 @@ -45,7 +45,7 @@ final String TABLE_NAME_ORGANISATION_UNIT_STRUCTURE = "_orgunitstructure"; final String TABLE_NAME_DATA_ELEMENT_STRUCTURE = "_dataelementstructure"; final String TABLE_NAME_PERIOD_STRUCTURE = "_periodstructure"; - final String TABLE_NAME_PERIOD_NO_DISAGGREGATION_STRUCTURE = "_period_no_disagg_structure"; + final String TABLE_NAME_DATA_ELEMENT_CATEGORY_OPTION_COMBO = "_dataelementcategoryoptioncombo"; /** * Performs a batch update. @@ -56,28 +56,16 @@ */ void batchUpdate( int columns, String tableName, List<Object[]> batchArgs ); - // ------------------------------------------------------------------------- - // OrganisationUnitStructure - // ------------------------------------------------------------------------- - /** * Creates a table. */ void createOrganisationUnitStructure( int maxLevel ); - // ------------------------------------------------------------------------- - // DataElementCategoryOptionComboName - // ------------------------------------------------------------------------- - /** * Creates a table. */ void createDataElementCategoryOptionComboName(); - // ------------------------------------------------------------------------- - // GroupSetStructure - // ------------------------------------------------------------------------- - /** * Creates table. * @@ -115,4 +103,9 @@ * Creates table. */ void createPeriodStructure(); + + /** + * Creates and generates table. + */ + public void createAndGenerateDataElementCategoryOptionCombo(); } === modified file 'dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/DefaultResourceTableService.java' --- dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/DefaultResourceTableService.java 2013-04-22 17:04:51 +0000 +++ dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/DefaultResourceTableService.java 2013-05-27 11:07:26 +0000 @@ -172,6 +172,9 @@ generatePeriodTable(); log.info( "Period table generated" ); + generateDataElementCategoryOptionComboTable(); + log.info( "Data element category option combo table generated" ); + sqlViewService.createAllViewTables(); } @@ -526,4 +529,13 @@ resourceTableStore.batchUpdate( PeriodType.PERIOD_TYPES.size() + 3, TABLE_NAME_PERIOD_STRUCTURE, batchArgs ); } + + // ------------------------------------------------------------------------- + // DataElementCategoryOptionComboTable + // ------------------------------------------------------------------------- + + public void generateDataElementCategoryOptionComboTable() + { + resourceTableStore.createAndGenerateDataElementCategoryOptionCombo(); + } } === modified file 'dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/jdbc/JdbcResourceTableStore.java' --- dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/jdbc/JdbcResourceTableStore.java 2013-03-05 22:03:40 +0000 +++ dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/jdbc/JdbcResourceTableStore.java 2013-05-27 11:07:26 +0000 @@ -274,4 +274,38 @@ jdbcTemplate.update( sql ); } + + // ------------------------------------------------------------------------- + // DataElementCategoryOptionComboTable + // ------------------------------------------------------------------------- + + public void createAndGenerateDataElementCategoryOptionCombo() + { + try + { + jdbcTemplate.update( "DROP TABLE IF EXISTS " + TABLE_NAME_DATA_ELEMENT_CATEGORY_OPTION_COMBO ); + } + catch ( BadSqlGrammarException ex ) + { + // Do nothing, table does not exist + } + + final String sql = + "select de.uid as dataelementuid, coc.uid as categoryoptioncombouid " + + "into " + TABLE_NAME_DATA_ELEMENT_CATEGORY_OPTION_COMBO + " " + + "from dataelement de " + + "join categorycombos_optioncombos cc on de.categorycomboid = cc.categorycomboid " + + "join categoryoptioncombo coc on cc.categoryoptioncomboid = coc.categoryoptioncomboid"; + + log.info( "Create data element category option combo SQL: " + sql ); + + jdbcTemplate.update( sql ); + + final String index = "CREATE INDEX dataelement_categoryoptioncombo ON " + + TABLE_NAME_DATA_ELEMENT_CATEGORY_OPTION_COMBO + " (dataelementuid, categoryoptioncombouid)"; + + log.info( "Create data element category option combo index: " + index ); + + jdbcTemplate.update( index ); + } } === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementService.java 2013-03-07 14:10:37 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementService.java 2013-05-27 11:07:26 +0000 @@ -342,9 +342,9 @@ return i18n( i18nService, dataElementStore.getDataElementsByAggregationLevel( aggregationLevel ) ); } - public ListMap<String, String> getDataElementCategoryOptionComboMap() + public ListMap<String, String> getDataElementCategoryOptionComboMap( Set<String> dataElementUids ) { - return dataElementStore.getDataElementCategoryOptionComboMap(); + return dataElementStore.getDataElementCategoryOptionComboMap( dataElementUids ); } public Map<String, Integer> getDataElementUidIdMap() === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/hibernate/HibernateDataElementStore.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/hibernate/HibernateDataElementStore.java 2013-03-07 14:10:37 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/hibernate/HibernateDataElementStore.java 2013-05-27 11:07:26 +0000 @@ -44,6 +44,7 @@ import org.hisp.dhis.dataelement.DataElementStore; import org.hisp.dhis.dataset.DataSet; import org.hisp.dhis.system.util.ConversionUtils; +import org.hisp.dhis.system.util.TextUtils; import org.springframework.jdbc.core.RowCallbackHandler; /** @@ -223,11 +224,12 @@ return getQuery( hql ).setInteger( "aggregationLevel", aggregationLevel ).list(); } - public ListMap<String, String> getDataElementCategoryOptionComboMap() + public ListMap<String, String> getDataElementCategoryOptionComboMap( Set<String> dataElementUids ) { - final String sql = "select de.uid, coc.uid from dataelement de " - + "join categorycombos_optioncombos cc on de.categorycomboid = cc.categorycomboid " - + "join categoryoptioncombo coc on cc.categoryoptioncomboid = coc.categoryoptioncomboid"; + final String sql = + "select dataelementuid, categoryoptioncombouid " + + "from _dataelementcategoryoptioncombo " + + "where dataelementuid in (" + TextUtils.getQuotedCommaDelimitedString( dataElementUids ) + ")"; final ListMap<String, String> map = new ListMap<String, String>(); === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/expression/DefaultExpressionService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/expression/DefaultExpressionService.java 2013-03-11 12:18:15 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/expression/DefaultExpressionService.java 2013-05-27 11:07:26 +0000 @@ -68,8 +68,6 @@ * * @author Margrethe Store * @author Lars Helge Overland - * @version $Id: DefaultExpressionService.java 6463 2008-11-24 12:05:46Z - * larshelg $ */ public class DefaultExpressionService implements ExpressionService @@ -202,7 +200,24 @@ return dataElementsInExpression; } - + + public Set<String> getDataElementTotalUids( String expression ) + { + Set<String> uids = new HashSet<String>(); + + if ( expression != null ) + { + final Matcher matcher = DATA_ELEMENT_TOTAL_PATTERN.matcher( expression ); + + while ( matcher.find() ) + { + uids.add( matcher.group( 1 ) ); + } + } + + return uids; + } + @Transactional public Set<DataElementCategoryOptionCombo> getOptionCombosInExpression( String expression ) { @@ -460,17 +475,28 @@ indicator.setExplodedDenominator( substituteExpression( indicator.getDenominator(), days ) ); } - final ListMap<String, String> dataElementMap = dataElementService.getDataElementCategoryOptionComboMap(); + Set<String> dataElementTotals = new HashSet<String>(); for ( Indicator indicator : indicators ) { - indicator.setExplodedNumerator( explodeExpression( indicator.getExplodedNumerator() != null ? indicator.getExplodedNumerator() : "", dataElementMap ) ); - indicator.setExplodedDenominator( explodeExpression( indicator.getExplodedDenominator() != null ? indicator.getExplodedDenominator() : "", dataElementMap ) ); - } + dataElementTotals.addAll( getDataElementTotalUids( indicator.getNumerator() ) ); + dataElementTotals.addAll( getDataElementTotalUids( indicator.getDenominator() ) ); + } + + if ( !dataElementTotals.isEmpty() ) + { + final ListMap<String, String> dataElementMap = dataElementService.getDataElementCategoryOptionComboMap( dataElementTotals ); + + for ( Indicator indicator : indicators ) + { + indicator.setExplodedNumerator( explodeExpression( indicator.getExplodedNumerator() != null ? indicator.getExplodedNumerator() : "", dataElementMap ) ); + indicator.setExplodedDenominator( explodeExpression( indicator.getExplodedDenominator() != null ? indicator.getExplodedDenominator() : "", dataElementMap ) ); + } + } } } - private String explodeExpression( String expression, ListMap<String, String> dataElementMap ) + private String explodeExpression( String expression, ListMap<String, String> dataElementOptionComboMap ) { if ( expression == null || expression.isEmpty() ) { @@ -486,7 +512,7 @@ { final StringBuilder replace = new StringBuilder( PAR_OPEN ); - for ( String coc : dataElementMap.get( matcher.group( 1 ) ) ) + for ( String coc : dataElementOptionComboMap.get( matcher.group( 1 ) ) ) { replace.append( EXP_OPEN ).append( matcher.group( 1 ) ).append( SEPARATOR ).append( coc ).append( EXP_CLOSE ).append( "+" ); === modified file 'dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/expression/ExpressionServiceTest.java' --- dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/expression/ExpressionServiceTest.java 2013-01-15 11:43:12 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/expression/ExpressionServiceTest.java 2013-05-27 11:07:26 +0000 @@ -27,12 +27,12 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import static org.hisp.dhis.expression.Expression.SEPARATOR; +import static org.hisp.dhis.expression.ExpressionService.DAYS_SYMBOL; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import static org.hisp.dhis.expression.Expression.SEPARATOR; -import static org.hisp.dhis.expression.ExpressionService.*; import java.util.Collection; import java.util.HashMap; @@ -66,27 +66,19 @@ extends DhisTest { private DataElementCategoryOption categoryOptionA; - private DataElementCategoryOption categoryOptionB; - private DataElementCategoryOption categoryOptionC; - private DataElementCategoryOption categoryOptionD; private DataElementCategory categoryA; - private DataElementCategory categoryB; private DataElementCategoryCombo categoryCombo; private DataElement dataElementA; - private DataElement dataElementB; - private DataElement dataElementC; - private DataElement dataElementD; - private DataElement dataElementE; private Period period; @@ -96,21 +88,16 @@ private DataElementCategoryOptionCombo categoryOptionCombo; private Constant constantA; - + private String expressionA; - private String expressionB; - private String expressionC; - - private String expressionD; - + private String expressionD; private String expressionE; - private String expressionF; + private String expressionG; private String descriptionA; - private String descriptionB; private Set<DataElement> dataElements = new HashSet<DataElement>(); @@ -199,6 +186,7 @@ expressionD = "#{" + dataElementA.getUid() + SEPARATOR + categoryOptionCombo.getUid() + "}+" + DAYS_SYMBOL; expressionE = "#{" + dataElementA.getUid() + SEPARATOR + categoryOptionCombo.getUid() + "}*C{" + constantA.getUid() + "}"; expressionF = "#{" + dataElementA.getUid() + SEPARATOR + categoryOptionCombo.getUid() + "}"; + expressionG = expressionF + "+#{" + dataElementB.getUid() + "}-#{" + dataElementC.getUid() + "}"; descriptionA = "Expression A"; descriptionB = "Expression B"; @@ -258,6 +246,19 @@ } @Test + public void testGetDataElementTotalUids() + { + Set<String> uids = new HashSet<String>(); + Set<String> empty = new HashSet<String>(); + + uids.add( dataElementB.getUid() ); + uids.add( dataElementC.getUid() ); + + assertEquals( uids, expressionService.getDataElementTotalUids( expressionG ) ); + assertEquals( empty, expressionService.getDataElementTotalUids( expressionA ) ); + } + + @Test public void testGetOperandsInExpression() { Set<DataElementOperand> operands = expressionService.getOperandsInExpression( expressionA ); === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/resources/templates/html/indicator.xsl' --- dhis-2/dhis-web/dhis-web-api/src/main/resources/templates/html/indicator.xsl 2012-04-08 20:23:29 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/resources/templates/html/indicator.xsl 2013-05-27 11:07:26 +0000 @@ -31,6 +31,14 @@ <td> <xsl:value-of select="d:description" /> </td> </tr> <tr> + <td>Numerator</td> + <td> <xsl:value-of select="d:numerator" /> </td> + </tr> + <tr> + <td>Numerator Description</td> + <td> <xsl:value-of select="d:numeratorDescription" /> </td> + </tr> + <tr> <td>Denominator</td> <td> <xsl:value-of select="d:denominator" /> </td> </tr> @@ -39,14 +47,6 @@ <td> <xsl:value-of select="d:denominatorDescription" /> </td> </tr> <tr> - <td>Numerator</td> - <td> <xsl:value-of select="d:numerator" /> </td> - </tr> - <tr> - <td>Numerator Description</td> - <td> <xsl:value-of select="d:numeratorDescription" /> </td> - </tr> - <tr> <td>Annualized</td> <td> <xsl:value-of select="d:annualized" /> </td> </tr> === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/resourcetable/GenerateResourceTableAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/resourcetable/GenerateResourceTableAction.java 2013-02-05 11:36:19 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/resourcetable/GenerateResourceTableAction.java 2013-05-27 11:07:26 +0000 @@ -61,6 +61,13 @@ this.resourceTableService = resourceTableService; } + private CurrentUserService currentUserService; + + public void setCurrentUserService( CurrentUserService currentUserService ) + { + this.currentUserService = currentUserService; + } + // ------------------------------------------------------------------------- // Input & Output // ------------------------------------------------------------------------- @@ -120,12 +127,12 @@ { this.periodStructure = periodStructure; } - - private CurrentUserService currentUserService; - - public void setCurrentUserService( CurrentUserService currentUserService ) + + private boolean dataElementCategoryOptionCombo; + + public void setDataElementCategoryOptionCombo( boolean dataElementCategoryOptionCombo ) { - this.currentUserService = currentUserService; + this.dataElementCategoryOptionCombo = dataElementCategoryOptionCombo; } private String message; @@ -185,6 +192,11 @@ { resourceTableService.generatePeriodTable(); } + + if ( dataElementCategoryOptionCombo ) + { + resourceTableService.generateDataElementCategoryOptionComboTable(); + } log.info( "'" + currentUserService.getCurrentUsername() + "': Generated resource tables" ); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties 2013-04-22 08:10:07 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties 2013-05-27 11:07:26 +0000 @@ -319,4 +319,4 @@ generating_min_max_values=Generating min-max values done=Done period_structure=Period structure -clear_analytics_tables=Clear analytics tables \ No newline at end of file + data_element_category_option_combo=Data element category option combinations \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/javascript/resourceTable.js' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/javascript/resourceTable.js 2012-11-25 20:18:52 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/javascript/resourceTable.js 2013-05-27 11:07:26 +0000 @@ -11,9 +11,10 @@ var categoryOptionComboName = document.getElementById( "categoryOptionComboName" ).checked; var dataElementStructure = document.getElementById( "dataElementStructure" ).checked; var periodStructure = document.getElementById( "periodStructure" ).checked; + var dataElementCategoryOptionCombo = document.getElementById( "dataElementCategoryOptionCombo" ).checked; if ( organisationUnit || dataElementGroupSetStructure || indicatorGroupSetStructure || organisationUnitGroupSetStructure || - categoryStructure || categoryOptionComboName || dataElementStructure || periodStructure ) + categoryStructure || categoryOptionComboName || dataElementStructure || periodStructure || dataElementCategoryOptionCombo ) { setWaitMessage( i18n_generating_resource_tables ); @@ -25,7 +26,8 @@ categoryStructure: categoryStructure, categoryOptionComboName: categoryOptionComboName, dataElementStructure: dataElementStructure, - periodStructure: periodStructure + periodStructure: periodStructure, + dataElementCategoryOptionCombo: dataElementCategoryOptionCombo }; $.ajax({ @@ -55,5 +57,6 @@ document.getElementById( "categoryStructure" ).checked = selected; document.getElementById( "categoryOptionComboName" ).checked = selected; document.getElementById( "dataElementStructure" ).checked = selected; - document.getElementById( "periodStructure" ).checked = selected; + document.getElementById( "periodStructure" ).checked = selected; + document.getElementById( "dataElementCategoryOptionCombo" ).checked = selected; } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/resourceTableForm.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/resourceTableForm.vm 2012-11-25 20:18:52 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/resourceTableForm.vm 2013-05-27 11:07:26 +0000 @@ -47,6 +47,11 @@ <label for="periodStructure">$i18n.getString( "period_structure" ) <span style="color:#606060">(_periodstructure)</span></label> </p> +<p> + <input type="checkbox" name="resourceTableCheckBox" id="dataElementCategoryOptionCombo"/> + <label for="dataElementCategoryOptionCombo">$i18n.getString( "data_element_category_option_combo" ) <span style="color:#606060">(_dataelementcategoryoptioncombo)</span></label> +</p> + <table> <tr> <td>
_______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : dhis2-devs@lists.launchpad.net Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp