[Branch ~dhis2-devs-core/dhis2/trunk] Rev 3865: (GIS) Infrastructural data sheet for facilities implemented. Select data element group and period...

Merge authors:
  Jan Henrik Øverland (janhenrik-overland)

revision-diff.txt (117 KB)

···

------------------------------------------------------------
revno: 3865 [merge]
committer: Jan Henrik Overland <janhenrik.overland@gmail.com>
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

Click a point in any layer to open a profile window. Screenshot attached.

···

On Fri, Jun 10, 2011 at 13:55, noreply@launchpad.net wrote:

Merge authors:

Jan Henrik Øverland (janhenrik-overland)


revno: 3865 [merge]

committer: Jan Henrik Overland janhenrik.overland@gmail.com

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 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 getIndicatorMapValues( Integer indicatorId, Period period, Date startDate, Date endDate,

  •    Integer parentOrganisationUnitId, Integer level )
    
  • public Collection 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 getDataElementMapValues( Integer dataElementId, Period period, Date startDate, Date endDate,

  •    Integer parentOrganisationUnitId, Integer level )
    
  • public Collection 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 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"/>
    

=== 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 dataElementGroups;

  • public List getDataElementGroups()

  • {

  •    return dataElementGroups;
    
  • }

  • private List periodTypes;

  • public List 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 @@

+

$i18n.getString( “infrastructural_data_elements” )

+

+

  • #foreach ( $group in $dataElementGroups )

  • $[group.name](http://group.name)
  • #end

+

+

+

$i18n.getString( “infrastructural_period_type” )

+

+

  • #foreach ( $type in $periodTypes )

  • $[type.name](http://type.name)
  • #end

+

+

$i18n.getString( "feedback_recipients" )

=== 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 © 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 object;

  • public List 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 © 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 object;

  • public Collection 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" />
    
      <!-- 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" />
    
    <!-- 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 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](http://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 + '&nbsp;&nbsp; ( ' + 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](http://feature.attributes.id), [feature.attributes.name](http://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](http://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](http://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](http://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](http://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](http://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](http://feature.attributes.id), [feature.attributes.name](http://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](http://feature.attributes.id), [feature.attributes.name](http://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](http://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](http://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](http://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](http://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@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp