dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #12512
Re: [Branch ~dhis2-devs-core/dhis2/trunk] Rev 3865: (GIS) Infrastructural data sheet for facilities implemented. Select data element group and period...
Click a point in any layer to open a profile window. Screenshot attached.
On Fri, Jun 10, 2011 at 13:55, <noreply@xxxxxxxxxxxxx> wrote:
> Merge authors:
> Jan Henrik Øverland (janhenrik-overland)
> ------------------------------------------------------------
> revno: 3865 [merge]
> committer: Jan Henrik Overland <janhenrik.overland@xxxxxxxxx>
> branch nick: dhis2
> timestamp: Fri 2011-06-10 13:53:28 +0200
> message:
> (GIS) Infrastructural data sheet for facilities implemented. Select data
> element group and period type in the system settings module.
> added:
>
> dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/information2.png
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetAllDataElementGroupSetsAction.java
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetInfrastructuralDataElementMapValuesAction.java
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonDataElementGroupSets.vm
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonInfrastructuralAggregatedMapValues.vm
> modified:
>
> dhis-2/dhis-api/src/main/java/org/hisp/dhis/aggregation/AggregatedMapValue.java
> dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MappingService.java
>
> dhis-2/dhis-services/dhis-service-mapping/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java
>
> dhis-2/dhis-services/dhis-service-mapping/src/main/resources/META-INF/dhis/beans.xml
>
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/java/org/hisp/dhis/settings/action/system/GetSystemSettingsAction.java
>
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/java/org/hisp/dhis/settings/action/system/SetSystemSettingsAction.java
>
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/resources/META-INF/dhis/beans.xml
>
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/resources/org/hisp/dhis/settings/i18n_module.properties
>
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/webapp/dhis-web-maintenance-settings/systemSettings.vm
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetGeoJsonAction.java
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/InitializeAction.java
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/SetMapSystemSettingsAction.java
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/resources/META-INF/dhis/beans.xml
> dhis-2/dhis-web/dhis-web-mapping/src/main/resources/struts.xml
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/geojsonPoint.vm
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/geojsonSymbol.vm
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonAggregatedMapValues.vm
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonInitialize.vm
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonminAggregatedMapValues.vm
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/css/style.css
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/global.js
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/index.js
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/theme/gray-extend/xtheme-gray-extend.css
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat.js
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Choropleth.js
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Point.js
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Symbol.js
>
>
> --
> 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/aggregation/AggregatedMapValue.java'
> ---
> dhis-2/dhis-api/src/main/java/org/hisp/dhis/aggregation/AggregatedMapValue.java
> 2011-01-25 20:50:16 +0000
> +++
> dhis-2/dhis-api/src/main/java/org/hisp/dhis/aggregation/AggregatedMapValue.java
> 2011-06-08 13:52:49 +0000
> @@ -40,6 +40,8 @@
>
> private int periodId;
>
> + private String dataElementName;
> +
> private double value;
>
> private double factor;
> @@ -56,11 +58,12 @@
> {
> }
>
> - public AggregatedMapValue( int organisationUnitId, String
> organisationUnitName, int periodId, double value, double factor, double
> numeratorValue, double denominatorValue )
> + public AggregatedMapValue( int organisationUnitId, String
> organisationUnitName, int periodId, String dataElementName, double value,
> double factor, double numeratorValue, double denominatorValue )
> {
> this.organisationUnitId = organisationUnitId;
> this.organisationUnitName = organisationUnitName;
> this.periodId = periodId;
> + this.dataElementName = dataElementName;
> this.value = value;
> this.factor = factor;
> this.numeratorValue = numeratorValue;
> @@ -122,6 +125,16 @@
> this.periodId = periodId;
> }
>
> + public String getDataElementName()
> + {
> + return dataElementName;
> + }
> +
> + public void setDataElementName( String dataElementName )
> + {
> + this.dataElementName = dataElementName;
> + }
> +
> public double getValue()
> {
> return value;
>
> === modified file
> 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MappingService.java'
> --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MappingService.java
> 2011-05-20 15:23:50 +0000
> +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MappingService.java
> 2011-06-08 13:52:49 +0000
> @@ -79,6 +79,8 @@
>
> Collection<AggregatedMapValue> getDataElementMapValues( Integer
> dataElementId, Period period, Date startDate, Date endDate,
> Integer parentOrganisationUnitId, Integer level );
> +
> + Collection<AggregatedMapValue> getInfrastructuralDataElementMapValues(
> Integer periodId, Integer organisationUnitId );
>
> //
> -------------------------------------------------------------------------
> // MapLegend
>
> === modified file
> 'dhis-2/dhis-services/dhis-service-mapping/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java'
> ---
> dhis-2/dhis-services/dhis-service-mapping/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java
> 2011-05-20 15:23:50 +0000
> +++
> dhis-2/dhis-services/dhis-service-mapping/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java
> 2011-06-08 13:52:49 +0000
> @@ -35,6 +35,7 @@
> import org.hisp.dhis.aggregation.AggregatedDataValueService;
> import org.hisp.dhis.aggregation.AggregatedMapValue;
> import org.hisp.dhis.aggregation.AggregationService;
> +import org.hisp.dhis.configuration.ConfigurationService;
> import org.hisp.dhis.dataelement.DataElement;
> import org.hisp.dhis.dataelement.DataElementGroup;
> import org.hisp.dhis.dataelement.DataElementService;
> @@ -119,7 +120,7 @@
> }
>
> private AggregatedDataValueService aggregatedDataValueService;
> -
> +
> public void setAggregatedDataValueService( AggregatedDataValueService
> aggregatedDataValueService )
> {
> this.aggregatedDataValueService = aggregatedDataValueService;
> @@ -131,14 +132,21 @@
> {
> this.systemSettingManager = systemSettingManager;
> }
> -
> +
> private CurrentUserService currentUserService;
> -
> +
> public void setCurrentUserService( CurrentUserService
> currentUserService )
> {
> this.currentUserService = currentUserService;
> }
>
> + private ConfigurationService configurationService;
> +
> + public void setConfigurationService( ConfigurationService
> configurationService )
> + {
> + this.configurationService = configurationService;
> + }
> +
> //
> -------------------------------------------------------------------------
> // MappingService implementation
> //
> -------------------------------------------------------------------------
> @@ -158,10 +166,11 @@
> private Collection<OrganisationUnit> getOrganisationUnits( Integer
> parentOrganisationUnitId, Integer level )
> {
> Collection<OrganisationUnit> organisationUnits = null;
> -
> +
> if ( parentOrganisationUnitId != null && level != null )
> {
> - organisationUnits =
> organisationUnitService.getOrganisationUnitsAtLevel( level,
> organisationUnitService.getOrganisationUnit( parentOrganisationUnitId ) );
> + organisationUnits =
> organisationUnitService.getOrganisationUnitsAtLevel( level,
> organisationUnitService
> + .getOrganisationUnit( parentOrganisationUnitId ) );
> }
> else if ( level != null )
> {
> @@ -178,47 +187,50 @@
> //
> -------------------------------------------------------------------------
> // IndicatorMapValues
> //
> -------------------------------------------------------------------------
> -
> +
> /**
> - * Generates a collection AggregatedMapValues. Only one of Period and
> start/end
> - * date can be specified. At least one of parent organisation unit and
> level
> - * must be specified. Period should be specified with "real time"
> aggregation
> - * strategy, any may be specified with "batch" aggregation strategy.
> + * Generates a collection AggregatedMapValues. Only one of Period and
> + * start/end date can be specified. At least one of parent
> organisation unit
> + * and level must be specified. Period should be specified with "real
> time"
> + * aggregation strategy, any may be specified with "batch" aggregation
> + * strategy.
> *
> * @param indicatorId the Indicator identifier.
> * @param period the Period identifier. Ignored if null.
> * @param startDate the start date. Ignored if null.
> * @param endDate the end date. Ignored if null.
> - * @param parentOrganisationUnitId the parent OrganisationUnit
> identifier. Ignored if null.
> + * @param parentOrganisationUnitId the parent OrganisationUnit
> identifier.
> + * Ignored if null.
> * @param level the OrganisationUnit level. Ignored if null.
> * @return a collection of AggregatedMapValues.
> */
> - public Collection<AggregatedMapValue> getIndicatorMapValues( Integer
> indicatorId, Period period, Date startDate, Date endDate,
> - Integer parentOrganisationUnitId, Integer level )
> + public Collection<AggregatedMapValue> getIndicatorMapValues( Integer
> indicatorId, Period period, Date startDate,
> + Date endDate, Integer parentOrganisationUnitId, Integer level )
> {
> - String aggregationStrategy = (String)
> systemSettingManager.getSystemSetting( KEY_AGGREGATION_STRATEGY,
> DEFAULT_AGGREGATION_STRATEGY );
> -
> - Assert.isTrue( !( period != null && ( startDate != null || endDate
> != null ) ) );
> - Assert.isTrue( !( aggregationStrategy.equals(
> AGGREGATION_STRATEGY_BATCH ) && period == null ) );
> - Assert.isTrue( !( indicatorId == null || parentOrganisationUnitId
> == null || level == null ) );
> -
> + String aggregationStrategy = (String)
> systemSettingManager.getSystemSetting( KEY_AGGREGATION_STRATEGY,
> + DEFAULT_AGGREGATION_STRATEGY );
> +
> + Assert.isTrue( !(period != null && (startDate != null || endDate
> != null)) );
> + Assert.isTrue( !(aggregationStrategy.equals(
> AGGREGATION_STRATEGY_BATCH ) && period == null) );
> + Assert.isTrue( !(indicatorId == null || parentOrganisationUnitId
> == null || level == null) );
> +
> Collection<AggregatedMapValue> values = new
> HashSet<AggregatedMapValue>();
>
> Indicator indicator = indicatorService.getIndicator( indicatorId );
> -
> +
> if ( period != null )
> {
> startDate = period.getStartDate();
> endDate = period.getEndDate();
> }
> -
> +
> for ( OrganisationUnit organisationUnit : getOrganisationUnits(
> parentOrganisationUnitId, level ) )
> {
> if ( organisationUnit.hasCoordinates() )
> {
> - Double value = aggregationStrategy.equals(
> AGGREGATION_STRATEGY_REAL_TIME ) ?
> - aggregationService.getAggregatedIndicatorValue(
> indicator, startDate, endDate, organisationUnit ) :
> - aggregatedDataValueService.getAggregatedValue(
> indicator, period, organisationUnit );
> + Double value = aggregationStrategy.equals(
> AGGREGATION_STRATEGY_REAL_TIME ) ? aggregationService
> + .getAggregatedIndicatorValue( indicator, startDate,
> endDate, organisationUnit )
> + : aggregatedDataValueService.getAggregatedValue(
> indicator, period, organisationUnit );
>
> value = value != null ? value : 0; // TODO improve
>
> @@ -233,51 +245,54 @@
>
> return values;
> }
> -
> +
> //
> -------------------------------------------------------------------------
> // DataElementMapValues
> //
> -------------------------------------------------------------------------
>
> /**
> - * Generates a collection AggregatedMapValues. Only one of Period and
> start/end
> - * date can be specified. At least one of parent organisation unit and
> level
> - * must be specified. Period should be specified with "real time"
> aggregation
> - * strategy, any may be specified with "batch" aggregation strategy.
> + * Generates a collection AggregatedMapValues. Only one of Period and
> + * start/end date can be specified. At least one of parent
> organisation unit
> + * and level must be specified. Period should be specified with "real
> time"
> + * aggregation strategy, any may be specified with "batch" aggregation
> + * strategy.
> *
> * @param indicatorId the Indicator identifier.
> * @param period the Period identifier. Ignored if null.
> * @param startDate the start date. Ignored if null.
> * @param endDate the end date. Ignored if null.
> - * @param parentOrganisationUnitId the parent OrganisationUnit
> identifier. Ignored if null.
> + * @param parentOrganisationUnitId the parent OrganisationUnit
> identifier.
> + * Ignored if null.
> * @param level the OrganisationUnit level. Ignored if null.
> * @return a collection of AggregatedMapValues.
> */
> - public Collection<AggregatedMapValue> getDataElementMapValues( Integer
> dataElementId, Period period, Date startDate, Date endDate,
> - Integer parentOrganisationUnitId, Integer level )
> + public Collection<AggregatedMapValue> getDataElementMapValues( Integer
> dataElementId, Period period,
> + Date startDate, Date endDate, Integer parentOrganisationUnitId,
> Integer level )
> {
> - String aggregationStrategy = (String)
> systemSettingManager.getSystemSetting( KEY_AGGREGATION_STRATEGY,
> DEFAULT_AGGREGATION_STRATEGY );
> -
> - Assert.isTrue( !( period != null && ( startDate != null || endDate
> != null ) ) );
> - Assert.isTrue( !( aggregationStrategy.equals(
> AGGREGATION_STRATEGY_BATCH ) && period == null ) );
> - Assert.isTrue( !( dataElementId == null ||
> parentOrganisationUnitId == null || level == null ) );
> -
> + String aggregationStrategy = (String)
> systemSettingManager.getSystemSetting( KEY_AGGREGATION_STRATEGY,
> + DEFAULT_AGGREGATION_STRATEGY );
> +
> + Assert.isTrue( !(period != null && (startDate != null || endDate
> != null)) );
> + Assert.isTrue( !(aggregationStrategy.equals(
> AGGREGATION_STRATEGY_BATCH ) && period == null) );
> + Assert.isTrue( !(dataElementId == null || parentOrganisationUnitId
> == null || level == null) );
> +
> Collection<AggregatedMapValue> values = new
> HashSet<AggregatedMapValue>();
>
> DataElement dataElement = dataElementService.getDataElement(
> dataElementId );
> -
> +
> if ( period != null )
> {
> startDate = period.getStartDate();
> endDate = period.getEndDate();
> }
> -
> +
> for ( OrganisationUnit organisationUnit : getOrganisationUnits(
> parentOrganisationUnitId, level ) )
> {
> if ( organisationUnit.hasCoordinates() )
> {
> - Double value = aggregationStrategy.equals(
> AGGREGATION_STRATEGY_REAL_TIME ) ?
> - aggregationService.getAggregatedDataValue(
> dataElement, null, startDate, endDate, organisationUnit ) :
> - aggregatedDataValueService.getAggregatedValue(
> dataElement, period, organisationUnit );
> + Double value = aggregationStrategy.equals(
> AGGREGATION_STRATEGY_REAL_TIME ) ? aggregationService
> + .getAggregatedDataValue( dataElement, null, startDate,
> endDate, organisationUnit )
> + : aggregatedDataValueService.getAggregatedValue(
> dataElement, period, organisationUnit );
>
> value = value != null ? value : 0; // TODO improve
>
> @@ -290,9 +305,56 @@
> }
> }
>
> - return values;
> - }
> -
> + return values;
> + }
> +
> + public Collection<AggregatedMapValue>
> getInfrastructuralDataElementMapValues( Integer periodId, Integer
> organisationUnitId )
> + {
> + String aggregationStrategy = (String)
> systemSettingManager.getSystemSetting( KEY_AGGREGATION_STRATEGY,
> + DEFAULT_AGGREGATION_STRATEGY );
> +
> + DataElementGroup group =
> configurationService.getConfiguration().getInfrastructuralDataElements();
> +
> + if ( group == null )
> + {
> + group =
> dataElementService.getAllDataElementGroups().iterator().next();
> + }
> +
> + Period period = periodService.getPeriod( periodId );
> +
> + Date startDate = new Date(), endDate = new Date();
> +
> + if ( period != null )
> + {
> + startDate = period.getStartDate();
> + endDate = period.getEndDate();
> + }
> +
> + OrganisationUnit organisationUnit =
> organisationUnitService.getOrganisationUnit( organisationUnitId );
> +
> + Collection<AggregatedMapValue> values = new
> HashSet<AggregatedMapValue>();
> +
> + if ( group != null )
> + {
> + for ( DataElement dataElement : group.getMembers() )
> + {
> + Double value = aggregationStrategy.equals(
> AGGREGATION_STRATEGY_REAL_TIME ) ? aggregationService
> + .getAggregatedDataValue( dataElement, null, startDate,
> endDate, organisationUnit )
> + : aggregatedDataValueService.getAggregatedValue(
> dataElement, period, organisationUnit );
> +
> + value = value != null ? value : 0; // TODO improve
> +
> + AggregatedMapValue mapValue = new AggregatedMapValue();
> + mapValue.setDataElementName( dataElement.getShortName() );
> + mapValue.setValue( value );
> +
> + values.add( mapValue );
> + }
> + }
> +
> + return values;
> + }
> +
> //
> -------------------------------------------------------------------------
> // MapLegend
> //
> -------------------------------------------------------------------------
> @@ -467,7 +529,7 @@
> {
> return mappingStore.addMapView( mapView );
> }
> -
> +
> public void addMapView( String name, boolean system, String
> mapValueType, Integer indicatorGroupId,
> Integer indicatorId, Integer dataElementGroupId, Integer
> dataElementId, String periodTypeName,
> Integer periodId, String startDate, String endDate, Integer
> parentOrganisationUnitId,
> @@ -476,7 +538,7 @@
> String longitude, String latitude, int zoom )
> {
> User user = system ? null : currentUserService.getCurrentUser();
> -
> +
> IndicatorGroup indicatorGroup = null;
>
> Indicator indicator = null;
> @@ -508,10 +570,10 @@
> OrganisationUnitLevel level =
> organisationUnitService.getOrganisationUnitLevelByLevel(
> organisationUnitLevel );
>
> MapLegendSet mapLegendSet = mapLegendSetId != null ?
> getMapLegendSet( mapLegendSetId ) : null;
> -
> - addMapView( new MapView( name, user, mapValueType, indicatorGroup,
> indicator, dataElementGroup,
> - dataElement, mapDateType, periodType, period, startDate,
> endDate, parent, level, mapLegendType, method,
> - classes, bounds, colorLow, colorHigh, mapLegendSet, radiusLow,
> radiusHigh, longitude, latitude, zoom ) );
> +
> + addMapView( new MapView( name, user, mapValueType, indicatorGroup,
> indicator, dataElementGroup, dataElement,
> + mapDateType, periodType, period, startDate, endDate, parent,
> level, mapLegendType, method, classes, bounds,
> + colorLow, colorHigh, mapLegendSet, radiusLow, radiusHigh,
> longitude, latitude, zoom ) );
> }
>
> public void updateMapView( MapView mapView )
> @@ -545,7 +607,7 @@
> public Collection<MapView> getAllMapViews()
> {
> User user = currentUserService.getCurrentUser();
> -
> +
> Collection<MapView> mapViews = mappingStore.getAllMapViews( user );
>
> if ( mapViews.size() > 0 )
> @@ -563,7 +625,7 @@
> public Collection<MapView> getMapViewsByFeatureType( String featureType
> )
> {
> User user = currentUserService.getCurrentUser();
> -
> +
> Collection<MapView> mapViews =
> mappingStore.getMapViewsByFeatureType( featureType, user );
>
> for ( MapView mapView : mapViews )
>
> === modified file
> 'dhis-2/dhis-services/dhis-service-mapping/src/main/resources/META-INF/dhis/beans.xml'
> ---
> dhis-2/dhis-services/dhis-service-mapping/src/main/resources/META-INF/dhis/beans.xml
> 2011-01-26 00:07:38 +0000
> +++
> dhis-2/dhis-services/dhis-service-mapping/src/main/resources/META-INF/dhis/beans.xml
> 2011-06-08 13:52:49 +0000
> @@ -30,6 +30,8 @@
> ref="org.hisp.dhis.aggregation.AggregatedDataValueService"/>
> <property name="currentUserService"
> ref="org.hisp.dhis.user.CurrentUserService"/>
> + <property name="configurationService"
> + ref="org.hisp.dhis.configuration.ConfigurationService"/>
> </bean>
>
> <!-- Store definitions -->
>
> === added file
> 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/information2.png'
> Binary files
> dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/information2.png
> 1970-01-01 00:00:00 +0000 and
> dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/information2.png
> 2011-06-09 13:20:00 +0000 differ
> === modified file
> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/java/org/hisp/dhis/settings/action/system/GetSystemSettingsAction.java'
> ---
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/java/org/hisp/dhis/settings/action/system/GetSystemSettingsAction.java
> 2011-06-09 14:43:14 +0000
> +++
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/java/org/hisp/dhis/settings/action/system/GetSystemSettingsAction.java
> 2011-06-10 11:47:41 +0000
> @@ -33,9 +33,14 @@
> import java.util.List;
> import java.util.SortedMap;
>
> +import org.hisp.dhis.configuration.Configuration;
> import org.hisp.dhis.configuration.ConfigurationService;
> +import org.hisp.dhis.dataelement.DataElementGroup;
> +import org.hisp.dhis.dataelement.DataElementService;
> import org.hisp.dhis.options.SystemSettingManager;
> import org.hisp.dhis.options.style.StyleManager;
> +import org.hisp.dhis.period.PeriodService;
> +import org.hisp.dhis.period.PeriodType;
> import org.hisp.dhis.system.util.Filter;
> import org.hisp.dhis.system.util.FilterUtils;
> import org.hisp.dhis.user.UserGroup;
> @@ -55,7 +60,7 @@
> implements Action
> {
> private static final Filter<Module> startableFilter = new
> StartableModuleFilter();
> -
> +
> //
> -------------------------------------------------------------------------
> // Dependencies
> //
> -------------------------------------------------------------------------
> @@ -66,14 +71,14 @@
> {
> this.systemSettingManager = systemSettingManager;
> }
> -
> +
> private ModuleManager moduleManager;
>
> public void setModuleManager( ModuleManager moduleManager )
> {
> this.moduleManager = moduleManager;
> }
> -
> +
> private StyleManager styleManager;
>
> public void setStyleManager( StyleManager styleManager )
> @@ -81,6 +86,20 @@
> this.styleManager = styleManager;
> }
>
> + private DataElementService dataElementService;
> +
> + public void setDataElementService( DataElementService
> dataElementService )
> + {
> + this.dataElementService = dataElementService;
> + }
> +
> + private PeriodService periodService;
> +
> + public void setPeriodService( PeriodService periodService )
> + {
> + this.periodService = periodService;
> + }
> +
> private UserGroupService userGroupService;
>
> public void setUserGroupService( UserGroupService userGroupService )
> @@ -94,24 +113,24 @@
> {
> this.configurationService = configurationService;
> }
> -
> +
> //
> -------------------------------------------------------------------------
> // Output
> //
> -------------------------------------------------------------------------
> -
> +
> private SortedMap<String, String> flags;
>
> public SortedMap<String, String> getFlags()
> {
> return flags;
> }
> -
> +
> private List<Module> modules;
> -
> +
> public List<Module> getModules()
> {
> return modules;
> - }
> + }
>
> private SortedMap<String, String> styles;
>
> @@ -119,7 +138,7 @@
> {
> return styles;
> }
> -
> +
> private String currentStyle;
>
> public String getCurrentStyle()
> @@ -135,7 +154,7 @@
> }
>
> private UserGroup feedbackRecipients;
> -
> +
> public UserGroup getFeedbackRecipients()
> {
> return feedbackRecipients;
> @@ -148,30 +167,57 @@
> return aggregationStrategies;
> }
>
> + private Configuration configuration;
> +
> + public Configuration getConfiguration()
> + {
> + return configuration;
> + }
> +
> + private List<DataElementGroup> dataElementGroups;
> +
> + public List<DataElementGroup> getDataElementGroups()
> + {
> + return dataElementGroups;
> + }
> +
> + private List<PeriodType> periodTypes;
> +
> + public List<PeriodType> getPeriodTypes()
> + {
> + return periodTypes;
> + }
> +
> //
> -------------------------------------------------------------------------
> // Action implementation
> //
> -------------------------------------------------------------------------
> -
> +
> public String execute()
> - {
> - flags = systemSettingManager.getFlags();
> -
> + {
> + flags = systemSettingManager.getFlags();
> +
> modules = moduleManager.getMenuModules();
> -
> +
> FilterUtils.filter( modules, startableFilter );
> -
> +
> styles = styleManager.getStyles();
>
> currentStyle = styleManager.getCurrentStyle();
>
> aggregationStrategies =
> systemSettingManager.getAggregationStrategies();
> -
> +
> + configuration = configurationService.getConfiguration();
> +
> + dataElementGroups = new ArrayList<DataElementGroup>(
> dataElementService.getAllDataElementGroups() );
> +
> + periodTypes = new ArrayList<PeriodType>(
> periodService.getAllPeriodTypes() );
> +
> userGroups = new ArrayList<UserGroup>(
> userGroupService.getAllUserGroups() );
> -
> +
> Collections.sort( userGroups, new UserGroupComparator() );
> -
> +
> feedbackRecipients =
> configurationService.getConfiguration().getFeedbackRecipients();
> -
> +
> return SUCCESS;
> }
> }
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/java/org/hisp/dhis/settings/action/system/SetSystemSettingsAction.java'
> ---
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/java/org/hisp/dhis/settings/action/system/SetSystemSettingsAction.java
> 2011-06-09 14:43:14 +0000
> +++
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/java/org/hisp/dhis/settings/action/system/SetSystemSettingsAction.java
> 2011-06-10 11:47:41 +0000
> @@ -27,19 +27,24 @@
> * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> */
>
> -import static org.hisp.dhis.options.SystemSettingManager.*;
> +import static
> org.hisp.dhis.options.SystemSettingManager.KEY_AGGREGATION_STRATEGY;
> import static
> org.hisp.dhis.options.SystemSettingManager.KEY_APPLICATION_TITLE;
> +import static
> org.hisp.dhis.options.SystemSettingManager.KEY_COMPLETENESS_OFFSET;
> import static
> org.hisp.dhis.options.SystemSettingManager.KEY_DISABLE_DATAENTRYFORM_WHEN_COMPLETED;
> import static
> org.hisp.dhis.options.SystemSettingManager.KEY_FACTOR_OF_DEVIATION;
> import static org.hisp.dhis.options.SystemSettingManager.KEY_FLAG;
> import static
> org.hisp.dhis.options.SystemSettingManager.KEY_OMIT_INDICATORS_ZERO_NUMERATOR_DATAMART;
> import static org.hisp.dhis.options.SystemSettingManager.KEY_START_MODULE;
> +import static
> org.hisp.dhis.options.SystemSettingManager.KEY_SYSTEM_IDENTIFIER;
>
> import org.apache.commons.lang.StringUtils;
> import org.hisp.dhis.configuration.Configuration;
> import org.hisp.dhis.configuration.ConfigurationService;
> +import org.hisp.dhis.dataelement.DataElementService;
> import org.hisp.dhis.options.SystemSettingManager;
> import org.hisp.dhis.options.style.StyleManager;
> +import org.hisp.dhis.period.PeriodService;
> +import org.hisp.dhis.period.PeriodType;
> import org.hisp.dhis.user.UserGroupService;
>
> import com.opensymphony.xwork2.Action;
> @@ -82,13 +87,27 @@
> {
> this.configurationService = configurationService;
> }
> -
> +
> + private DataElementService dataElementService;
> +
> + public void setDataElementService( DataElementService
> dataElementService )
> + {
> + this.dataElementService = dataElementService;
> + }
> +
> + private PeriodService periodService;
> +
> + public void setPeriodService( PeriodService periodService )
> + {
> + this.periodService = periodService;
> + }
> +
> //
> -------------------------------------------------------------------------
> // Output
> //
> -------------------------------------------------------------------------
> -
> +
> private String systemIdentifier;
> -
> +
> public void setSystemIdentifier( String systemIdentifier )
> {
> this.systemIdentifier = systemIdentifier;
> @@ -115,6 +134,20 @@
> this.startModule = startModule;
> }
>
> + private Integer infrastructuralDataElements;
> +
> + public void setInfrastructuralDataElements( Integer
> infrastructuralDataElements )
> + {
> + this.infrastructuralDataElements = infrastructuralDataElements;
> + }
> +
> + private String infrastructuralPeriodType;
> +
> + public void setInfrastructuralPeriodType( String
> infrastructuralPeriodType )
> + {
> + this.infrastructuralPeriodType = infrastructuralPeriodType;
> + }
> +
> private Boolean omitIndicatorsZeroNumeratorDataMart;
>
> public void setOmitIndicatorsZeroNumeratorDataMart( Boolean
> omitIndicatorsZeroNumeratorDataMart )
> @@ -142,16 +175,16 @@
> {
> this.currentStyle = style;
> }
> -
> +
> private String aggregationStrategy;
>
> public void setAggregationStrategy( String aggregationStrategy )
> {
> this.aggregationStrategy = aggregationStrategy;
> }
> -
> +
> private Integer feedbackRecipients;
> -
> +
> public void setFeedbackRecipients( Integer feedbackRecipients )
> {
> this.feedbackRecipients = feedbackRecipients;
> @@ -167,7 +200,7 @@
> //
> -------------------------------------------------------------------------
> // Action implementation
> //
> -------------------------------------------------------------------------
> -
> +
> public String execute()
> {
> applicationTitle = StringUtils.trimToNull( applicationTitle );
> @@ -181,22 +214,41 @@
> {
> startModule = null;
> }
> -
> +
> systemSettingManager.saveSystemSetting( KEY_SYSTEM_IDENTIFIER,
> systemIdentifier );
> systemSettingManager.saveSystemSetting( KEY_APPLICATION_TITLE,
> applicationTitle );
> systemSettingManager.saveSystemSetting( KEY_FLAG, flag );
> systemSettingManager.saveSystemSetting( KEY_START_MODULE,
> startModule );
> - systemSettingManager.saveSystemSetting(
> KEY_OMIT_INDICATORS_ZERO_NUMERATOR_DATAMART,
> omitIndicatorsZeroNumeratorDataMart );
> - systemSettingManager.saveSystemSetting(
> KEY_DISABLE_DATAENTRYFORM_WHEN_COMPLETED, disableDataEntryWhenCompleted );
> + systemSettingManager.saveSystemSetting(
> KEY_OMIT_INDICATORS_ZERO_NUMERATOR_DATAMART,
> + omitIndicatorsZeroNumeratorDataMart );
> + systemSettingManager
> + .saveSystemSetting( KEY_DISABLE_DATAENTRYFORM_WHEN_COMPLETED,
> disableDataEntryWhenCompleted );
> systemSettingManager.saveSystemSetting( KEY_FACTOR_OF_DEVIATION,
> factorDeviation );
> styleManager.setCurrentStyle( currentStyle );
> systemSettingManager.saveSystemSetting( KEY_AGGREGATION_STRATEGY,
> aggregationStrategy );
> systemSettingManager.saveSystemSetting( KEY_COMPLETENESS_OFFSET,
> completenessOffset );
> -
> +
> Configuration configuration =
> configurationService.getConfiguration();
> - configuration.setFeedbackRecipients(
> userGroupService.getUserGroup( feedbackRecipients ) );
> +
> + if ( feedbackRecipients != null )
> + {
> + configuration.setFeedbackRecipients(
> userGroupService.getUserGroup( feedbackRecipients ) );
> + }
> +
> + if ( infrastructuralDataElements != null )
> + {
> + configuration.setInfrastructuralDataElements(
> dataElementService
> + .getDataElementGroup( infrastructuralDataElements ) );
> + }
> +
> + if ( infrastructuralPeriodType != null )
> + {
> + configuration.setInfrastructuralPeriodType(
> periodService.getPeriodTypeByClass( PeriodType
> + .getPeriodTypeByName( infrastructuralPeriodType
> ).getClass() ) );
> + }
> +
> configurationService.setConfiguration( configuration );
> -
> +
> return SUCCESS;
> }
> }
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/resources/META-INF/dhis/beans.xml'
> ---
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/resources/META-INF/dhis/beans.xml
> 2011-06-09 14:43:14 +0000
> +++
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/resources/META-INF/dhis/beans.xml
> 2011-06-10 11:47:41 +0000
> @@ -9,11 +9,13 @@
> <bean
> id="org.hisp.dhis.settings.action.system.GetSystemSettingsAction"
>
> class="org.hisp.dhis.settings.action.system.GetSystemSettingsAction"
> scope="prototype">
> - <property name="systemSettingManager"
> ref="org.hisp.dhis.options.SystemSettingManager" />
> - <property name="moduleManager"
> ref="org.hisp.dhis.webportal.module.ModuleManager" />
> - <property name="styleManager"
> ref="org.hisp.dhis.options.style.StyleManager" />
> - <property name="userGroupService"
> ref="org.hisp.dhis.user.UserGroupService"/>
> - <property name="configurationService"
> ref="org.hisp.dhis.configuration.ConfigurationService"/>
> + <property name="systemSettingManager"
> ref="org.hisp.dhis.options.SystemSettingManager"/>
> + <property name="moduleManager"
> ref="org.hisp.dhis.webportal.module.ModuleManager"/>
> + <property name="styleManager"
> ref="org.hisp.dhis.options.style.StyleManager"/>
> + <property name="userGroupService"
> ref="org.hisp.dhis.user.UserGroupService"/>
> + <property name="configurationService"
> ref="org.hisp.dhis.configuration.ConfigurationService"/>
> + <property name="dataElementService"
> ref="org.hisp.dhis.dataelement.DataElementService"/>
> + <property name="periodService"
> ref="org.hisp.dhis.period.PeriodService"/>
> </bean>
>
> <bean
> id="org.hisp.dhis.settings.action.system.SetSystemSettingsAction"
> @@ -23,6 +25,8 @@
> <property name="styleManager"
> ref="org.hisp.dhis.options.style.StyleManager" />
> <property name="userGroupService"
> ref="org.hisp.dhis.user.UserGroupService"/>
> <property name="configurationService"
> ref="org.hisp.dhis.configuration.ConfigurationService"/>
> + <property name="dataElementService"
> ref="org.hisp.dhis.dataelement.DataElementService"/>
> + <property name="periodService"
> ref="org.hisp.dhis.period.PeriodService"/>
> </bean>
>
> <!-- User settings -->
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/resources/org/hisp/dhis/settings/i18n_module.properties'
> ---
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/resources/org/hisp/dhis/settings/i18n_module.properties
> 2011-06-09 14:43:14 +0000
> +++
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/resources/org/hisp/dhis/settings/i18n_module.properties
> 2011-06-10 11:47:41 +0000
> @@ -91,5 +91,7 @@
> days_after_period_timeliness = Days after period end to qualify for timely
> data submission
> system_identifier = System identifier
> can_be_set_once = can only be set once
> +infrastructural_data_elements = Infrastructural data elements
> +infrastructural_period_type = Infrastructural period type
> feedback_recipients = Feedback recipients
> no_feedback_recipients = No message recipients
> \ No newline at end of file
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/webapp/dhis-web-maintenance-settings/systemSettings.vm'
> ---
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/webapp/dhis-web-maintenance-settings/systemSettings.vm
> 2011-06-09 14:43:14 +0000
> +++
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/webapp/dhis-web-maintenance-settings/systemSettings.vm
> 2011-06-10 11:47:41 +0000
> @@ -51,6 +51,26 @@
> </select>
> </p>
>
> +<h4>$i18n.getString( "infrastructural_data_elements" )</h4>
> +
> +<p>
> +<select name="infrastructuralDataElements" style="width:30em">
> + #foreach ( $group in $dataElementGroups )
> + <option value="$group.id" #if( $group.id == $
> configuration.infrastructuralDataElements.id )selected="selected"#end>$
> group.name</option>
> + #end
> +</select>
> +</p>
> +
> +<h4>$i18n.getString( "infrastructural_period_type" )</h4>
> +
> +<p>
> +<select name="infrastructuralPeriodType" style="width:30em">
> + #foreach ( $type in $periodTypes )
> + <option value="$type.name" #if( $type.name == $
> configuration.infrastructuralPeriodType.name )selected="selected"#end>$
> type.name</option>
> + #end
> +</select>
> +</p>
> +
> <h4>$i18n.getString( "feedback_recipients" )</h4>
>
> <p>
>
> === added file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetAllDataElementGroupSetsAction.java'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetAllDataElementGroupSetsAction.java
> 1970-01-01 00:00:00 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetAllDataElementGroupSetsAction.java
> 2011-06-06 14:30:38 +0000
> @@ -0,0 +1,82 @@
> +package org.hisp.dhis.mapping.action;
> +
> +/*
> + * Copyright (c) 2004-2010, University of Oslo
> + * All rights reserved.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions are
> met:
> + * * Redistributions of source code must retain the above copyright
> notice, this
> + * list of conditions and the following disclaimer.
> + * * Redistributions in binary form must reproduce the above copyright
> notice,
> + * this list of conditions and the following disclaimer in the
> documentation
> + * and/or other materials provided with the distribution.
> + * * Neither the name of the HISP project nor the names of its
> contributors may
> + * be used to endorse or promote products derived from this software
> without
> + * specific prior written permission.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
> IS" AND
> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> IMPLIED
> + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> LIABLE FOR
> + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> DAMAGES
> + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
> SERVICES;
> + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
> AND ON
> + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> OF THIS
> + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> + */
> +
> +import java.util.ArrayList;
> +import java.util.Collections;
> +import java.util.List;
> +
> +import org.hisp.dhis.dataelement.DataElementGroupSet;
> +import org.hisp.dhis.dataelement.DataElementService;
> +import
> org.hisp.dhis.dataelement.comparator.DataElementGroupSetNameComparator;
> +
> +import com.opensymphony.xwork2.Action;
> +
> +/**
> + * @author Jan Henrik Overland
> + * @version $Id$
> + */
> +public class GetAllDataElementGroupSetsAction
> + implements Action
> +{
> + //
> -------------------------------------------------------------------------
> + // Dependencies
> + //
> -------------------------------------------------------------------------
> +
> + private DataElementService dataElementService;
> +
> + public void setDataElementService( DataElementService
> dataElementService )
> + {
> + this.dataElementService = dataElementService;
> + }
> +
> + //
> -------------------------------------------------------------------------
> + // Output
> + //
> -------------------------------------------------------------------------
> +
> + private List<DataElementGroupSet> object;
> +
> + public List<DataElementGroupSet> getObject()
> + {
> + return object;
> + }
> +
> + //
> -------------------------------------------------------------------------
> + // Action implementation
> + //
> -------------------------------------------------------------------------
> +
> + public String execute()
> + throws Exception
> + {
> + object = new ArrayList<DataElementGroupSet>(
> dataElementService.getAllDataElementGroupSets() );
> +
> + Collections.sort( object, new DataElementGroupSetNameComparator()
> );
> +
> + return SUCCESS;
> + }
> +}
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetGeoJsonAction.java'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetGeoJsonAction.java
> 2011-05-23 16:04:37 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetGeoJsonAction.java
> 2011-06-09 13:05:20 +0000
> @@ -82,13 +82,6 @@
> this.level = level;
> }
>
> - private Boolean symbol;
> -
> - public void setSymbol( Boolean symbol )
> - {
> - this.symbol = symbol;
> - }
> -
> //
> -------------------------------------------------------------------------
> // Output
> //
> -------------------------------------------------------------------------
> @@ -114,8 +107,10 @@
> object = organisationUnitService.getOrganisationUnitsAtLevel(
> level, parent );
>
> FilterUtils.filter( object, new
> OrganisationUnitWithCoordinatesFilter() );
> +
> + String returnType = object.size() > 0 ?
> object.iterator().next().getFeatureType() : NONE;
>
> - if ( symbol != null )
> + if ( returnType.equals( OrganisationUnit.FEATURETYPE_POINT ) )
> {
> OrganisationUnitGroupSet typeGroupSet =
> organisationUnitGroupService
> .getOrganisationUnitGroupSetByName(
> OrganisationUnitGroupSetPopulator.NAME_TYPE );
> @@ -128,19 +123,8 @@
> organisationUnit.setType(
> organisationUnit.getGroupNameInGroupSet( typeGroupSet ) );
> }
> }
> -
> - if ( object.size() > 0 &&
> object.iterator().next().getFeatureType().equals(
> OrganisationUnit.FEATURETYPE_POINT ) )
> - {
> - return OrganisationUnit.RESULTTYPE_SYMBOL;
> - }
> -
> - else
> - {
> - object.clear();
> - return NONE;
> - }
> }
>
> - return object.size() > 0 ?
> object.iterator().next().getFeatureType() : NONE;
> + return returnType;
> }
> }
>
> === added file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetInfrastructuralDataElementMapValuesAction.java'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetInfrastructuralDataElementMapValuesAction.java
> 1970-01-01 00:00:00 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetInfrastructuralDataElementMapValuesAction.java
> 2011-06-08 13:52:49 +0000
> @@ -0,0 +1,98 @@
> +package org.hisp.dhis.mapping.action;
> +
> +/*
> + * Copyright (c) 2004-2010, University of Oslo
> + * All rights reserved.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions are
> met:
> + * * Redistributions of source code must retain the above copyright
> notice, this
> + * list of conditions and the following disclaimer.
> + * * Redistributions in binary form must reproduce the above copyright
> notice,
> + * this list of conditions and the following disclaimer in the
> documentation
> + * and/or other materials provided with the distribution.
> + * * Neither the name of the HISP project nor the names of its
> contributors may
> + * be used to endorse or promote products derived from this software
> without
> + * specific prior written permission.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
> IS" AND
> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> IMPLIED
> + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> LIABLE FOR
> + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> DAMAGES
> + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
> SERVICES;
> + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
> AND ON
> + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> OF THIS
> + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> + */
> +
> +import java.util.Collection;
> +
> +import org.hisp.dhis.aggregation.AggregatedMapValue;
> +import org.hisp.dhis.mapping.MappingService;
> +import org.hisp.dhis.period.Period;
> +import org.hisp.dhis.period.PeriodService;
> +import org.hisp.dhis.system.util.DateUtils;
> +
> +import com.opensymphony.xwork2.Action;
> +
> +/**
> + * @author Jan Henrik Overland
> + * @version $Id$
> + */
> +public class GetInfrastructuralDataElementMapValuesAction
> + implements Action
> +{
> + //
> -------------------------------------------------------------------------
> + // Dependencies
> + //
> -------------------------------------------------------------------------
> +
> + private MappingService mappingService;
> +
> + public void setMappingService( MappingService mappingService )
> + {
> + this.mappingService = mappingService;
> + }
> +
> + //
> -------------------------------------------------------------------------
> + // Input
> + //
> -------------------------------------------------------------------------
> +
> + private Integer periodId;
> +
> + public void setPeriodId( Integer periodId )
> + {
> + this.periodId = periodId;
> + }
> +
> + private Integer organisationUnitId;
> +
> + public void setOrganisationUnitId( Integer organisationUnitId )
> + {
> + this.organisationUnitId = organisationUnitId;
> + }
> +
> + //
> -------------------------------------------------------------------------
> + // Output
> + //
> -------------------------------------------------------------------------
> +
> + private Collection<AggregatedMapValue> object;
> +
> + public Collection<AggregatedMapValue> getObject()
> + {
> + return object;
> + }
> +
> + //
> -------------------------------------------------------------------------
> + // Action implementation
> + //
> -------------------------------------------------------------------------
> +
> + public String execute()
> + throws Exception
> + {
> + object = mappingService.getInfrastructuralDataElementMapValues(
> periodId, organisationUnitId );
> +
> + return SUCCESS;
> + }
> +}
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/InitializeAction.java'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/InitializeAction.java
> 2011-02-01 10:49:05 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/InitializeAction.java
> 2011-06-08 13:52:49 +0000
> @@ -34,10 +34,14 @@
> import java.util.Collections;
> import java.util.List;
>
> +import org.hisp.dhis.configuration.ConfigurationService;
> +import org.hisp.dhis.dataelement.DataElementGroup;
> import org.hisp.dhis.mapping.MapLayer;
> import org.hisp.dhis.mapping.MapView;
> import org.hisp.dhis.mapping.MappingService;
> import org.hisp.dhis.mapping.comparator.MapLayerNameComparator;
> +import org.hisp.dhis.period.PeriodService;
> +import org.hisp.dhis.period.PeriodType;
> import org.hisp.dhis.user.UserSettingService;
>
> import com.opensymphony.xwork2.Action;
> @@ -66,6 +70,20 @@
> {
> this.userSettingService = userSettingService;
> }
> +
> + private ConfigurationService configurationService;
> +
> + public void setConfigurationService( ConfigurationService
> configurationService )
> + {
> + this.configurationService = configurationService;
> + }
> +
> + private PeriodService periodService;
> +
> + public void setPeriodService( PeriodService periodService )
> + {
> + this.periodService = periodService;
> + }
>
> //
> -------------------------------------------------------------------------
> // Input
> @@ -109,6 +127,20 @@
> {
> return overlays;
> }
> +
> + private DataElementGroup infrastructuralDataElements;
> +
> + public DataElementGroup getInfrastructuralDataElements()
> + {
> + return infrastructuralDataElements;
> + }
> +
> + private PeriodType infrastructuralPeriodType;
> +
> + public PeriodType getInfrastructuralPeriodType()
> + {
> + return infrastructuralPeriodType;
> + }
>
> //
> -------------------------------------------------------------------------
> // Action implementation
> @@ -135,7 +167,11 @@
>
> overlays = new ArrayList<MapLayer>(
> mappingService.getMapLayersByType( MappingService.MAP_LAYER_TYPE_OVERLAY )
> );
>
> - Collections.sort( overlays, new MapLayerNameComparator() );
> + Collections.sort( overlays, new MapLayerNameComparator() );
> +
> + infrastructuralDataElements =
> configurationService.getConfiguration().getInfrastructuralDataElements();
> +
> + infrastructuralPeriodType =
> configurationService.getConfiguration().getInfrastructuralPeriodType();
>
> return SUCCESS;
> }
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/SetMapSystemSettingsAction.java'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/SetMapSystemSettingsAction.java
> 2011-03-08 14:55:19 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/SetMapSystemSettingsAction.java
> 2011-06-09 08:28:38 +0000
> @@ -27,7 +27,11 @@
> * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> */
>
> +import org.hisp.dhis.configuration.Configuration;
> +import org.hisp.dhis.configuration.ConfigurationService;
> import org.hisp.dhis.options.SystemSettingManager;
> +import org.hisp.dhis.period.PeriodService;
> +import org.hisp.dhis.period.PeriodType;
>
> import com.opensymphony.xwork2.Action;
>
> @@ -49,10 +53,24 @@
> this.systemSettingManager = systemSettingManager;
> }
>
> + private ConfigurationService configurationService;
> +
> + public void setConfigurationService( ConfigurationService
> configurationService )
> + {
> + this.configurationService = configurationService;
> + }
> +
> + private PeriodService periodService;
> +
> + public void setPeriodService( PeriodService periodService )
> + {
> + this.periodService = periodService;
> + }
> +
> //
> -------------------------------------------------------------------------
> // Input
> //
> -------------------------------------------------------------------------
> -
> +
> private String googleKey;
>
> public void setGoogleKey( String googleKey )
> @@ -60,6 +78,13 @@
> this.googleKey = googleKey;
> }
>
> + private String infrastructuralPeriodType;
> +
> + public void setInfrastructuralPeriodType( String
> infrastructuralPeriodType )
> + {
> + this.infrastructuralPeriodType = infrastructuralPeriodType;
> + }
> +
> //
> -------------------------------------------------------------------------
> // Action implementation
> //
> -------------------------------------------------------------------------
> @@ -71,7 +96,20 @@
> {
> systemSettingManager.saveSystemSetting(
> SystemSettingManager.KEY_GOOGLE_MAPS_API_KEY, googleKey );
> }
> -
> +
> + if ( infrastructuralPeriodType != null )
> + {
> + Configuration configuration =
> configurationService.getConfiguration();
> +
> + PeriodType periodType = infrastructuralPeriodType != null &&
> !infrastructuralPeriodType.isEmpty() ? periodService
> + .getPeriodTypeByClass( PeriodType.getPeriodTypeByName(
> infrastructuralPeriodType ).getClass() )
> + : null;
> +
> + configuration.setInfrastructuralPeriodType( periodType );
> +
> + configurationService.setConfiguration( configuration );
> + }
> +
> return SUCCESS;
> }
> -}
> +}
> \ No newline at end of file
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/resources/META-INF/dhis/beans.xml'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/resources/META-INF/dhis/beans.xml
> 2011-04-22 18:38:43 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/resources/META-INF/dhis/beans.xml
> 2011-06-08 13:52:49 +0000
> @@ -14,8 +14,10 @@
> <bean id="org.hisp.dhis.mapping.action.InitializeAction"
> class="org.hisp.dhis.mapping.action.InitializeAction"
> scope="prototype">
> + <property name="mappingService"
> ref="org.hisp.dhis.mapping.MappingService" />
> <property name="userSettingService"
> ref="org.hisp.dhis.user.UserSettingService" />
> - <property name="mappingService"
> ref="org.hisp.dhis.mapping.MappingService" />
> + <property name="configurationService"
> ref="org.hisp.dhis.configuration.ConfigurationService" />
> + <property name="periodService"
> ref="org.hisp.dhis.period.PeriodService" />
> </bean>
>
> <!-- OrganisationUnit -->
> @@ -74,6 +76,9 @@
> class="org.hisp.dhis.mapping.action.SetMapSystemSettingsAction"
> scope="prototype">
> <property name="systemSettingManager"
> ref="org.hisp.dhis.options.SystemSettingManager" />
> + <property name="configurationService"
> ref="org.hisp.dhis.configuration.ConfigurationService" />
> + <property name="periodService"
> ref="org.hisp.dhis.period.PeriodService" />
> +
> </bean>
>
> <bean id="org.hisp.dhis.mapping.action.DeleteMapSystemSettingsAction"
> @@ -96,6 +101,11 @@
> <property name="periodService"
> ref="org.hisp.dhis.period.PeriodService" />
> </bean>
>
> + <bean
> id="org.hisp.dhis.mapping.action.GetInfrastructuralDataElementMapValuesAction"
> +
> class="org.hisp.dhis.mapping.action.GetInfrastructuralDataElementMapValuesAction"
> scope="prototype">
> + <property name="mappingService"
> ref="org.hisp.dhis.mapping.MappingService" />
> + </bean>
> +
> <!-- MapLegend -->
>
> <bean id="org.hisp.dhis.mapping.action.AddOrUpdateMapLegendAction"
> @@ -256,6 +266,12 @@
>
> <!-- DataElement -->
>
> + <bean
> id="org.hisp.dhis.mapping.action.GetAllDataElementGroupSetsAction"
> +
> class="org.hisp.dhis.mapping.action.GetAllDataElementGroupSetsAction"
> + scope="prototype">
> + <property name="dataElementService"
> ref="org.hisp.dhis.dataelement.DataElementService" />
> + </bean>
> +
> <bean id="org.hisp.dhis.mapping.action.GetAllDataElementGroupsAction"
> class="org.hisp.dhis.mapping.action.GetAllDataElementGroupsAction"
> scope="prototype">
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/resources/struts.xml'
> --- dhis-2/dhis-web/dhis-web-mapping/src/main/resources/struts.xml
> 2011-05-13 10:42:19 +0000
> +++ dhis-2/dhis-web/dhis-web-mapping/src/main/resources/struts.xml
> 2011-06-09 13:05:20 +0000
> @@ -57,7 +57,7 @@
> <result name="success" type="velocity-json">
> /dhis-web-mapping/void.vm</result>
> </action>
> -
> +
> <!-- OrganisationUnit -->
>
> <action name="getAllOrganisationUnitLevels"
> @@ -105,6 +105,12 @@
> <result name="success" type="velocity-json">
> /dhis-web-mapping/jsonminAggregatedMapValues.vm</result>
> </action>
> +
> + <action name="getInfrastructuralDataElementMapValues"
> +
> class="org.hisp.dhis.mapping.action.GetInfrastructuralDataElementMapValuesAction">
> + <result name="success" type="velocity-json">
> +
> /dhis-web-mapping/jsonInfrastructuralAggregatedMapValues.vm</result>
> + </action>
>
> <!-- MapLegend -->
>
> @@ -286,6 +292,12 @@
>
> <!-- DataElement -->
>
> + <action name="getAllDataElementGroupSets"
> +
> class="org.hisp.dhis.mapping.action.GetAllDataElementGroupSetsAction">
> + <result name="success" type="velocity-json">
> + /dhis-web-mapping/jsonDataElementGroupSets.vm</result>
> + </action>
> +
> <action name="getAllDataElementGroups"
>
> class="org.hisp.dhis.mapping.action.GetAllDataElementGroupsAction">
> <result name="success" type="velocity-json">
> @@ -325,7 +337,6 @@
> <result name="Point"
> type="velocity-json">/dhis-web-mapping/geojsonPoint.vm</result>
> <result name="Polygon"
> type="velocity-json">/dhis-web-mapping/geojsonPolygon.vm</result>
> <result name="MultiPolygon"
> type="velocity-json">/dhis-web-mapping/geojsonPolygon.vm</result>
> - <result name="Symbol"
> type="velocity-json">/dhis-web-mapping/geojsonSymbol.vm</result>
> <result name="none"
> type="velocity-json">/dhis-web-mapping/geojsonPolygon.vm</result>
> </action>
>
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/geojsonPoint.vm'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/geojsonPoint.vm
> 2011-04-12 17:22:06 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/geojsonPoint.vm
> 2011-06-09 12:04:11 +0000
> @@ -1,2 +1,2 @@
> #set( $size = $object.size() )
> -{"type":"FeatureCollection","features":[#foreach($unit in
> $object){"geometry":{"type":"Point","coordinates":$!encoder.jsEncode(
> $!{unit.validCoordinates} )},"properties":{"id":"$!{unit.id}","name":"$!encoder.jsonEncode(
> ${unit.name}
> )","hasChildrenWithCoordinates":$!{unit.hasChildrenWithCoordinates()}#if
> ($type),"type":"$!encoder.jsonEncode( ${unit.type} )"#end}}#if(
> $velocityCount < $size ),#end
> #end],"crs":{"type":"EPSG","properties":{"code":"4326"}}}
> \ No newline at end of file
> +{"type":"FeatureCollection","features":[#foreach($unit in
> $object){"geometry":{"type":"Point","coordinates":$!encoder.jsEncode(
> $!{unit.validCoordinates} )},"properties":{"id":"$!{unit.id}","name":"$!encoder.jsonEncode(
> ${unit.name} )","ft":"$!encoder.jsonEncode( ${unit.featureType}
> )","type":"$!encoder.jsonEncode( ${unit.type}
> )","code":"$!encoder.jsonEncode(${unit.code})","cp":"$!encoder.jsonEncode(${unit.contactPerson})","ad":"$!encoder.jsonEncode(${unit.address})","em":"$!encoder.jsonEncode(${unit.email})","pn":"$!encoder.jsonEncode(${unit.phoneNumber})"}}#if(
> $velocityCount < $size
> ),#end#end],"crs":{"type":"EPSG","properties":{"code":"4326"}}}
> \ No newline at end of file
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/geojsonSymbol.vm'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/geojsonSymbol.vm
> 2011-05-13 12:34:23 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/geojsonSymbol.vm
> 2011-06-09 12:04:11 +0000
> @@ -1,2 +1,2 @@
> #set($size = $object.size())
> -{"type": "FeatureCollection","features":[#foreach($unit in
> $object){"geometry":{"type":"Point","coordinates":
> $!encoder.jsEncode($!{unit.validCoordinates})},"properties":{"id":"$!{
> unit.id}","name":"$!encoder.jsonEncode(${unit.name})","type":"$!encoder.jsonEncode(${unit.type})","code":"$!encoder.jsonEncode(${unit.code})","contactPerson":"$!encoder.jsonEncode(${unit.contactPerson})","address":"$!encoder.jsonEncode(${unit.address})","email":"$!encoder.jsonEncode(${unit.email}
> )","phoneNumber":
> "$!encoder.jsonEncode(${unit.phoneNumber})"}}#if($velocityCount<$size),#end#end],"crs":{"type":"EPSG","properties":{"code":"4326"}}}
> \ No newline at end of file
> +{"type": "FeatureCollection","features":[#foreach($unit in
> $object){"geometry":{"type":"Point","coordinates":
> $!encoder.jsEncode($!{unit.validCoordinates})},"properties":{"id":"$!{
> unit.id}","name":"$!encoder.jsonEncode(${unit.name})","type":"$!encoder.jsonEncode(${unit.type})","code":"$!encoder.jsonEncode(${unit.code})","cp":"$!encoder.jsonEncode(${unit.contactPerson})","ad":"$!encoder.jsonEncode(${unit.address})","em":"$!encoder.jsonEncode(${unit.email}
> )","pn":"$!encoder.jsonEncode(${unit.phoneNumber})"}}#if($velocityCount<$size),#end#end],"crs":{"type":"EPSG","properties":{"code":"4326"}}}
> \ No newline at end of file
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonAggregatedMapValues.vm'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonAggregatedMapValues.vm
> 2010-05-06 11:27:10 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonAggregatedMapValues.vm
> 2011-06-08 15:22:35 +0000
> @@ -1,5 +1,5 @@
> #set( $size = $object.size() )
> -{ "mapvalues": [
> +{ "mapValues": [
> #foreach( $value in $object )
> {
> "orgUnitId": "$!{value.organisationUnitId}",
>
> === added file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonDataElementGroupSets.vm'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonDataElementGroupSets.vm
> 1970-01-01 00:00:00 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonDataElementGroupSets.vm
> 2011-06-06 14:30:38 +0000
> @@ -0,0 +1,2 @@
> +#set( $size = $object.size() )
> +{"dataElementGroupSets":[#foreach( $dataElementGroupSet in $object )
> {"id":"$!{dataElementGroupSet.id}","name":"$!encoder.jsonEncode(
> ${dataElementGroupSet.name} )" }#if( $velocityCount < $size ),#end#end]}
> \ No newline at end of file
>
> === added file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonInfrastructuralAggregatedMapValues.vm'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonInfrastructuralAggregatedMapValues.vm
> 1970-01-01 00:00:00 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonInfrastructuralAggregatedMapValues.vm
> 2011-06-09 08:32:10 +0000
> @@ -0,0 +1,1 @@
> +#set( $size = $object.size() ){"mapValues":[#foreach( $value in $object
> ){"dataElementName":"$!{value.dataElementName}","value":$!{value.value}}#if(
> $velocityCount < $size ),#end#end]}
> \ No newline at end of file
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonInitialize.vm'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonInitialize.vm
> 2011-01-07 12:59:06 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonInitialize.vm
> 2011-06-08 13:52:49 +0000
> @@ -1,4 +1,3 @@
> -#set( $baseLaysersSize = $baseLayers.size() )
> #set( $overlaysSize = $overlays.size() )
> {
> "mapView": {
> @@ -37,25 +36,10 @@
> "mapDateType": "$!encoder.jsonEncode( ${mapDateType} )"
> },
> "systemSettings": {
> - "aggregationStrategy": "$!encoder.jsonEncode( ${aggregationStrategy}
> )"
> + "aggregationStrategy": "$!encoder.jsonEncode( ${aggregationStrategy}
> )",
> + "infrastructuralDataElements": "$!{infrastructuralDataElements.id}",
> + "infrastructuralPeriodType": "$!{infrastructuralPeriodType.name}"
> },
> - "baseLayers": [
> -#foreach( $baseLayer in $baseLayers )
> - {
> - "data": {
> - "id": "$!{baseLayer.id}",
> - "name": "$!encoder.jsonEncode( ${baseLayer.name} )",
> - "type": "$!encoder.jsonEncode( ${baseLayer.type} )",
> - "mapSource": "$!encoder.jsonEncode( ${baseLayer.mapSource} )",
> - "layer": "$!encoder.jsonEncode( ${baseLayer.layer} )",
> - "fillColor": "$!encoder.jsonEncode( ${baseLayer.fillColor} )",
> - "fillOpacity": "$!{baseLayer.fillOpacity}",
> - "strokeColor": "$!encoder.jsonEncode( ${baseLayer.strokeColor} )",
> - "strokeWidth": "$!{baseLayer.strokeWidth}"
> - }
> - }#if( $velocityCount < $baseLaysersSize ),#end
> -#end
> - ],
> "overlays": [
> #foreach( $overlay in $overlays )
> {
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonminAggregatedMapValues.vm'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonminAggregatedMapValues.vm
> 2010-10-29 11:24:12 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonminAggregatedMapValues.vm
> 2011-06-08 15:22:35 +0000
> @@ -1,1 +1,1 @@
> -#set( $size = $object.size() ){"mapvalues":[#foreach( $value in $object
> ){"orgUnitId":"$!{value.organisationUnitId}","orgUnitName":"$!{value.organisationUnitName}","value":"$!{value.value}"}#if(
> $velocityCount < $size ),#end#end]}
> \ No newline at end of file
> +#set( $size = $object.size() ){"mapValues":[#foreach( $value in $object
> ){"orgUnitId":"$!{value.organisationUnitId}","orgUnitName":"$!{value.organisationUnitName}","value":"$!{value.value}"}#if(
> $velocityCount < $size ),#end#end]}
> \ No newline at end of file
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/css/style.css'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/css/style.css
> 2011-05-27 08:42:07 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/css/style.css
> 2011-06-09 13:05:20 +0000
> @@ -340,6 +340,12 @@
> font:bold 11px arial;
> color:#111;
> }
> +.window-information-title {
> + padding:0 0 3px 21px;
> + background:url('../../../images/information2.png') no-repeat 0 0
> transparent;
> + font:bold 11px arial;
> + color:#111;
> +}
>
> /* Ext Panel */
> .panel-title {
> @@ -361,14 +367,27 @@
> }
>
> /* Ext Gridpanel */
> +td.x-grid3-hd-over, td.sort-desc, td.sort-asc, td.x-grid3-hd-menu-open {
> + border-left-color:#eeeeee;
> +}
> +.x-grid3-header-offset {
> + padding-left:0px;
> +}
> .x-grid3-cell-inner {
> color:#111111;
> font-size:10px;
> font-family:arial,ubuntu;
> }
> .x-grid3-hd-inner {
> - color:#111111;
> - font: bold 11px arial,ubuntu;
> + color:#0a0a0a;
> + font: 11px arial,ubuntu;
> +}
> +.x-grid3-row {
> + border-color:#ffffff;
> + border-bottom-color:#eeeeee;
> +}
> +.x-grid3-row-over {
> + color:red;
> }
> .sort-asc .x-grid3-sort-icon {
> display:none;
> @@ -376,9 +395,10 @@
> #featuregrid_gp .x-grid3-header {
> display:none;
> }
> -#featuregrid_gp .x-grid3-row {
> - border-right:0px none;
> - border-left:0px none;
> +
> +/* Ext TableLayout */
> +.x-table-layout-cell {
> + vertical-align:top;
> }
>
> /* DHIS Help */
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/global.js'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/global.js
> 2011-05-26 13:44:26 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/global.js
> 2011-06-08 12:11:42 +0000
> @@ -36,6 +36,10 @@
> window_width: 251,
> window_position_x: 55,
> window_position_y: 41,
> + adminwindow_collapsed: 77,
> + adminwindow_expanded_1: Ext.isChrome || (Ext.isWindows && Ext.isGecko)
> ? 171 : 166,
> + adminwindow_expanded_2: Ext.isChrome || (Ext.isWindows && Ext.isGecko)
> ? 145 : 143,
> +
>
> // GUI
>
> @@ -497,7 +501,9 @@
> isStartEnd: function() {
> return this.value === G.conf.map_date_type_start_end;
> }
> - }
> + },
> +
> + infrastructuralPeriodType: null
> };
>
> G.func = {
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/index.js'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/index.js
> 2011-05-27 08:42:07 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/index.js
> 2011-06-10 11:47:41 +0000
> @@ -1,4 +1,4 @@
> -Ext.onReady( function() {
> +Ext.onReady( function() {
> Ext.BLANK_IMAGE_URL =
> '../resources/ext-ux/theme/gray-extend/gray-extend/s.gif';
>
> Ext.override(Ext.form.Field,{showField:function(){this.show();this.container.up('div.x-form-item').setDisplayed(true);},hideField:function(){this.hide();this.container.up('div.x-form-item').setDisplayed(false);}});
> Ext.QuickTips.init();
> @@ -22,6 +22,8 @@
> G.user.initOverlays = init.overlays;
> G.user.isAdmin = init.security.isAdmin;
> G.system.aggregationStrategy =
> init.systemSettings.aggregationStrategy;
> + G.system.infrastructuralDataElements =
> init.systemSettings.infrastructuralDataElements;
> + G.system.infrastructuralPeriodType =
> init.systemSettings.infrastructuralPeriodType;
> G.system.mapDateType.value = G.system.aggregationStrategy ==
> G.conf.aggregation_strategy_batch ?
> G.conf.map_date_type_fixed :
> init.userSettings.mapDateType;
>
> @@ -156,6 +158,28 @@
> }
> });
>
> + var infrastructuralPeriodTypeStore = new Ext.data.JsonStore({
> + url: G.conf.path_mapping + 'getAllPeriodTypes' + G.conf.type,
> + root: 'periodTypes',
> + fields: ['name', 'displayName'],
> + autoLoad: false,
> + isLoaded: false,
> + listeners: {
> + 'load': G.func.storeLoadListener
> + }
> + });
> +
> + var infrastructuralPeriodsByTypeStore = new Ext.data.JsonStore({
> + url: G.conf.path_mapping + 'getPeriodsByPeriodType' + G.conf.type,
> + root: 'periods',
> + fields: ['id', 'name'],
> + autoLoad: false,
> + isLoaded: false,
> + listeners: {
> + 'load': G.func.storeLoadListener
> + }
> + });
> +
> var predefinedMapLegendStore = new Ext.data.JsonStore({
> url: G.conf.path_mapping + 'getAllMapLegends' + G.conf.type,
> root: 'mapLegends',
> @@ -261,7 +285,9 @@
> dataElementsByGroup: dataElementsByGroupStore,
> dataElement: dataElementStore,
> periodType: periodTypeStore,
> - periodsByTypeStore: periodsByTypeStore,
> + periodsByType: periodsByTypeStore,
> + infrastructuralPeriodType: infrastructuralPeriodTypeStore,
> + infrastructuralPeriodsByType: infrastructuralPeriodsByTypeStore,
> predefinedMapLegend: predefinedMapLegendStore,
> predefinedMapLegendSet: predefinedMapLegendSetStore,
> organisationUnitLevel: organisationUnitLevelStore,
> @@ -579,7 +605,7 @@
> /* Section: export map */
> var exportImageWindow = new Ext.Window({
> id: 'exportimage_w',
> - title: '<span id="window-image-title">Image export</span>',
> + title: '<span id="window-image-title">Export image</span>',
> layout: 'fit',
> closeAction: 'hide',
> width: G.conf.window_width,
> @@ -1641,143 +1667,6 @@
> }
> ]
> });
> -
> - /* Section: base layers */
> - var baselayersWindow = new Ext.Window({
> - id: 'baselayers_w',
> - title: '<span id="window-maplayer-title">' + G.i18n.baselayers +
> '</span>',
> - layout: 'fit',
> - closeAction: 'hide',
> - width: G.conf.window_width,
> - height: 229,
> - items: [
> - {
> - xtype: 'form',
> - bodyStyle: 'padding:8px',
> - items: [
> - {html: '<div class="window-info">Register new base
> layer</div>'},
> - {
> - xtype: 'textfield',
> - id: 'maplayerbaselayersname_tf',
> - emptytext: G.conf.emptytext,
> - labelSeparator: G.conf.labelseparator,
> - fieldLabel: G.i18n.display_name,
> - width: G.conf.combo_width_fieldset,
> - autoCreate: {tag: 'input', type: 'text', size:
> '20', autocomplete: 'off', maxlength: '35'}
> - },
> - {
> - xtype: 'textfield',
> - id: 'maplayerbaselayersurl_tf',
> - emptytext: G.conf.emptytext,
> - labelSeparator: G.conf.labelseparator,
> - fieldLabel: G.i18n.url,
> - width: G.conf.combo_width_fieldset,
> - },
> - {
> - xtype: 'textfield',
> - id: 'maplayerbaselayerslayer_tf',
> - emptytext: G.conf.emptytext,
> - labelSeparator: G.conf.labelseparator,
> - fieldLabel: G.i18n.layer,
> - width: G.conf.combo_width_fieldset,
> - },
> - {html: '<div class="window-p"></div>'},
> - {html: '<div class="window-info">Delete
> overlay</div>'},
> - {
> - xtype: 'combo',
> - id: 'maplayerbaselayers_cb',
> - editable: false,
> - valueField: 'id',
> - displayField: 'name',
> - mode: 'remote',
> - forceSelection: true,
> - triggerAction: 'all',
> - emptytext: G.conf.emptytext,
> - labelSeparator: G.conf.labelseparator,
> - fieldLabel: G.i18n.baselayer,
> - width: G.conf.combo_width_fieldset,
> - store: G.stores.baseLayer
> - }
> - ]
> - }
> - ],
> - bbar: [
> - '->',
> - {
> - xtype: 'button',
> - id: 'newmaplayerbaselayers_b',
> - text: G.i18n.register,
> - iconCls: 'icon-add',
> - handler: function() {
> - var mlbn =
> Ext.getCmp('maplayerbaselayersname_tf').getValue();
> - var mlbu =
> Ext.getCmp('maplayerbaselayersurl_tf').getValue();
> - var mlbl =
> Ext.getCmp('maplayerbaselayerslayer_tf').getValue();
> -
> - if (!mlbn || !mlbu || !mlbl) {
> - Ext.message.msg(false,
> G.i18n.form_is_not_complete);
> - return;
> - }
> -
> - if (G.stores.baseLayer.find('name', mlbn) !== -1) {
> - Ext.message.msg(false, G.i18n.name + ' <span
> class="x-msg-hl">' + mlbn + '</span> ' + G.i18n.is_already_in_use);
> - return;
> - }
> -
> - Ext.Ajax.request({
> - url: G.conf.path_mapping + 'addOrUpdateMapLayer' +
> G.conf.type,
> - method: 'POST',
> - params: {name: mlbn, type:
> G.conf.map_layer_type_baselayer, mapSource: mlbu, layer: mlbl, fillColor:
> '', fillOpacity: 0, strokeColor: '', strokeWidth: 0},
> - success: function(r) {
> - Ext.message.msg(true, G.i18n.baselayer +
> '<span class="x-msg-hl"> ' + mlbn + '</span> ' + G.i18n.registered);
> - G.vars.map.addLayers([
> - new OpenLayers.Layer.WMS(mlbn, mlbu,
> {layers: mlbl})
> - ]);
> -
> - G.stores.baseLayer.load();
> -
> Ext.getCmp('maplayerbaselayersname_tf').reset();
> -
> Ext.getCmp('maplayerbaselayersurl_tf').reset();
> -
> Ext.getCmp('maplayerbaselayerslayer_tf').reset();
> - }
> - });
> - }
> - },
> - {
> - xtype: 'button',
> - id: 'deletemaplayerbaselayers_b',
> - text: G.i18n.delete_,
> - iconCls: 'icon-remove',
> - handler: function() {
> - var ml =
> Ext.getCmp('maplayerbaselayers_cb').getValue();
> - var mln =
> Ext.getCmp('maplayerbaselayers_cb').getRawValue();
> -
> - if (!ml) {
> - Ext.message.msg(false,
> G.i18n.please_select_a_baselayer);
> - return;
> - }
> -
> - Ext.Ajax.request({
> - url: G.conf.path_mapping + 'deleteMapLayer' +
> G.conf.type,
> - method: 'POST',
> - params: {id: ml},
> - success: function(r) {
> - Ext.message.msg(true, G.i18n.baselayer + '
> <span class="x-msg-hl">' + mln + '</span> '+G.i18n.deleted);
> - G.stores.baseLayer.load({callback: function()
> {
> -
> Ext.getCmp('maplayerbaselayers_cb').clearValue();
> - var names =
> G.stores.baseLayer.collect('name');
> -
> - for (var i = 0; i < names.length; i++) {
> -
> G.vars.map.getLayersByName(names[i])[0].setVisibility(false);
> - }
> -
> -
> G.vars.map.getLayersByName(mln)[0].destroy(false);
> - }});
> - }
> - });
> -
> - }
> - }
> - ]
> - });
>
> /* Section: administrator settings */
> var adminWindow = new Ext.Window({
> @@ -1786,8 +1675,8 @@
> layout: 'accordion',
> closeAction: 'hide',
> width: G.conf.window_width,
> - height: 145,
> - minHeight: 77,
> + height: G.conf.adminwindow_expanded_1,
> + minHeight: G.conf.adminwindow_collapsed,
> items: [
> {
> title: 'Google Maps',
> @@ -1857,11 +1746,13 @@
> }
> ],
> listeners: {
> - expand: function() {
> - adminWindow.setHeight(Ext.isChrome ||
> (Ext.isWindows && Ext.isGecko) ? 170 : 166);
> + expand: {
> + fn: function() {
> +
> adminWindow.setHeight(G.conf.adminwindow_expanded_1);
> + }
> },
> collapse: function() {
> - adminWindow.setHeight(77);
> +
> adminWindow.setHeight(G.conf.adminwindow_collapsed);
> }
> }
> },
> @@ -1920,17 +1811,17 @@
> ],
> listeners: {
> expand: function() {
> - adminWindow.setHeight(Ext.isChrome ||
> (Ext.isWindows && Ext.isGecko) ? 145 : 143);
> +
> adminWindow.setHeight(G.conf.adminwindow_expanded_2);
> },
> collapse: function() {
> - adminWindow.setHeight(77);
> +
> adminWindow.setHeight(G.conf.adminwindow_collapsed);
> }
> }
> - }
> + }
> ],
> listeners: {
> afterrender: function() {
> - adminWindow.setHeight(Ext.isChrome || (Ext.isWindows &&
> Ext.isGecko) ? 170 : 166);
> + adminWindow.setHeight(G.conf.adminwindow_expanded_1);
> }
> }
> });
> @@ -2050,7 +1941,7 @@
> id: 'locatefeature_tf',
> emptyText: G.conf.emptytext,
> labelSeparator:
> G.conf.labelseparator,
> - fieldLabel: G.i18n.feature_filter,
> + fieldLabel: 'Text filter',
> width: G.conf.combo_width_fieldset,
> enableKeyEvents: true,
> listeners: {
> @@ -2663,7 +2554,9 @@
> tooltip: 'Administrator settings',
> disabled: !G.user.isAdmin,
> style: 'margin-top:1px',
> - handler: function() {
> + handler: function() {
> +console.log(G.stores.infrastructuralDataElementMapValue);
> +return;
> if (!adminWindow.hidden) {
> adminWindow.hide();
> }
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/theme/gray-extend/xtheme-gray-extend.css'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/theme/gray-extend/xtheme-gray-extend.css
> 2011-05-19 08:26:11 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/theme/gray-extend/xtheme-gray-extend.css
> 2011-06-09 09:40:41 +0000
> @@ -478,7 +478,6 @@
> td.x-grid3-hd-over .x-grid3-hd-inner, td.sort-desc .x-grid3-hd-inner,
> td.sort-asc .x-grid3-hd-inner, td.x-grid3-hd-menu-open .x-grid3-hd-inner {
> background-color:#f2f2f2;
> background-image:url(gray-extend/grid/grid3-hrow-over.gif);
> -
> }
> .sort-asc .x-grid3-sort-icon {
> background-image: url(gray-extend/grid/sort_asc.gif);
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat.js'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat.js
> 2011-05-25 12:46:06 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat.js
> 2011-06-09 09:03:56 +0000
> @@ -167,8 +167,8 @@
>
> mapfish.GeoStat.Distribution = OpenLayers.Class({
>
> - labelGenerator: function(bin, binIndex, nbBins, maxDec) {
> - return this.defaultLabelGenerator(bin, binIndex, nbBins, maxDec);
> + labelGenerator: function(bin, binIndex, nbBins) {
> + return this.defaultLabelGenerator(bin, binIndex, nbBins);
> },
>
> values: null,
> @@ -187,9 +187,9 @@
> this.maxVal = this.nbVal ? mapfish.Util.max(this.values) : 0;
> },
>
> - defaultLabelGenerator: function(bin, binIndex, nbBins, maxDec) {
> - lower = parseFloat(bin.lowerBound).toFixed(maxDec);
> - upper = parseFloat(bin.upperBound).toFixed(maxDec);
> + defaultLabelGenerator: function(bin, binIndex, nbBins) {
> + lower = parseFloat(bin.lowerBound).toFixed(1);
> + upper = parseFloat(bin.upperBound).toFixed(1);
> return lower + ' - ' + upper + ' ( ' + bin.nbVal + '
> )';
> },
>
> @@ -197,7 +197,6 @@
> var bins = [];
> var binCount = [];
> var sortedValues = [];
> - var maxDec = 0;
>
> for (var i = 0; i < this.values.length; i++) {
> sortedValues.push(this.values[i]);
> @@ -219,18 +218,11 @@
> }
>
> binCount[nbBins - 1] = this.nbVal - mapfish.Util.sum(binCount);
> -
> - for (var l = 0; l < bounds.length; l++) {
> - var dec = G.util.getNumberOfDecimals(bounds[l].toString(),
> ".");
> - maxDec = dec > maxDec ? dec : maxDec;
> - }
> -
> - maxDec = maxDec > 3 ? 3 : maxDec;
>
> for (var m = 0; m < nbBins; m++) {
> bins[m] = new mapfish.GeoStat.Bin(binCount[m], bounds[m],
> bounds[m + 1], m == (nbBins - 1));
> var labelGenerator = this.labelGenerator ||
> this.defaultLabelGenerator;
> - bins[m].label = labelGenerator(bins[m], m, nbBins, maxDec);
> + bins[m].label = labelGenerator(bins[m], m, nbBins);
> }
>
> return new mapfish.GeoStat.Classification(bins);
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Choropleth.js'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Choropleth.js
> 2011-05-26 13:44:26 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Choropleth.js
> 2011-06-10 11:47:41 +0000
> @@ -78,6 +78,10 @@
>
> imageLegend: false,
>
> + stores: false,
> +
> + infrastructuralPeriod: false,
> +
> initComponent: function() {
>
> this.initProperties();
> @@ -212,6 +216,20 @@
> return this.value == G.conf.map_value_type_dataelement;
> }
> };
> +
> + this.stores = {
> + infrastructuralDataElementMapValue: new Ext.data.JsonStore({
> + url: G.conf.path_mapping +
> 'getInfrastructuralDataElementMapValues' + G.conf.type,
> + root: 'mapValues',
> + fields: ['dataElementName', 'value'],
> + sortInfo: {field: 'dataElementName', direction: 'ASC'},
> + autoLoad: false,
> + isLoaded: false,
> + listeners: {
> + 'load': G.func.storeLoadListener
> + }
> + })
> + };
> },
>
> createItems: function() {
> @@ -488,8 +506,8 @@
> scope: this,
> fn: function(cb) {
> this.form.findField('period').clearValue();
> - G.stores.periodsByTypeStore.setBaseParam('name',
> cb.getValue());
> - G.stores.periodsByTypeStore.load();
> + G.stores.periodsByType.setBaseParam('name',
> cb.getValue());
> + G.stores.periodsByType.load();
> }
> }
> }
> @@ -508,7 +526,7 @@
> triggerAction: 'all',
> selectOnFocus: true,
> width: G.conf.combo_width,
> - store: G.stores.periodsByTypeStore,
> + store: G.stores.periodsByType,
> keepPosition: false,
> listeners: {
> 'select': {
> @@ -1012,32 +1030,141 @@
> };
>
> var onClickSelect = function onClickSelect(feature) {
> - if (feature.attributes.hasChildrenWithCoordinates) {
> - if (G.vars.locateFeatureWindow) {
> - G.vars.locateFeatureWindow.destroy();
> - }
> -
> - scope.updateValues = true;
> - scope.isDrillDown = true;
> -
> - function organisationUnitLevelCallback() {
> - var names =
> this.organisationUnitSelection.setValuesOnDrillDown(feature.attributes.id,
> feature.attributes.name);
> - this.form.findField('boundary').setValue(names[0]);
> - this.form.findField('level').setValue(names[1]);
> - this.loadGeoJson();
> - }
> -
> - if (G.stores.organisationUnitLevel.isLoaded) {
> - organisationUnitLevelCallback.call(scope);
> + if (feature.attributes.ft == G.conf.map_feature_type_point) {
> + if (scope.featureInfoWindow) {
> + scope.featureInfoWindow.destroy();
> + }
> +
> + function fn() {
> + scope.featureInfoWindow = new Ext.Window({
> + title: '<span class="window-information-title">' +
> feature.attributes.name + '</span>',
> + layout: 'table',
> + width: G.conf.window_width + 178,
> + height: G.util.getMultiSelectHeight() + 100,
> + bodyStyle: 'background-color:#fff',
> + defaults: {
> + bodyStyle: 'vertical-align:top',
> + labelSeparator: G.conf.labelseparator,
> + emptyText: G.conf.emptytext
> + },
> + layoutConfig: {
> + columns: 2
> + },
> + items: [
> + {
> + xtype: 'panel',
> + layout: 'anchor',
> + bodyStyle: 'padding:8px 4px 8px 8px',
> + width: 160,
> + items: [
> + {html: '<div
> class="window-info">Type<p style="font-weight:normal">' +
> feature.attributes.type + '</p></div>'},
> + {html: '<div
> class="window-info">Code<p style="font-weight:normal">' +
> feature.attributes.code + '</p></div>'},
> + {html: '<div
> class="window-info">Address<p style="font-weight:normal">' +
> feature.attributes.ad + '</p></div>'},
> + {html: '<div
> class="window-info">Contact person<p style="font-weight:normal">' +
> feature.attributes.cp + '</p></div>'},
> + {html: '<div
> class="window-info">Email<p style="font-weight:normal">' +
> feature.attributes.em + '</p></div>'},
> + {html: '<div class="window-info">Phone
> number<p style="font-weight:normal">' + feature.attributes.pn +
> '</p></div>'}
> + ]
> + },
> + {
> + xtype: 'form',
> + bodyStyle: 'padding:8px 8px 8px 4px',
> + width: G.conf.window_width + 20,
> + labelWidth: G.conf.label_width,
> + items: [
> + {html: '<div
> class="window-info">Infrastructural data</div>'},
> + {
> + xtype: 'combo',
> + name: 'period',
> + fieldLabel: G.i18n.period,
> + typeAhead: true,
> + editable: false,
> + valueField: 'id',
> + displayField: 'name',
> + mode: 'remote',
> + forceSelection: true,
> + triggerAction: 'all',
> + selectOnFocus: true,
> + width: G.conf.combo_width,
> + store:
> G.stores.infrastructuralPeriodsByType,
> + keepPosition: false,
> + listeners: {
> + 'select': function(cb) {
> +
> scope.infrastructuralPeriod = cb.getValue();
> +
> scope.stores.infrastructuralDataElementMapValue.setBaseParam('periodId',
> cb.getValue());
> +
> scope.stores.infrastructuralDataElementMapValue.setBaseParam('organisationUnitId',
> feature.attributes.id);
> +
> scope.stores.infrastructuralDataElementMapValue.load();
> + }
> + }
> + },
> + {html: '<div style="padding:4px 0 0
> 0"></div>'},
> + {
> + xtype: 'grid',
> + height:
> G.util.getMultiSelectHeight(),
> + width: 242,
> + cm: new Ext.grid.ColumnModel({
> + columns: [
> + {id: 'dataElementName',
> header: 'Data element', dataIndex: 'dataElementName', sortable: true, width:
> 150},
> + {id: 'value', header:
> 'Value', dataIndex: 'value', sortable: true, width: 50}
> + ]
> + }),
> + disableSelection: true,
> + viewConfig: {forceFit: true},
> + store:
> scope.stores.infrastructuralDataElementMapValue
> + }
> + ]
> + }
> + ]
> + });
> +
> + if (scope.infrastructuralPeriod) {
> + scope.featureInfoWindow.find('name',
> 'period')[0].setValue(scope.infrastructuralPeriod);
> +
> scope.stores.infrastructuralDataElementMapValue.setBaseParam('periodId',
> scope.infrastructuralPeriod);
> +
> scope.stores.infrastructuralDataElementMapValue.setBaseParam('organisationUnitId',
> feature.attributes.id);
> +
> scope.stores.infrastructuralDataElementMapValue.load();
> + }
> +
> +
> scope.featureInfoWindow.setPagePosition(Ext.getCmp('east').x -
> (G.conf.window_width + 178 + 15 + 5), Ext.getCmp('center').y + 41);
> + scope.featureInfoWindow.show();
> + }
> +
> + if (G.stores.infrastructuralPeriodsByType.isLoaded) {
> + fn();
> }
> else {
> - G.stores.organisationUnitLevel.load({scope: scope,
> callback: function() {
> - organisationUnitLevelCallback.call(this);
> +
> G.stores.infrastructuralPeriodsByType.setBaseParam('name',
> G.system.infrastructuralPeriodType);
> + G.stores.infrastructuralPeriodsByType.load({callback:
> function() {
> + fn();
> }});
> }
> }
> else {
> - Ext.message.msg(false, G.i18n.no_coordinates_found);
> + if (feature.attributes.hasChildrenWithCoordinates) {
> + if (G.vars.locateFeatureWindow) {
> + G.vars.locateFeatureWindow.destroy();
> + }
> +
> + scope.updateValues = true;
> + scope.isDrillDown = true;
> +
> + function organisationUnitLevelCallback() {
> + var names =
> this.organisationUnitSelection.setValuesOnDrillDown(feature.attributes.id,
> feature.attributes.name);
> +
> this.form.findField('boundary').setValue(names[0]);
> + this.form.findField('level').setValue(names[1]);
> + this.loadGeoJson();
> + }
> +
> + if (G.stores.organisationUnitLevel.isLoaded) {
> + organisationUnitLevelCallback.call(scope);
> + }
> + else {
> + G.stores.organisationUnitLevel.load({scope: scope,
> callback: function() {
> + organisationUnitLevelCallback.call(this);
> + }});
> + }
> + }
> + else {
> + Ext.message.msg(false, G.i18n.no_coordinates_found);
> + }
> }
> };
>
> @@ -1107,7 +1234,7 @@
> };
> obj.stores = {
> c1: G.stores.periodType,
> - c2: G.stores.periodsByTypeStore
> + c2: G.stores.periodsByType
> };
> obj.mapView = {
> c1: 'periodTypeId',
> @@ -1510,7 +1637,7 @@
> params: params,
> scope: this,
> success: function(r) {
> - var mapvalues =
> Ext.util.JSON.decode(r.responseText).mapvalues;
> + var mapvalues =
> Ext.util.JSON.decode(r.responseText).mapValues;
>
> if (!this.layer.features.length) {
> Ext.message.msg(false, 'No coordinates found');
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Point.js'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Point.js
> 2011-05-26 13:44:26 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Point.js
> 2011-06-10 11:47:41 +0000
> @@ -78,6 +78,10 @@
>
> imageLegend: false,
>
> + stores: false,
> +
> + infrastructuralPeriod: false,
> +
> initComponent: function() {
>
> this.initProperties();
> @@ -183,6 +187,20 @@
> return this.value == G.conf.map_value_type_dataelement;
> }
> };
> +
> + this.stores = {
> + infrastructuralDataElementMapValue: new Ext.data.JsonStore({
> + url: G.conf.path_mapping +
> 'getInfrastructuralDataElementMapValues' + G.conf.type,
> + root: 'mapValues',
> + fields: ['dataElementName', 'value'],
> + sortInfo: {field: 'dataElementName', direction: 'ASC'},
> + autoLoad: false,
> + isLoaded: false,
> + listeners: {
> + 'load': G.func.storeLoadListener
> + }
> + })
> + };
> },
>
> createItems: function() {
> @@ -459,8 +477,8 @@
> scope: this,
> fn: function(cb) {
> this.form.findField('period').clearValue();
> - G.stores.periodsByTypeStore.setBaseParam('name',
> cb.getValue());
> - G.stores.periodsByTypeStore.load();
> + G.stores.periodsByType.setBaseParam('name',
> cb.getValue());
> + G.stores.periodsByType.load();
> }
> }
> }
> @@ -479,7 +497,7 @@
> triggerAction: 'all',
> selectOnFocus: true,
> width: G.conf.combo_width,
> - store: G.stores.periodsByTypeStore,
> + store: G.stores.periodsByType,
> keepPosition: false,
> listeners: {
> 'select': {
> @@ -983,32 +1001,141 @@
> };
>
> var onClickSelect = function onClickSelect(feature) {
> - if (feature.attributes.hasChildrenWithCoordinates) {
> - if (G.vars.locateFeatureWindow) {
> - G.vars.locateFeatureWindow.destroy();
> - }
> -
> - scope.updateValues = true;
> - scope.isDrillDown = true;
> -
> - function organisationUnitLevelCallback() {
> - var names =
> this.organisationUnitSelection.setValuesOnDrillDown(feature.attributes.id,
> feature.attributes.name);
> - this.form.findField('boundary').setValue(names[0]);
> - this.form.findField('level').setValue(names[1]);
> - this.loadGeoJson();
> - }
> -
> - if (G.stores.organisationUnitLevel.isLoaded) {
> - organisationUnitLevelCallback.call(scope);
> + if (feature.attributes.ft == G.conf.map_feature_type_point) {
> + if (scope.featureInfoWindow) {
> + scope.featureInfoWindow.destroy();
> + }
> +
> + function fn() {
> + scope.featureInfoWindow = new Ext.Window({
> + title: '<span class="window-information-title">' +
> feature.attributes.name + '</span>',
> + layout: 'table',
> + width: G.conf.window_width + 178,
> + height: G.util.getMultiSelectHeight() + 100,
> + bodyStyle: 'background-color:#fff',
> + defaults: {
> + bodyStyle: 'vertical-align:top',
> + labelSeparator: G.conf.labelseparator,
> + emptyText: G.conf.emptytext
> + },
> + layoutConfig: {
> + columns: 2
> + },
> + items: [
> + {
> + xtype: 'panel',
> + layout: 'anchor',
> + bodyStyle: 'padding:8px 4px 8px 8px',
> + width: 160,
> + items: [
> + {html: '<div
> class="window-info">Type<p style="font-weight:normal">' +
> feature.attributes.type + '</p></div>'},
> + {html: '<div
> class="window-info">Code<p style="font-weight:normal">' +
> feature.attributes.code + '</p></div>'},
> + {html: '<div
> class="window-info">Address<p style="font-weight:normal">' +
> feature.attributes.ad + '</p></div>'},
> + {html: '<div
> class="window-info">Contact person<p style="font-weight:normal">' +
> feature.attributes.cp + '</p></div>'},
> + {html: '<div
> class="window-info">Email<p style="font-weight:normal">' +
> feature.attributes.em + '</p></div>'},
> + {html: '<div class="window-info">Phone
> number<p style="font-weight:normal">' + feature.attributes.pn +
> '</p></div>'}
> + ]
> + },
> + {
> + xtype: 'form',
> + bodyStyle: 'padding:8px 8px 8px 4px',
> + width: G.conf.window_width + 20,
> + labelWidth: G.conf.label_width,
> + items: [
> + {html: '<div
> class="window-info">Infrastructural data</div>'},
> + {
> + xtype: 'combo',
> + name: 'period',
> + fieldLabel: G.i18n.period,
> + typeAhead: true,
> + editable: false,
> + valueField: 'id',
> + displayField: 'name',
> + mode: 'remote',
> + forceSelection: true,
> + triggerAction: 'all',
> + selectOnFocus: true,
> + width: G.conf.combo_width,
> + store:
> G.stores.infrastructuralPeriodsByType,
> + keepPosition: false,
> + listeners: {
> + 'select': function(cb) {
> +
> scope.infrastructuralPeriod = cb.getValue();
> +
> scope.stores.infrastructuralDataElementMapValue.setBaseParam('periodId',
> cb.getValue());
> +
> scope.stores.infrastructuralDataElementMapValue.setBaseParam('organisationUnitId',
> feature.attributes.id);
> +
> scope.stores.infrastructuralDataElementMapValue.load();
> + }
> + }
> + },
> + {html: '<div style="padding:4px 0 0
> 0"></div>'},
> + {
> + xtype: 'grid',
> + height:
> G.util.getMultiSelectHeight(),
> + width: 242,
> + cm: new Ext.grid.ColumnModel({
> + columns: [
> + {id: 'dataElementName',
> header: 'Data element', dataIndex: 'dataElementName', sortable: true, width:
> 150},
> + {id: 'value', header:
> 'Value', dataIndex: 'value', sortable: true, width: 50}
> + ]
> + }),
> + disableSelection: true,
> + viewConfig: {forceFit: true},
> + store:
> scope.stores.infrastructuralDataElementMapValue
> + }
> + ]
> + }
> + ]
> + });
> +
> + if (scope.infrastructuralPeriod) {
> + scope.featureInfoWindow.find('name',
> 'period')[0].setValue(scope.infrastructuralPeriod);
> + scope.stores.infrastructuralDataElementMapVa
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-devs
> Post to : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-devs
> More help : https://help.launchpad.net/ListHelp
>
>
Attachment:
inf.png
Description: PNG image
References