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 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 ) );
}
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 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 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;
}
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"/>
=== 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;
@@ -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()
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();
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"/>
=== 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 (c) 2004-2010, University of Oslo
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
*/
+public class GetAllDataElementGroupSetsAction
+{
// -------------------------------------------------------------------------
// 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;
}
// -------------------------------------------------------------------------
// Output
// -------------------------------------------------------------------------
@@ -114,8 +107,10 @@
object = organisationUnitService.getOrganisationUnitsAtLevel( level, parent );
FilterUtils.filter( object, new OrganisationUnitWithCoordinatesFilter() );
@@ -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;
}
=== added file ‘dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetInfrastructuralDataElementMapValuesAction.java’
— dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetInfrastructuralDataElementMapValuesAction.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetInfrastructuralDataElementMapValuesAction.java 2011-06-08 13:52:49 +0000
@@ -0,0 +1,98 @@
+package org.hisp.dhis.mapping.action;
+/*
Copyright (c) 2004-2010, University of Oslo
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
*/
+public class GetInfrastructuralDataElementMapValuesAction
+{
// -------------------------------------------------------------------------
// 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() );
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="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" />
</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>
=== 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}”
},
-#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
#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 {
+}
/* 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 {
+}
.x-grid3-cell-inner {
color:#111111;
font-size:10px;
font-family:arial,ubuntu;
}
.x-grid3-hd-inner {
color:#0a0a0a ;
font: 11px arial,ubuntu;
+}
+.x-grid3-row {
+}
+.x-grid3-row-over {
}
.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 {
}
/* 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;
}
};
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,
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">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: {
@@ -1920,17 +1811,17 @@
],
listeners: {
expand: function() {
@@ -2050,7 +1941,7 @@
id: 'locatefeature_tf',
emptyText: G.conf.emptytext,
labelSeparator: G.conf.labelseparator,
@@ -2663,7 +2554,9 @@
tooltip: 'Administrator settings',
disabled: !G.user.isAdmin,
style: 'margin-top:1px',
+console.log(G.stores.infrastructuralDataElementMapValue);
+return;
if (!adminWindow.hidden) {
adminWindow.hide();
}
=== modified file ‘dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/theme/gray-extend/xtheme-gray-extend.css’
— dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/theme/gray-extend/xtheme-gray-extend.css 2011-05-19 08:26:11 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/theme/gray-extend/xtheme-gray-extend.css 2011-06-09 09:40:41 +0000
@@ -478,7 +478,6 @@
td.x-grid3-hd-over .x-grid3-hd-inner, td.sort-desc .x-grid3-hd-inner, td.sort-asc .x-grid3-hd-inner, td.x-grid3-hd-menu-open .x-grid3-hd-inner {
background-color:#f2f2f2;
background-image:url(gray-extend/grid/grid3-hrow-over.gif);
}
.sort-asc .x-grid3-sort-icon {
background-image: url(gray-extend/grid/sort_asc.gif);
=== modified file ‘dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat.js’
— dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat.js 2011-05-25 12:46:06 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat.js 2011-06-09 09:03:56 +0000
@@ -167,8 +167,8 @@
mapfish.GeoStat.Distribution = OpenLayers.Class({
labelGenerator: function(bin, binIndex, nbBins, maxDec) {
return this.defaultLabelGenerator(bin, binIndex, nbBins, maxDec);
labelGenerator: function(bin, binIndex, nbBins) {
return this.defaultLabelGenerator(bin, binIndex, nbBins);
},
values: null,
@@ -187,9 +187,9 @@
this.maxVal = this.nbVal ? mapfish.Util.max(this.values) : 0;
},
defaultLabelGenerator: function(bin, binIndex, nbBins, maxDec) {
lower = parseFloat(bin.lowerBound).toFixed(maxDec);
upper = parseFloat(bin.upperBound).toFixed(maxDec);
defaultLabelGenerator: function(bin, binIndex, nbBins) {
lower = parseFloat(bin.lowerBound).toFixed(1);
upper = parseFloat(bin.upperBound).toFixed(1);
return lower + ' - ' + upper + ' ( ' + bin.nbVal + ' )';
},
@@ -197,7 +197,6 @@
var bins = [];
var binCount = [];
var sortedValues = [];
@@ -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);
=== 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,
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();
@@ -508,7 +526,7 @@
triggerAction: 'all',
selectOnFocus: true,
width: G.conf.combo_width,
@@ -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 {
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,
@@ -1510,7 +1637,7 @@
params: params,
scope: this,
success: function(r) {
=== 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,
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();
@@ -479,7 +497,7 @@
triggerAction: 'all',
selectOnFocus: true,
width: G.conf.combo_width,
@@ -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