=== added file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/GetDataSetAssociationsAction.java' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/GetDataSetAssociationsAction.java 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/GetDataSetAssociationsAction.java 2014-11-17 17:24:22 +0000 @@ -0,0 +1,61 @@ +package org.hisp.dhis.de.action; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.hisp.dhis.configuration.ConfigurationService; +import org.hisp.dhis.organisationunit.OrganisationUnitDataSetAssociationSet; +import org.hisp.dhis.organisationunit.OrganisationUnitLevel; +import org.hisp.dhis.organisationunit.OrganisationUnitService; +import org.springframework.beans.factory.annotation.Autowired; + +import com.opensymphony.xwork2.Action; + +public class GetDataSetAssociationsAction + implements Action +{ + @Autowired + private OrganisationUnitService organisationUnitService; + + @Autowired + private ConfigurationService configurationService; + + private List> dataSetAssociationSets; + + // ------------------------------------------------------------------------- + // Output + // ------------------------------------------------------------------------- + + public List> getDataSetAssociationSets() + { + return dataSetAssociationSets; + } + + private Map organisationUnitAssociationSetMap; + + public Map getOrganisationUnitAssociationSetMap() + { + return organisationUnitAssociationSetMap; + } + + // ------------------------------------------------------------------------- + // Action implementation + // ------------------------------------------------------------------------- + + @Override + public String execute() + { + OrganisationUnitLevel offlineOrgUnitLevel = configurationService.getConfiguration().getOfflineOrganisationUnitLevel(); + + Integer level = offlineOrgUnitLevel != null ? offlineOrgUnitLevel.getLevel() : null; + + OrganisationUnitDataSetAssociationSet organisationUnitSet = organisationUnitService.getOrganisationUnitDataSetAssociationSet( level ); + + dataSetAssociationSets = organisationUnitSet.getDataSetAssociationSets(); + + organisationUnitAssociationSetMap = organisationUnitSet.getOrganisationUnitAssociationSetMap(); + + return SUCCESS; + } +} === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/GetMetaDataAction.java' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/GetMetaDataAction.java 2014-10-18 07:31:50 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/GetMetaDataAction.java 2014-11-17 17:24:22 +0000 @@ -50,9 +50,6 @@ import org.hisp.dhis.expression.ExpressionService; import org.hisp.dhis.indicator.Indicator; import org.hisp.dhis.indicator.IndicatorService; -import org.hisp.dhis.organisationunit.OrganisationUnitDataSetAssociationSet; -import org.hisp.dhis.organisationunit.OrganisationUnitLevel; -import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.user.CurrentUserService; import org.hisp.dhis.user.User; import org.springframework.beans.factory.annotation.Autowired; @@ -97,13 +94,6 @@ this.dataSetService = dataSetService; } - private OrganisationUnitService organisationUnitService; - - public void setOrganisationUnitService( OrganisationUnitService organisationUnitService ) - { - this.organisationUnitService = organisationUnitService; - } - private DataElementCategoryService categoryService; public void setCategoryService( DataElementCategoryService categoryService ) @@ -241,16 +231,6 @@ expressionService.substituteExpressions( indicators, null ); - OrganisationUnitLevel offlineOrgUnitLevel = configurationService.getConfiguration().getOfflineOrganisationUnitLevel(); - - Integer level = offlineOrgUnitLevel != null ? offlineOrgUnitLevel.getLevel() : null; - - OrganisationUnitDataSetAssociationSet organisationUnitSet = organisationUnitService.getOrganisationUnitDataSetAssociationSet( level ); - - dataSetAssociationSets = organisationUnitSet.getDataSetAssociationSets(); - - organisationUnitAssociationSetMap = organisationUnitSet.getOrganisationUnitAssociationSetMap(); - if ( currentUserService.currentUserIsSuper() ) { dataSets = new ArrayList<>( dataSetService.getAllDataSets() ); === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/META-INF/dhis/beans.xml 2014-05-18 00:49:40 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/META-INF/dhis/beans.xml 2014-11-17 17:24:22 +0000 @@ -6,19 +6,18 @@ - + - - + + + @@ -33,16 +32,14 @@ - + - + @@ -59,8 +56,7 @@ - + === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/struts.xml' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/struts.xml 2014-09-02 19:37:55 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/struts.xml 2014-11-17 17:24:22 +0000 @@ -21,6 +21,10 @@ /dhis-web-dataentry/responseMetaData.vm + + + /dhis-web-dataentry/responseDataSetAssociations.vm + /dhis-web-dataentry/responseDataValues.vm === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/javascript/form.js' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/javascript/form.js 2014-11-17 16:35:57 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/javascript/form.js 2014-11-17 17:24:22 +0000 @@ -84,6 +84,8 @@ dhis2.de.cst.formulaPattern = /#\{.+?\}/g; dhis2.de.cst.separator = '.'; dhis2.de.cst.valueMaxLength = 50000; +dhis2.de.cst.metaData = 'dhis2.de.cst.metaData'; +dhis2.de.cst.dataSetAssociations = 'dhis2.de.cst.dataSetAssociations'; // Colors @@ -172,7 +174,10 @@ $( '#orgUnitTree' ).one( 'ouwtLoaded', function() { console.log( 'Ouwt loaded' ); - dhis2.de.loadMetaData(); + + $.when( dhis2.de.loadMetaData(), dhis2.de.loadDataSetAssociations() ).done( function() { + dhis2.de.setMetaDataLoaded(); + } ); } ); $( document ).bind( 'dhis2.online', function( event, loggedIn ) @@ -252,41 +257,67 @@ dhis2.de.loadMetaData = function() { - var KEY_METADATA = 'metadata'; - + var def = $.Deferred(); + $.ajax( { url: 'getMetaData.action', dataType: 'json', success: function( json ) { - sessionStorage[KEY_METADATA] = JSON.stringify( json.metaData ); + sessionStorage[dhis2.de.cst.metaData] = JSON.stringify( json.metaData ); }, complete: function() { - var metaData = JSON.parse( sessionStorage[KEY_METADATA] ); - + var metaData = JSON.parse( sessionStorage[dhis2.de.cst.metaData] ); dhis2.de.emptyOrganisationUnits = metaData.emptyOrganisationUnits; dhis2.de.significantZeros = metaData.significantZeros; dhis2.de.dataElements = metaData.dataElements; dhis2.de.indicatorFormulas = metaData.indicatorFormulas; dhis2.de.dataSets = metaData.dataSets; dhis2.de.optionSets = metaData.optionSets; - dhis2.de.dataSetAssociationSets = metaData.dataSetAssociationSets; - dhis2.de.organisationUnitAssociationSetMap = metaData.organisationUnitAssociationSetMap; dhis2.de.defaultCategoryCombo = metaData.defaultCategoryCombo; dhis2.de.categoryCombos = metaData.categoryCombos; - dhis2.de.categories = metaData.categories; - - dhis2.de.metaDataIsLoaded = true; - selection.responseReceived(); // Notify that meta data is loaded - $( '#loaderSpan' ).hide(); - console.log( 'Meta-data loaded' ); - - updateForms(); + dhis2.de.categories = metaData.categories; + def.resolve(); } } ); + + return def.promise(); }; +dhis2.de.loadDataSetAssociations = function() +{ + var def = $.Deferred(); + + $.ajax( { + url: 'getDataSetAssociations.action', + dataType: 'json', + success: function( json ) + { + sessionStorage[dhis2.de.cst.dataSetAssociations] = JSON.stringify( json.dataSetAssociations ); + }, + complete: function() + { + var metaData = JSON.parse( sessionStorage[dhis2.de.cst.dataSetAssociations] ); + dhis2.de.dataSetAssociationSets = metaData.dataSetAssociationSets; + dhis2.de.organisationUnitAssociationSetMap = metaData.organisationUnitAssociationSetMap; + def.resolve(); + } + } ); + + return def.promise(); +} + +dhis2.de.setMetaDataLoaded = function() +{ + dhis2.de.metaDataIsLoaded = true; + selection.responseReceived(); // Notify that meta data is loaded + $( '#loaderSpan' ).hide(); + console.log( 'Meta-data loaded' ); + + updateForms(); +} + dhis2.de.discardLocalData = function() { if( confirm( i18n_remove_local_data ) ) { dhis2.de.storageManager.clearAllDataValues(); === added file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/responseDataSetAssociations.vm' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/responseDataSetAssociations.vm 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/responseDataSetAssociations.vm 2014-11-17 17:24:22 +0000 @@ -0,0 +1,19 @@ +{ "dataSetAssociations": { +"dataSetAssociationSets": { +#set( $size1 = $dataSetAssociationSets.size() ) +#set( $index = 0 ) +#foreach( $associationSet in $dataSetAssociationSets ) +"${index}": [ +#set( $index = $index + 1 ) +#set( $size2 = $associationSet.size() ) +#foreach( $id in $associationSet ) +"$encoder.jsonEncode( $id )"#if( $velocityCount < $size2 ),#end +#end ]#if( $velocityCount < $size1 ),#end +#end }, + +"organisationUnitAssociationSetMap": { +#set( $size = $organisationUnitAssociationSetMap.size() ) +#foreach( $orgUnit in $organisationUnitAssociationSetMap.keySet() ) +"${orgUnit}":"$organisationUnitAssociationSetMap.get( ${orgUnit} )"#if( $velocityCount < $size ),#end +#end } +} } \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/responseMetaData.vm' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/responseMetaData.vm 2014-11-17 16:35:57 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/responseMetaData.vm 2014-11-17 17:24:22 +0000 @@ -40,24 +40,6 @@ "validCompleteOnly":${dataSet.validCompleteOnly},"skipOffline":${dataSet.skipOffline}, "renderAsTabs":${dataSet.renderAsTabs}, "renderHorizontally":${dataSet.renderHorizontally}}#if( $velocityCount < $size ),#end #end }, -"dataSetAssociationSets": { -#set( $size1 = $dataSetAssociationSets.size() ) -#set( $index = 0 ) -#foreach( $associationSet in $dataSetAssociationSets ) -"${index}": [ -#set( $index = $index + 1 ) -#set( $size2 = $associationSet.size() ) -#foreach( $id in $associationSet ) -"$encoder.jsonEncode( $id )"#if( $velocityCount < $size2 ),#end -#end ]#if( $velocityCount < $size1 ),#end -#end }, - -"organisationUnitAssociationSetMap": { -#set( $size = $organisationUnitAssociationSetMap.size() ) -#foreach( $orgUnit in $organisationUnitAssociationSetMap.keySet() ) -"${orgUnit}":"$organisationUnitAssociationSetMap.get( ${orgUnit} )"#if( $velocityCount < $size ),#end -#end }, - "defaultCategoryCombo":"${defaultCategoryCombo.uid}", "categoryCombos": {