dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #01972
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 641: (GIS) Legend set management considerably improved: new tab 'assign to indicators' added. "Shapefi...
------------------------------------------------------------
revno: 641
committer: Jan Henrik Overland janhenrik.overland@xxxxxxxxx
branch nick: trunk
timestamp: Wed 2009-09-09 03:33:48 +0700
message:
(GIS) Legend set management considerably improved: new tab 'assign to indicators' added. "Shapefile" replaced with "GeoJSON files" in the administrator map source box. Map view loading performance improved.
added:
dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/AssignIndicatorsToMapLegendSetAction.java
dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetMapLegendSetByIndicatorAction.java
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMapLegendSetIndicators.vm
modified:
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-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/AddOrUpdateMapLegendSetAction.java
dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetMapLegendSetAction.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/mapping/script/index.js
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/resources/mapfish/widgets/geostat/Choropleth.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/mapping/MappingService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MappingService.java 2009-09-06 11:01:03 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MappingService.java 2009-09-08 20:33:48 +0000
@@ -301,8 +301,7 @@
void updateMapLegendSet( MapLegendSet legendSet );
- void addOrUpdateMapLegendSet( String name, int method, int classes, String colorLow, String colorHigh,
- Collection<String> indicators );
+ void addOrUpdateMapLegendSet( String name, int method, int classes, String colorLow, String colorHigh );
void deleteMapLegendSet( MapLegendSet legendSet );
=== 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 2009-09-08 07:29:51 +0000
+++ dhis-2/dhis-services/dhis-service-mapping/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java 2009-09-08 20:33:48 +0000
@@ -408,18 +408,12 @@
mappingStore.updateMapLegendSet( mapLegendSet );
}
- public void addOrUpdateMapLegendSet( String name, int method, int classes, String colorLow, String colorHigh,
- Collection<String> indicators )
+ public void addOrUpdateMapLegendSet( String name, int method, int classes, String colorLow, String colorHigh )
{
MapLegendSet mapLegendSet = getMapLegendSetByName( name );
Set<Indicator> indicatorSet = new HashSet<Indicator>();
- for ( String indicator : indicators )
- {
- indicatorSet.add( indicatorService.getIndicator( Integer.parseInt( indicator ) ) );
- }
-
if ( mapLegendSet != null )
{
mapLegendSet.setMethod( method );
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/AddOrUpdateMapLegendSetAction.java'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/AddOrUpdateMapLegendSetAction.java 2009-08-21 08:34:37 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/AddOrUpdateMapLegendSetAction.java 2009-09-08 20:33:48 +0000
@@ -90,13 +90,6 @@
{
this.colorHigh = colorHigh;
}
-
- private Collection<String> indicators;
-
- public void setIndicators( Collection<String> indicators )
- {
- this.indicators = indicators;
- }
// -------------------------------------------------------------------------
// Action implementation
@@ -104,7 +97,7 @@
public String execute()
{
- mappingService.addOrUpdateMapLegendSet( name, method, classes, colorLow, colorHigh, new HashSet<String>(indicators) );
+ mappingService.addOrUpdateMapLegendSet( name, method, classes, colorLow, colorHigh );
return SUCCESS;
}
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/AssignIndicatorsToMapLegendSetAction.java'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/AssignIndicatorsToMapLegendSetAction.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/AssignIndicatorsToMapLegendSetAction.java 2009-09-08 20:33:48 +0000
@@ -0,0 +1,74 @@
+package org.hisp.dhis.mapping.action;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.hisp.dhis.indicator.Indicator;
+import org.hisp.dhis.indicator.IndicatorService;
+import org.hisp.dhis.mapping.MapLegendSet;
+import org.hisp.dhis.mapping.MappingService;
+
+import com.opensymphony.xwork2.Action;
+
+public class AssignIndicatorsToMapLegendSetAction
+ implements Action
+{
+ // -------------------------------------------------------------------------
+ // Dependencies
+ // -------------------------------------------------------------------------
+
+ private MappingService mappingService;
+
+ public void setMappingService( MappingService mappingService )
+ {
+ this.mappingService = mappingService;
+ }
+
+ private IndicatorService indicatorService;
+
+ public void setIndicatorService( IndicatorService indicatorService )
+ {
+ this.indicatorService = indicatorService;
+ }
+
+ // -------------------------------------------------------------------------
+ // Input
+ // -------------------------------------------------------------------------
+
+ private Integer id;
+
+ public void setId( Integer id )
+ {
+ this.id = id;
+ }
+
+ private Collection<String> indicators;
+
+ public void setIndicators( Collection<String> indicators )
+ {
+ this.indicators = indicators;
+ }
+
+ // -------------------------------------------------------------------------
+ // Action implementation
+ // -------------------------------------------------------------------------
+
+ public String execute()
+ {
+ MapLegendSet mapLegendSet = mappingService.getMapLegendSet( id );
+
+ Set<Indicator> indicatorSet = new HashSet<Indicator>();
+
+ for ( String indicator : indicators )
+ {
+ indicatorSet.add( indicatorService.getIndicator( Integer.parseInt( indicator ) ) );
+ }
+
+ mapLegendSet.setIndicators( indicatorSet );
+
+ mappingService.updateMapLegendSet( mapLegendSet );
+
+ return SUCCESS;
+ }
+}
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetMapLegendSetAction.java'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetMapLegendSetAction.java 2009-08-21 08:34:37 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetMapLegendSetAction.java 2009-09-08 20:33:48 +0000
@@ -33,7 +33,7 @@
import com.opensymphony.xwork2.Action;
/**
- * @author Lars Helge Overland
+ * @author Jan Henrik Overland
* @version $Id$
*/
public class GetMapLegendSetAction
@@ -54,11 +54,11 @@
// Input
// -------------------------------------------------------------------------
- private int indicatorId;
+ private int id;
- public void setIndicatorId( int indicatorId )
+ public void setId( int id )
{
- this.indicatorId = indicatorId;
+ this.id = id;
}
// -------------------------------------------------------------------------
@@ -79,7 +79,7 @@
public String execute()
throws Exception
{
- object = mappingService.getMapLegendSetByIndicator( indicatorId );
+ object = mappingService.getMapLegendSet( id );
return SUCCESS;
}
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetMapLegendSetByIndicatorAction.java'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetMapLegendSetByIndicatorAction.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetMapLegendSetByIndicatorAction.java 2009-09-08 20:33:48 +0000
@@ -0,0 +1,86 @@
+package org.hisp.dhis.mapping.action;
+
+/*
+ * Copyright (c) 2004-2007, 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 org.hisp.dhis.mapping.MapLegendSet;
+import org.hisp.dhis.mapping.MappingService;
+
+import com.opensymphony.xwork2.Action;
+
+/**
+ * @author Lars Helge Overland
+ * @version $Id$
+ */
+public class GetMapLegendSetByIndicatorAction
+ implements Action
+{
+ // -------------------------------------------------------------------------
+ // Dependencies
+ // -------------------------------------------------------------------------
+
+ private MappingService mappingService;
+
+ public void setMappingService( MappingService mappingService )
+ {
+ this.mappingService = mappingService;
+ }
+
+ // -------------------------------------------------------------------------
+ // Input
+ // -------------------------------------------------------------------------
+
+ private int indicatorId;
+
+ public void setIndicatorId( int indicatorId )
+ {
+ this.indicatorId = indicatorId;
+ }
+
+ // -------------------------------------------------------------------------
+ // Input
+ // -------------------------------------------------------------------------
+
+ private MapLegendSet object;
+
+ public MapLegendSet getObject()
+ {
+ return object;
+ }
+
+ // -------------------------------------------------------------------------
+ // Action implementation
+ // -------------------------------------------------------------------------
+
+ public String execute()
+ throws Exception
+ {
+ object = mappingService.getMapLegendSetByIndicator( indicatorId );
+
+ return SUCCESS;
+ }
+}
=== 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 2009-09-01 09:29:11 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/resources/META-INF/dhis/beans.xml 2009-09-08 20:33:48 +0000
@@ -146,7 +146,7 @@
scope="prototype">
<property name="mappingService"
ref="org.hisp.dhis.mapping.MappingService"/>
- </bean>
+ </bean>
<bean id="org.hisp.dhis.mapping.action.DeleteMapLegendSetAction"
class="org.hisp.dhis.mapping.action.DeleteMapLegendSetAction"
@@ -161,12 +161,28 @@
<property name="mappingService"
ref="org.hisp.dhis.mapping.MappingService"/>
</bean>
-
+
<bean id="org.hisp.dhis.mapping.action.GetMapLegendSetAction"
class="org.hisp.dhis.mapping.action.GetMapLegendSetAction"
scope="prototype">
<property name="mappingService"
ref="org.hisp.dhis.mapping.MappingService"/>
+ </bean>
+
+ <bean id="org.hisp.dhis.mapping.action.GetMapLegendSetByIndicatorAction"
+ class="org.hisp.dhis.mapping.action.GetMapLegendSetByIndicatorAction"
+ scope="prototype">
+ <property name="mappingService"
+ ref="org.hisp.dhis.mapping.MappingService"/>
+ </bean>
+
+ <bean id="org.hisp.dhis.mapping.action.AssignIndicatorsToMapLegendSetAction"
+ class="org.hisp.dhis.mapping.action.AssignIndicatorsToMapLegendSetAction"
+ scope="prototype">
+ <property name="mappingService"
+ ref="org.hisp.dhis.mapping.MappingService"/>
+ <property name="indicatorService"
+ ref="org.hisp.dhis.indicator.IndicatorService"/>
</bean>
<!-- MapView -->
=== 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 2009-09-01 09:44:10 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/resources/struts.xml 2009-09-08 20:33:48 +0000
@@ -101,7 +101,19 @@
<action name="getMapLegendSet" class="org.hisp.dhis.mapping.action.GetMapLegendSetAction">
<result name="success" type="velocity-json">/dhis-web-mapping/jsonMapLegendSet.vm</result>
+ </action>
+
+ <action name="getMapLegendSetByIndicator" class="org.hisp.dhis.mapping.action.GetMapLegendSetByIndicatorAction">
+ <result name="success" type="velocity-json">/dhis-web-mapping/jsonMapLegendSet.vm</result>
</action>
+
+ <action name="getMapLegendSetIndicators" class="org.hisp.dhis.mapping.action.GetMapLegendSetAction">
+ <result name="success" type="velocity-json">/dhis-web-mapping/jsonMapLegendSetIndicators.vm</result>
+ </action>
+
+ <action name="assignIndicatorsToMapLegendSet" class="org.hisp.dhis.mapping.action.AssignIndicatorsToMapLegendSetAction">
+ <result name="success" type="velocity-json">/dhis-web-mapping/void.vm</result>
+ </action>
<!-- MapView -->
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMapLegendSetIndicators.vm'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMapLegendSetIndicators.vm 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMapLegendSetIndicators.vm 2009-09-08 20:33:48 +0000
@@ -0,0 +1,7 @@
+#set( $size = $object.indicators.size() )
+{ "mapLegendSet":
+ [{
+ "id": $!{object.id},
+ "indicators": [#foreach( $indicator in $object.indicators )$!{indicator.id}#if( $velocityCount < $size ),#end#end]
+ }]
+}
\ No newline at end of file
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/mapping/script/index.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/mapping/script/index.js 2009-09-06 13:31:51 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/mapping/script/index.js 2009-09-08 20:33:48 +0000
@@ -155,11 +155,11 @@
controls: [
new OpenLayers.Control.Navigation(),
new OpenLayers.Control.ArgParser(),
- new OpenLayers.Control.Attribution(),
+ new OpenLayers.Control.Attribution()
]
});
this.myMap = map;
-
+
MAPDATA = null;
URL = null;
ACTIVEPANEL = 'choropleth';
@@ -221,16 +221,16 @@
var h = screen.height;
if (h <= 800) {
- return 120;
+ return 220;
}
else if (h <= 1050) {
return 310;
}
else if (h <= 1200) {
- return 530;
+ return 470;
}
else {
- return 850;
+ return 900;
}
}
@@ -881,7 +881,7 @@
items:
[
{
- title:'New map',
+ title:'New',
id: 'map0',
items:
[
@@ -889,7 +889,7 @@
]
},
{
- title:'Edit map',
+ title:'Edit',
id: 'map1',
items:
[
@@ -897,7 +897,7 @@
]
},
{
- title:'Delete map',
+ title:'Delete',
id: 'map2',
items:
[
@@ -994,12 +994,13 @@
var legendSetStore = new Ext.data.JsonStore({
url: path + 'getAllMapLegendSets' + type,
root: 'mapLegendSets',
+ id: 'id',
fields: ['id', 'name'],
sortInfo: { field: 'name', direction: 'ASC' },
autoLoad: true
});
-
- var legendSetComboBox = new Ext.form.ComboBox({
+
+ var legendSetComboBox = new Ext.form.ComboBox({
id: 'legendset_cb',
typeAhead: true,
editable: false,
@@ -1012,6 +1013,52 @@
selectOnFocus: true,
width: combo_width,
minListWidth: combo_width + 26,
+ store: legendSetStore,
+ listeners:{
+ 'select': {
+ fn: function() {
+ var lsid = Ext.getCmp('legendset_cb').getValue();
+
+ Ext.Ajax.request({
+ url: path + 'getMapLegendSetIndicators' + type,
+ method: 'POST',
+ params: { id:lsid },
+
+ success: function( responseObject ) {
+ var indicators = Ext.util.JSON.decode( responseObject.responseText ).mapLegendSet[0].indicators;
+ var indicatorString = '';
+
+ for (var i = 0; i < indicators.length; i++) {
+ indicatorString += indicators[i];
+ if (i < indicators.length-1) {
+ indicatorString += ',';
+ }
+ }
+
+ Ext.getCmp('legendsetindicator_ms').setValue(indicatorString);
+ },
+ failure: function() {
+ alert( 'Status', 'Error while saving data' );
+ }
+ });
+ }
+ }
+ }
+ });
+
+ var legendSet2ComboBox = new Ext.form.ComboBox({
+ id: 'legendset2_cb',
+ typeAhead: true,
+ editable: false,
+ valueField: 'id',
+ displayField: 'name',
+ mode: 'remote',
+ forceSelection: true,
+ triggerAction: 'all',
+ emptyText: MENU_EMPTYTEXT,
+ selectOnFocus: true,
+ width: combo_width,
+ minListWidth: combo_width + 26,
store: legendSetStore
});
@@ -1024,10 +1071,8 @@
var lc = Ext.getCmp('legendsetclasses_cb').getValue();
var llc = Ext.getCmp('legendsetlowcolor_cp').getValue();
var lhc = Ext.getCmp('legendsethighcolor_cp').getValue();
-/* var li = Ext.getCmp('legendsetindicator_cb').getValue();*/
- var lims = Ext.getCmp('legendsetindicator_ms').getValue();
- if (!lc || !ln || !lims) {
+ if (!ln || !lc) {
Ext.messageRed.msg('New legend set', 'Form is not complete.');
return;
}
@@ -1036,27 +1081,88 @@
Ext.messageRed.msg('New legend set', 'Legend set name cannot be longer than 25 characters.');
return;
}
+
+ Ext.Ajax.request({
+ url: path + 'getAllMapLegendSets' + type,
+ method: 'GET',
+
+ success: function( responseObject ) {
+ var mapLegendSets = Ext.util.JSON.decode( responseObject.responseText ).mapLegendSets;
+ for (var i = 0; i < mapLegendSets.length; i++) {
+ if (ln == mapLegendSets[i].name) {
+ Ext.messageRed.msg('New legend set', 'A legend set called ' + msg_highlight_start + ln + msg_highlight_end + ' already exists.');
+ return;
+ }
+ }
+
+ Ext.Ajax.request({
+ url: path + 'addOrUpdateMapLegendSet' + type,
+ method: 'POST',
+ params: { name: ln, method: 2, classes: lc, colorLow: llc, colorHigh: lhc },
+
+ success: function( responseObject ) {
+ Ext.messageBlack.msg('New legend set', 'The legend set ' + msg_highlight_start + ln + msg_highlight_end + ' was registered.');
+ Ext.getCmp('legendset_cb').getStore().reload();
+ Ext.getCmp('legendset2_cb').getStore().reload();
+ Ext.getCmp('legendsetname_tf').reset();
+ Ext.getCmp('legendsetclasses_cb').reset();
+ Ext.getCmp('legendsetlowcolor_cp').reset();
+ Ext.getCmp('legendsethighcolor_cp').reset();
+ },
+ failure: function() {
+ alert( 'Status', 'Error while saving data' );
+ }
+ });
+ },
+ failure: function() {
+ alert( 'Error: getAllMapLegendSets' );
+ }
+ });
+
+
+ }
+ });
+
+ var assignLegendSetButton = new Ext.Button({
+ id: 'assignlegendset_b',
+ text: 'Assign to indicators',
+ handler: function() {
+ var ls = Ext.getCmp('legendset_cb').getValue();
+ var lsrw = Ext.getCmp('legendset_cb').getRawValue();
+ var lims = Ext.getCmp('legendsetindicator_ms').getValue();
+
+ if (!ls) {
+ Ext.messageRed.msg('Assign to indicators', 'Please select a legend set.');
+ return;
+ }
+
+ if (!lims) {
+ Ext.messageRed.msg('Link legend set to indicator', 'Please select at least one indicator.');
+ return;
+ }
var array = new Array();
array = lims.split(',');
var params = '?indicators=' + array[0];
-
- for (var i = 1; i < array.length; i++) {
- array[i] = '&indicators=' + array[i];
- params += array[i];
- }
+
+ if (array.length > 1) {
+ for (var i = 1; i < array.length; i++) {
+ array[i] = '&indicators=' + array[i];
+ params += array[i];
+ }
+ }
Ext.Ajax.request({
- url: path + 'addOrUpdateMapLegendSet.action' + params,
+ url: path + 'assignIndicatorsToMapLegendSet.action' + params,
method: 'POST',
- params: { name: ln, method: 2, classes: lc, colorLow: llc, colorHigh: lhc },
+ params: { id: ls },
success: function( responseObject ) {
- Ext.messageBlack.msg('New legend set', 'The legend set ' + msg_highlight_start + ln + msg_highlight_end + ' was registered.');
+ Ext.messageBlack.msg('Assign to indicators', 'The legend set ' + msg_highlight_start + lsrw + msg_highlight_end + ' was updated.');
Ext.getCmp('legendset_cb').getStore().reload();
},
failure: function() {
- alert( 'Status', 'Error while saving data' );
+ alert( 'Error: assignIndicatorsToMapLegendSet' );
}
});
}
@@ -1066,8 +1172,8 @@
id: 'deletelegendset_b',
text: 'Delete legend set',
handler: function() {
- var ls = Ext.getCmp('legendset_cb').getValue();
- var lsrw = Ext.getCmp('legendset_cb').getRawValue();
+ var ls = Ext.getCmp('legendset2_cb').getValue();
+ var lsrw = Ext.getCmp('legendset2_cb').getRawValue();
if (!ls) {
Ext.messageRed.msg('Delete legend set', 'Please select a legend set.');
@@ -1082,8 +1188,11 @@
success: function( responseObject ) {
Ext.messageBlack.msg('Delete legend set', 'The legend set ' + msg_highlight_start + lsrw + msg_highlight_end + ' was deleted.');
- Ext.getCmp('legendset_cb').getStore().reload();
+ Ext.getCmp('legendset2_cb').getStore().reload();
+ Ext.getCmp('legendset2_cb').reset();
+ Ext.getCmp('legendset_cb').getStore().reload();
Ext.getCmp('legendset_cb').reset();
+ Ext.getCmp('legendsetindicator_ms').reset();
},
failure: function() {
alert( 'Status', 'Error while saving data' );
@@ -1100,21 +1209,27 @@
/* { html: '<p style="padding-bottom:4px; color:' + MENU_TEXTCOLOR + ';"> Method</p>' }, legendSetMethodComboBox, { html: '<br>' },*/
{ html: '<p style="padding-bottom:4px; color:' + MENU_TEXTCOLOR + ';"> Classes</p>' }, legendSetClassesComboBox, { html: '<br>' },
{ html: '<p style="padding-bottom:4px; color:' + MENU_TEXTCOLOR + ';"> Lowest value color</p>' }, legendSetLowColorColorPalette, { html: '<br>' },
- { html: '<p style="padding-bottom:4px; color:' + MENU_TEXTCOLOR + ';"> Highest value color</p>' }, legendSetHighColorColorPalette, { html: '<br>' },
-/* { html: '<p style="padding-bottom:4px; color:' + MENU_TEXTCOLOR + ';"> Indicator group</p>' }, legendSetIndicatorGroupComboBox, { html: '<br>' },*/
-/* { html: '<p style="padding-bottom:4px; color:' + MENU_TEXTCOLOR + ';"> Indicator</p>' }, legendSetIndicatorComboBox*/
+ { html: '<p style="padding-bottom:4px; color:' + MENU_TEXTCOLOR + ';"> Highest value color</p>' }, legendSetHighColorColorPalette
+ ]
+ });
+
+ var assignLegendSetPanel = new Ext.Panel({
+ id: 'assignlegendset_p',
+ items:
+ [
+ { html: '<p style="padding-bottom:4px; color:' + MENU_TEXTCOLOR + ';"> Legend set</p>' }, legendSetComboBox, { html: '<br>' },
{ html: '<p style="padding-bottom:4px; color:' + MENU_TEXTCOLOR + ';"> Indicators</p>' }, legendSetIndicatorMultiSelect
]
});
- var deleteLegendSetPanel = new Ext.Panel({
+ var deleteLegendSetPanel = new Ext.Panel({
id: 'deletelegendset_p',
items:
[
- { html: '<p style="padding-bottom:4px; color:' + MENU_TEXTCOLOR + ';"> Legend set</p>' }, legendSetComboBox
+ { html: '<p style="padding-bottom:4px; color:' + MENU_TEXTCOLOR + ';"> Legend set</p>' }, legendSet2ComboBox
]
});
-
+
var legendsetPanel = new Ext.Panel({
id: 'legendset_p',
title: '<font style="font-family:tahoma; font-weight:normal; font-size:11px; color:' + MENU_TITLECOLOR_LIGHT + ';">Register legend sets</font>',
@@ -1130,29 +1245,45 @@
tabchange: function(panel, tab) {
var nl_b = Ext.getCmp('newlegendset_b');
var dl_b = Ext.getCmp('deletelegendset_b');
+ var al_b = Ext.getCmp('assignlegendset_b');
if (tab.id == 'legendset0') {
nl_b.setVisible(true);
dl_b.setVisible(false);
+ al_b.setVisible(false);
}
else if (tab.id == 'legendset1') {
nl_b.setVisible(false);
dl_b.setVisible(true);
+ al_b.setVisible(false);
+ }
+ else if (tab.id == 'legendset2') {
+ nl_b.setVisible(false);
+ dl_b.setVisible(false);
+ al_b.setVisible(true);
}
}
},
items:
[
{
- title:'New legend set',
+ title:'New',
id: 'legendset0',
items:
[
newLegendSetPanel
]
},
+ {
+ title:'Assign to indicators',
+ id: 'legendset2',
+ items:
+ [
+ assignLegendSetPanel
+ ]
+ },
{
- title:'Delete legend set',
+ title:'Delete',
id: 'legendset1',
items:
[
@@ -1165,7 +1296,9 @@
newLegendSetButton,
- deleteLegendSetButton
+ deleteLegendSetButton,
+
+ assignLegendSetButton
]
});
@@ -1413,7 +1546,7 @@
items:
[
{
- title:'New view',
+ title:'New',
id: 'view0',
items:
[
@@ -1422,7 +1555,7 @@
},
{
- title:'Delete view',
+ title:'Delete',
id: 'view1',
items:
[
@@ -1431,7 +1564,7 @@
},
{
- title:'Dashboard view',
+ title:'Add to Dashboard',
id: 'view2',
items:
[
@@ -1676,7 +1809,7 @@
items:
[
{
- title:'New overlay',
+ title:'New',
id: 'maplayer0',
items:
[
@@ -1684,7 +1817,7 @@
]
},
{
- title:'Delete overlay',
+ title:'Delete',
id: 'maplayer1',
items:
[
@@ -2172,7 +2305,6 @@
MAPDATA.name = Ext.getCmp('map_cb').getRawValue();
MAPDATA.organisationUnit = 'Country';
MAPDATA.organisationUnitLevel = Ext.getCmp('map_cb').getValue();
- MAPDATA.unqiueColumn = 'name';
MAPDATA.nameColumn = 'name';
MAPDATA.longitude = COUNTRY_LONGITUDE;
MAPDATA.latitude = COUNTRY_LATITUDE;
@@ -2234,11 +2366,17 @@
var features = layers[0].features;
var mapvalues = Ext.util.JSON.decode(responseText).mapvalues;
+
+ if (mapvalues.length == 0) {
+ Ext.messageRed.msg('Thematic map', 'The selected indicator, period and level returned no data.');
+ MASK.hide();
+ return;
+ }
if (MAPSOURCE == 'database') {
for (var i=0; i < features.length; i++) {
for (var j=0; j < mapvalues.length; j++) {
- if (features[i].attributes.value == null) {
+ if (features[i].attributes.value == null) {
features[i].attributes.value = 0;
}
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/resources/mapfish/widgets/geostat/Choropleth.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/resources/mapfish/widgets/geostat/Choropleth.js 2009-09-06 13:05:20 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/resources/mapfish/widgets/geostat/Choropleth.js 2009-09-08 20:33:48 +0000
@@ -267,7 +267,6 @@
});
this.newUrl = MAPVIEW.mapSource;
- choropleth.classify(false);
}
},
scope: this
@@ -294,14 +293,6 @@
}
});
- legendStore = new Ext.data.JsonStore({
- url: path + 'getMapLegendSet' + type,
- baseParams: { format: 'json' },
- root: 'mapLegendSet',
- fields: ['id', 'name'],
- autoLoad: false
- });
-
this.items = [
{
@@ -416,7 +407,7 @@
var iId = Ext.getCmp('indicator_cb').getValue();
Ext.Ajax.request({
- url: path + 'getMapLegendSet' + type,
+ url: path + 'getMapLegendSetByIndicator' + type,
method: 'POST',
params: { indicatorId: iId, format: 'json' },
@@ -648,7 +639,7 @@
isFormField: true,
fieldLabel: '',
labelStyle: 'color:#dfe8f6;',
- text: 'Refresh colors',
+ text: 'Refresh',
handler: function() {
this.layer.setVisibility(true);
this.classify(true);
@@ -721,7 +712,7 @@
if (this.newUrl) {
URL = this.newUrl;
this.newUrl = false;
-
+
if (MAPSOURCE == MAP_SOURCE_TYPE_DATABASE) {
if (URL == PHU_LEVEL) {
this.setUrl(path + 'getPointShapefile.action?level=' + URL);