dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #08960
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 2275: (GIS) Image export for both layers implemented.
Merge authors:
Jan Henrik Øverland (janhenrik-overland)
------------------------------------------------------------
revno: 2275 [merge]
committer: Jan Henrik Overland <janhenrik.overland@xxxxxxxxx>
branch nick: dhis2
timestamp: Fri 2010-12-03 13:58:22 +0100
message:
(GIS) Image export for both layers implemented.
modified:
dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/ExportExcelAction.java
dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/ExportImageAction.java
dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/export/SVGDocument.java
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/index.html
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/globals.js
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/index.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/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-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/ExportExcelAction.java'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/ExportExcelAction.java 2010-10-14 11:58:33 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/ExportExcelAction.java 2010-12-02 19:03:23 +0000
@@ -147,9 +147,9 @@
this.title = title;
}
- private Integer indicator;
+ private String indicator;
- public void setIndicator( Integer indicator )
+ public void setIndicator( String indicator )
{
this.indicator = indicator;
}
@@ -206,8 +206,6 @@
{
log.info( "Exporting workbook, width: " + width + ", height: " + height );
- Indicator i = indicatorService.getIndicator( indicator );
-
// ---------------------------------------------------------------------
// Write map image to byte array
// ---------------------------------------------------------------------
@@ -217,7 +215,7 @@
svgDocument.setTitle( this.title );
svgDocument.setSvg( this.svg );
svgDocument.setPeriod( period );
- svgDocument.setIndicator( i );
+ svgDocument.setIndicator( indicator );
svgDocument.setLegends( this.legends );
svgDocument.setIncludeLegends( this.includeLegends );
@@ -231,7 +229,7 @@
WritableWorkbook outputReportWorkbook = Workbook.createWorkbook( out );
- WritableSheet sheet = outputReportWorkbook.createSheet( i.getName(), 1 );
+ WritableSheet sheet = outputReportWorkbook.createSheet( indicator, 1 );
// ---------------------------------------------------------------------
// Write map image to workbook
@@ -270,7 +268,7 @@
sheet.addCell( new Label( titlePositionCol, titlePositionRow, i18n.getString( "Title" ), header ) );
sheet.addCell( new Label( titlePositionCol + 2, titlePositionRow, this.title, headerContent ) );
sheet.addCell( new Label( titlePositionCol, titlePositionRow + 1, i18n.getString( "Indicator" ), header ) );
- sheet.addCell( new Label( titlePositionCol + 2, titlePositionRow + 1, i.getName(), headerContent ) );
+ sheet.addCell( new Label( titlePositionCol + 2, titlePositionRow + 1, indicator, headerContent ) );
sheet.addCell( new Label( titlePositionCol, titlePositionRow + 2, i18n.getString( "Period" ), header ) );
sheet.addCell( new Label( titlePositionCol + 2, titlePositionRow + 2, period, headerContent ) );
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/ExportImageAction.java'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/ExportImageAction.java 2010-10-14 11:58:33 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/ExportImageAction.java 2010-12-03 12:40:38 +0000
@@ -89,12 +89,33 @@
this.title = title;
}
- private Integer indicator;
-
- public void setIndicator( Integer indicator )
+ private Integer layer;
+
+ public void setLayer( Integer layer )
+ {
+ this.layer = layer;
+ }
+
+ private Integer imageLegendRows;
+
+ public void setImageLegendRows( Integer imageLegendRows )
+ {
+ this.imageLegendRows = imageLegendRows;
+ }
+
+ private String indicator;
+
+ public void setIndicator( String indicator )
{
this.indicator = indicator;
}
+
+ private String indicator2;
+
+ public void setIndicator2( String indicator2 )
+ {
+ this.indicator2 = indicator2;
+ }
private String period;
@@ -103,6 +124,13 @@
this.period = period;
}
+ private String period2;
+
+ public void setPeriod2( String period2 )
+ {
+ this.period2 = period2;
+ }
+
private String legends;
public void setLegends( String legends )
@@ -110,6 +138,13 @@
this.legends = legends;
}
+ private String legends2;
+
+ public void setLegends2( String legends2 )
+ {
+ this.legends2 = legends2;
+ }
+
private boolean includeLegends;
public void setIncludeLegends( boolean includeLegends )
@@ -137,10 +172,6 @@
protected String execute( HttpServletResponse response, OutputStream out )
throws Exception
{
- log.info( "Exporting image, title: " + title + ", indicator: " + indicator + ", period: " + period + ", width: " + width + ", height: " + height );
-
- log.info( "Legends: " + legends );
-
if ( svg == null || title == null || indicator == null || period == null || width == null || height == null )
{
log.info( "Export map from session" );
@@ -151,37 +182,30 @@
{
log.info( "Export map from request" );
- Indicator _indicator = indicatorService.getIndicator( indicator );
-
- DataElement _dataElement = dataElementService.getDataElement( indicator );
-
svgDocument = new SVGDocument();
- svgDocument.setTitle( title );
- svgDocument.setSvg( svg );
-
- if ( _indicator != null )
- {
- svgDocument.setIndicator( _indicator );
- svgDocument.setDataElement( null );
- }
-
- else
- {
- svgDocument.setIndicator( null );
- svgDocument.setDataElement( _dataElement );
- }
-
- svgDocument.setPeriod( period );
- svgDocument.setLegends( legends );
- svgDocument.setIncludeLegends( includeLegends );
- svgDocument.setWidth( width );
- svgDocument.setHeight( height );
-
+ svgDocument.setTitle( this.title );
+ svgDocument.setSvg( this.svg );
+ svgDocument.setLayer( this.layer );
+ svgDocument.setIndicator( this.indicator );
+ svgDocument.setPeriod( this.period );
+ svgDocument.setLegends( this.legends );
+ svgDocument.setIncludeLegends( this.includeLegends );
+ svgDocument.setWidth( this.width );
+ svgDocument.setHeight( this.height );
+
+ if ( this.layer == 3 )
+ {
+ svgDocument.setImageLegendRows( this.imageLegendRows );
+ svgDocument.setPeriod2( this.period2 );
+ svgDocument.setIndicator2( this.indicator2 );
+ svgDocument.setLegends2( this.legends2 );
+ }
+
SessionUtils.setSessionVar( SVGDOCUMENT, svgDocument );
}
- SVGUtils.convertToPNG( svgDocument.getSVGForImage(), out, width, height );
+ SVGUtils.convertToPNG( svgDocument.getSVGForImage(), out, this.width, this.height );
return SUCCESS;
}
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/export/SVGDocument.java'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/export/SVGDocument.java 2010-10-14 11:58:33 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/export/SVGDocument.java 2010-12-03 12:40:38 +0000
@@ -34,6 +34,8 @@
import org.hisp.dhis.dataelement.DataElement;
import org.hisp.dhis.indicator.Indicator;
+import sun.rmi.runtime.Log;
+
/**
* @author Tran Thanh Tri
* @version $Id$
@@ -49,15 +51,23 @@
private String title;
private String svg;
+
+ private Integer layer;
+
+ private Integer imageLegendRows;
private String legends;
+
+ private String legends2;
private String period;
-
- private Indicator indicator;
-
- private DataElement dataElement;
-
+
+ private String period2;
+
+ private String indicator;
+
+ private String indicator2;
+
private boolean includeLegends;
private int width;
@@ -70,26 +80,61 @@
public StringBuffer getSVGForImage()
{
- String indicatorName = this.indicator != null ? this.indicator.getName() : this.dataElement.getName();
+ String svg_ = doctype + this.svg;
+ svg_ = svg_.replaceFirst( "<svg", "<svg " + namespace );
- String title_ = "<g id=\"title\" style=\"display: block; visibility: visible;\"><text id=\"title\" x=\"30\" y=\"15\" font-size=\"14\" font-weight=\"bold\"><tspan>"
+ String title_ = "<g id=\"title\" style=\"display: block; visibility: visible;\"><text id=\"title\" x=\"30\" y=\"20\" font-size=\"18\" font-weight=\"bold\"><tspan>"
+ StringEscapeUtils.escapeXml( this.title ) + "</tspan></text></g>";
- String indicator_ = "<g id=\"indicator\" style=\"display: block; visibility: visible;\"><text id=\"indicator\" x=\"30\" y=\"30\" font-size=\"12\"><tspan>"
- + StringEscapeUtils.escapeXml( indicatorName ) + "</tspan></text></g>";
-
- String period_ = "<g id=\"period\" style=\"display: block; visibility: visible;\"><text id=\"period\" x=\"30\" y=\"45\" font-size=\"12\"><tspan>"
- + StringEscapeUtils.escapeXml( this.period ) + "</tspan></text></g>";
-
- String svg_ = doctype + this.svg;
-
- svg_ = svg_.replaceFirst( "<svg", "<svg " + namespace );
-
- svg_ = svg_.replaceFirst( "</svg>", title_ + indicator_ + period_ + "</svg>" );
-
- if ( this.includeLegends )
- {
- svg_ = svg_.replaceFirst( "</svg>", this.getLegendScript( 30, 45 ) + "</svg>" );
+ if ( this.layer != 3 ) // Polygon or point layer
+ {
+ String indicator_ = "<g id=\"indicator\" style=\"display: block; visibility: visible;\"><text id=\"indicator\" x=\"30\" y=\"35\" font-size=\"12\"><tspan>"
+ + StringEscapeUtils.escapeXml( this.indicator ) + "</tspan></text></g>";
+
+ String period_ = "<g id=\"period\" style=\"display: block; visibility: visible;\"><text id=\"period\" x=\"30\" y=\"50\" font-size=\"12\"><tspan>"
+ + StringEscapeUtils.escapeXml( this.period ) + "</tspan></text></g>";
+
+ svg_ = svg_.replaceFirst( "</svg>", title_ + indicator_ + period_ + "</svg>" );
+
+ if ( this.includeLegends )
+ {
+ svg_ = svg_.replaceFirst( "</svg>", this.getLegendScript( 30, 45 ) + "</svg>" );
+ }
+ }
+
+ else if ( this.layer == 3 ) // Both layers
+ {
+ String heading = "<g id=\"heading\" style=\"display: block; visibility: visible;\"><text id=\"heading\" x=\"30\" y=\"50\" font-size=\"12\" font-weight=\"bold\"><tspan>"
+ + "Polygons</tspan></text></g>";
+
+ String indicator_ = "<g id=\"indicator\" style=\"display: block; visibility: visible;\"><text id=\"indicator\" x=\"30\" y=\"65\" font-size=\"12\"><tspan>"
+ + StringEscapeUtils.escapeXml( this.indicator ) + "</tspan></text></g>";
+
+ String period_ = "<g id=\"period\" style=\"display: block; visibility: visible;\"><text id=\"period\" x=\"30\" y=\"80\" font-size=\"12\"><tspan>"
+ + StringEscapeUtils.escapeXml( this.period ) + "</tspan></text></g>";
+
+ svg_ = svg_.replaceFirst( "</svg>", title_ + heading + indicator_ + period_ + "</svg>" );
+
+ if ( this.includeLegends )
+ {
+ svg_ = svg_.replaceFirst( "</svg>", this.getLegendScript( 30, 75 ) + "</svg>" );
+ }
+
+ String heading2 = "<g id=\"heading2\" style=\"display: block; visibility: visible;\"><text id=\"heading2\" x=\"30\" y=\"" + (120 + 15 * this.imageLegendRows) + "\" font-size=\"12\" font-weight=\"bold\"><tspan>"
+ + "Points</tspan></text></g>";
+
+ String indicator2_ = "<g id=\"indicator2\" style=\"display: block; visibility: visible;\"><text id=\"indicator2\" x=\"30\" y=\"" + (135 + 15 * this.imageLegendRows) + "\" font-size=\"12\"><tspan>"
+ + StringEscapeUtils.escapeXml( this.indicator2 ) + "</tspan></text></g>";
+
+ String period2_ = "<g id=\"period2\" style=\"display: block; visibility: visible;\"><text id=\"period2\" x=\"30\" y=\"" + (150 + 15 * this.imageLegendRows) + "\" font-size=\"12\"><tspan>"
+ + StringEscapeUtils.escapeXml( this.period2 ) + "</tspan></text></g>";
+
+ svg_ = svg_.replaceFirst( "</svg>", heading2 + indicator2_ + period2_ + "</svg>" );
+
+ if ( this.includeLegends )
+ {
+ svg_ = svg_.replaceFirst( "</svg>", this.getLegendScript2( 30, (145 + 15 * this.imageLegendRows) ) + "</svg>" );
+ }
}
return new StringBuffer( svg_ );
@@ -158,7 +203,7 @@
String result = "<g id='legend'>";
JSONObject legend;
-
+
JSONObject json = (JSONObject) JSONSerializer.toJSON( this.legends );
JSONArray jsonLegends = json.getJSONArray( "legends" );
@@ -185,6 +230,38 @@
return result;
}
+ private String getLegendScript2( int x, int y )
+ {
+ String result = "<g id='legend2'>";
+
+ JSONObject legend;
+
+ JSONObject json = (JSONObject) JSONSerializer.toJSON( this.legends2 );
+
+ JSONArray jsonLegends = json.getJSONArray( "legends" );
+
+ for ( int i = 0; i < jsonLegends.size(); i++ )
+ {
+ legend = jsonLegends.getJSONObject( i );
+
+ String label = StringEscapeUtils.escapeXml( legend.getString( "label" ) );
+
+ String color = StringEscapeUtils.escapeXml( legend.getString( "color" ) );
+
+ result += "<rect x='" + x + "' y='" + (y + 15) + "' height='15' width='30' fill='" + color
+ + "' stroke='#000000' stroke-width='1'/>";
+
+ result += "<text id=\"indicator\" x='" + (x + 40) + "' y='" + (y + 27) + "' font-size=\"12\"><tspan>"
+ + label + "</tspan></text>";
+
+ y += 15;
+ }
+
+ result += "</g>";
+
+ return result;
+ }
+
@Override
public String toString()
{
@@ -222,6 +299,26 @@
}
+ public Integer getLayer()
+ {
+ return layer;
+ }
+
+ public void setLayer( Integer layer )
+ {
+ this.layer = layer;
+ }
+
+ public Integer getImageLegendRows()
+ {
+ return imageLegendRows;
+ }
+
+ public void setImageLegendRows( Integer imageLegendRows )
+ {
+ this.imageLegendRows = imageLegendRows;
+ }
+
public String getLegends()
{
return legends;
@@ -232,6 +329,16 @@
this.legends = legends;
}
+ public String getLegends2()
+ {
+ return legends2;
+ }
+
+ public void setLegends2( String legends2 )
+ {
+ this.legends2 = legends2;
+ }
+
public String getPeriod()
{
return period;
@@ -242,24 +349,34 @@
this.period = period;
}
- public Indicator getIndicator()
+ public String getPeriod2()
+ {
+ return period2;
+ }
+
+ public void setPeriod2( String period2 )
+ {
+ this.period2 = period2;
+ }
+
+ public String getIndicator()
{
return indicator;
}
- public void setIndicator( Indicator indicator )
+ public void setIndicator( String indicator )
{
this.indicator = indicator;
}
- public DataElement getDataElement()
+ public String getIndicator2()
{
- return dataElement;
+ return indicator;
}
- public void setDataElement( DataElement dataElement )
+ public void setIndicator2( String indicator2 )
{
- this.dataElement = dataElement;
+ this.indicator2 = indicator2;
}
public int getWidth()
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/index.html'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/index.html 2010-12-01 12:16:51 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/index.html 2010-12-03 12:40:38 +0000
@@ -47,14 +47,19 @@
<form id="exportForm" method="post">
<input type="hidden" id="titleField" name="title"/>
<input type="hidden" id="viewBoxField" name="viewBox"/>
+ <input type="hidden" id="layerField" name="layer"/>
+ <input type="hidden" id="imageLegendRowsField" name="imageLegendRows"/>
<input type="hidden" id="svgField" name="svg"/>
<input type="hidden" id="widthField" name="width"/>
<input type="hidden" id="heightField" name="height"/>
<input type="hidden" id="includeLegendsField" name="includeLegends"/>
<input type="hidden" id="includeValuesField" name="includeValues"/>
<input type="hidden" id="periodField" name="period"/>
+ <input type="hidden" id="periodField2" name="period2"/>
<input type="hidden" id="indicatorField" name="indicator"/>
+ <input type="hidden" id="indicatorField2" name="indicator2"/>
<input type="hidden" id="legendsField" name="legends"/>
+ <input type="hidden" id="legendsField2" name="legends2"/>
<input type="hidden" id="dataValuesField" name="datavalues"/>
<input type="hidden" id="imageFormat" name="imageFormat"/>
</form>
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/globals.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/globals.js 2010-12-02 12:41:12 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/globals.js 2010-12-02 19:03:23 +0000
@@ -240,7 +240,7 @@
for (var i = 0; i < mapValues.length; i++) {
json += '{';
json += '"organisation": "' + mapValues[i].orgUnitId + '",';
- json += '"value": "' + mapValues[i].value + '" ';
+ json += '"value": "' + mapValues[i].value + '"';
json += i < mapValues.length - 1 ? '},' : '}';
}
json += ']';
@@ -249,15 +249,14 @@
},
getLegendsJSON: function() {
- var widget = GLOBAL.vars.activePanel.isPolygon() ? choropleth : symbol;
var json = '{';
json += '"legends":';
json += '[';
- for(var i = 0; i < widget.imageLegend.length; i++) {
+ for(var i = 0; i < this.imageLegend.length; i++) {
json += '{';
- json += '"label": "' + widget.imageLegend[i].label + '",';
- json += '"color": "' + widget.imageLegend[i].color + '" ';
- json += i < widget.imageLegend.length-1 ? '},' : '}';
+ json += '"label": "' + this.imageLegend[i].label + '",';
+ json += '"color": "' + this.imageLegend[i].color + '"';
+ json += i < this.imageLegend.length-1 ? '},' : '}';
}
json += ']';
json += '}';
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/index.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/index.js 2010-12-02 12:41:12 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/index.js 2010-12-03 12:40:38 +0000
@@ -681,12 +681,12 @@
},
{
xtype: 'combo',
- id: 'exportimagequality_cb',
- fieldLabel: i18n_image_resolution,
+ id: 'exportimagelayers_cb',
+ fieldLabel: 'Layers',
labelSeparator: GLOBAL.conf.labelseparator,
editable: false,
valueField: 'id',
- displayField: 'text',
+ displayField: 'layer',
isFormField: true,
width: GLOBAL.conf.combo_width_fieldset,
minListWidth: GLOBAL.conf.combo_width_fieldset,
@@ -694,11 +694,49 @@
triggerAction: 'all',
value: 1,
store: new Ext.data.ArrayStore({
- fields: ['id', 'text'],
- data: [[1, i18n_medium], [2, i18n_large]]
+ fields: ['id', 'layer'],
+ data: [[1, 'Polygon layer'], [2, 'Point layer'], [3, 'Both']]
})
},
{
+ xtype: 'combo',
+ id: 'exportimagewidth_cb',
+ fieldLabel: 'Width',
+ labelSeparator: GLOBAL.conf.labelseparator,
+ editable: true,
+ emptyText: 'Type custom px',
+ valueField: 'width',
+ displayField: 'text',
+ isFormField: true,
+ width: GLOBAL.conf.combo_width_fieldset,
+ minListWidth: GLOBAL.conf.combo_width_fieldset,
+ mode: 'local',
+ triggerAction: 'all',
+ store: new Ext.data.ArrayStore({
+ fields: ['width', 'text'],
+ data: [[800, 'Small'], [1190, 'Medium'], [1920, 'Large']]
+ })
+ },
+ {
+ xtype: 'combo',
+ id: 'exportimageheight_cb',
+ fieldLabel: 'Height',
+ labelSeparator: GLOBAL.conf.labelseparator,
+ editable: true,
+ emptyText: 'Type custom px',
+ valueField: 'height',
+ displayField: 'text',
+ isFormField: true,
+ width: GLOBAL.conf.combo_width_fieldset,
+ minListWidth: GLOBAL.conf.combo_width_fieldset,
+ mode: 'local',
+ triggerAction: 'all',
+ store: new Ext.data.ArrayStore({
+ fields: ['height', 'text'],
+ data: [[600, 'Small'], [880, 'Medium'], [1200, 'Large']]
+ })
+ },
+ {
xtype: 'checkbox',
id: 'exportimageincludelegend_chb',
fieldLabel: i18n_include_legend,
@@ -715,56 +753,90 @@
cls: 'window-button',
text: i18n_export,
handler: function() {
- var values, svgElement;
- if (GLOBAL.vars.activePanel.isPolygon()) {
- if (choropleth.formValidation.validateForm()) {
+ var values, svgElement, svg;
+ if (Ext.getCmp('exportimagelayers_cb').getValue() == 1) {
+ if (choropleth.formValidation.validateForm()) {
values = choropleth.formValues.getImageExportValues.call(choropleth);
+ document.getElementById('layerField').value = 1;
+ document.getElementById('periodField').value = values.dateValue;
+ document.getElementById('indicatorField').value = values.mapValueTypeValue;
+ document.getElementById('legendsField').value = GLOBAL.util.getLegendsJSON.call(choropleth);
svgElement = document.getElementsByTagName('svg')[0];
+ svg = svgElement.parentNode.innerHTML;
}
else {
- Ext.message.msg(false, i18n_please_render_map_first);
+ Ext.message.msg(false, 'Polygon layer not rendered');
+ return;
}
}
- else if (GLOBAL.vars.activePanel.isPoint()) {
- if (symbol.formValidation.validateForm()) {
+ else if (Ext.getCmp('exportimagelayers_cb').getValue() == 2) {
+ if (symbol.formValidation.validateForm()) {
values = symbol.formValues.getImageExportValues.call(symbol);
+ document.getElementById('layerField').value = 2;
+ document.getElementById('periodField').value = values.dateValue;
+ document.getElementById('indicatorField').value = values.mapValueTypeValue;
+ document.getElementById('legendsField').value = GLOBAL.util.getLegendsJSON.call(symbol);
svgElement = document.getElementsByTagName('svg')[1];
- }
- else {
- Ext.message.msg(false, i18n_please_render_map_first);
+ svg = svgElement.parentNode.innerHTML;
+ }
+ else {
+ Ext.message.msg(false, 'Point layer not rendered');
+ return;
+ }
+ }
+ else if (Ext.getCmp('exportimagelayers_cb').getValue() == 3) {
+ if (choropleth.formValidation.validateForm()) {
+ if (symbol.formValidation.validateForm()) {
+ document.getElementById('layerField').value = 3;
+ document.getElementById('imageLegendRowsField').value = choropleth.imageLegend.length;
+
+ values = choropleth.formValues.getImageExportValues.call(choropleth);
+ document.getElementById('periodField').value = values.dateValue;
+ document.getElementById('indicatorField').value = values.mapValueTypeValue;
+ document.getElementById('legendsField').value = GLOBAL.util.getLegendsJSON.call(choropleth);
+
+ values = symbol.formValues.getImageExportValues.call(symbol);
+ document.getElementById('periodField2').value = values.dateValue;
+ document.getElementById('indicatorField2').value = values.mapValueTypeValue;
+ document.getElementById('legendsField2').value = GLOBAL.util.getLegendsJSON.call(symbol);
+
+ svgElement = document.getElementsByTagName('svg')[0];
+ var str1 = svgElement.parentNode.innerHTML;
+ str1 = svgElement.parentNode.innerHTML.replace('</svg>');
+ var str2 = document.getElementsByTagName('svg')[1].parentNode.innerHTML;
+ str2 = str2.substring(str2.indexOf('>')+1);
+ svg = str1 + str2;
+ }
+ else {
+ Ext.message.msg(false, 'Point layer not rendered');
+ return;
+ }
+ }
+ else {
+ Ext.message.msg(false, 'Polygon layer not rendered');
+ return;
}
}
- var svg = svgElement.parentNode.innerHTML;
- var viewBox = svgElement.getAttribute('viewBox');
var title = Ext.getCmp('exportimagetitle_tf').getValue();
if (!title) {
Ext.message.msg(false, i18n_form_is_not_complete);
}
else {
- var q = Ext.getCmp('exportimagequality_cb').getValue();
- var w = svgElement.getAttribute('width') * q;
- var h = svgElement.getAttribute('height') * q;
- var includeLegend = Ext.getCmp('exportimageincludelegend_chb').getValue();
-
- Ext.getCmp('exportimagetitle_tf').reset();
-
var exportForm = document.getElementById('exportForm');
exportForm.action = '../exportImage.action';
exportForm.target = '_blank';
- document.getElementById('titleField').value = title;
- document.getElementById('viewBoxField').value = viewBox;
+ document.getElementById('titleField').value = title;
+ document.getElementById('viewBoxField').value = svgElement.getAttribute('viewBox');
document.getElementById('svgField').value = svg;
- document.getElementById('widthField').value = w;
- document.getElementById('heightField').value = h;
- document.getElementById('includeLegendsField').value = includeLegend;
- document.getElementById('periodField').value = values.dateValue;
- document.getElementById('indicatorField').value = values.mapValueTypeValue;
- document.getElementById('legendsField').value = GLOBAL.util.getLegendsJSON();
+ document.getElementById('widthField').value = Ext.getCmp('exportimagewidth_cb').getValue();
+ document.getElementById('heightField').value = Ext.getCmp('exportimageheight_cb').getValue();
+ document.getElementById('includeLegendsField').value = Ext.getCmp('exportimageincludelegend_chb').getValue();
exportForm.submit();
+ Ext.getCmp('exportimagetitle_tf').reset();
}
}
}
@@ -859,11 +931,11 @@
Ext.message.msg(false, i18n_please_render_map_first);
}
}
- }
+ }
]
});
- var exportImageWindow=new Ext.Window({id:'exportimage_w',title:'<span id="window-image-title">' + i18n_export_map_as_image + '</span>',layout:'fit',closeAction:'hide',defaults:{layout:'fit',bodyStyle:'padding:8px; border:0px'},width:250,height:158,items:[{xtype:'panel',items:[exportImagePanel]}]});
+ var exportImageWindow=new Ext.Window({id:'exportimage_w',title:'<span id="window-image-title">' + i18n_export_map_as_image + '</span>',layout:'fit',closeAction:'hide',defaults:{layout:'fit',bodyStyle:'padding:8px; border:0px'},width:250,height:210,items:[{xtype:'panel',items:[exportImagePanel]}]});
var exportExcelWindow=new Ext.Window({id:'exportexcel_w',title:'<span id="window-excel-title">' + i18n_export_excel + '</span>',layout:'fit',closeAction:'hide',defaults:{layout:'fit',bodyStyle:'padding:8px; border:0px'},width:260,height:157,items:[{xtype:'panel',items:[exportExcelPanel]}]});
/* Section: predefined map legend set */
@@ -871,7 +943,7 @@
id: 'newpredefinedmaplegend_p',
bodyStyle: 'border:0px solid #fff',
items:
- [
+ [
{ html: '<div class="window-field-label-first">'+i18n_display_name+'</div>' },
new Ext.form.TextField({id:'predefinedmaplegendname_tf',isFormField:true,hideLabel:true,emptyText:GLOBAL.conf.emptytext,width:GLOBAL.conf.combo_width}),
{ html: '<div class="window-field-label">'+i18n_start_value+'</div>' },
=== 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 2010-12-02 12:41:12 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Choropleth.js 2010-12-02 15:46:49 +0000
@@ -1404,7 +1404,7 @@
getImageExportValues: function() {
return {
mapValueTypeValue: this.form.findField('mapvaluetype').getValue() == GLOBAL.conf.map_value_type_indicator ?
- this.form.findField('indicator').getValue() : this.form.findField('dataelement').getValue(),
+ this.form.findField('indicator').getRawValue() : this.form.findField('dataelement').getRawValue(),
dateValue: GLOBAL.vars.mapDateType.isFixed() ?
this.form.findField('period').getRawValue() : new Date(this.form.findField('startdate').getRawValue()).format('Y M j') + ' - ' + new Date(this.form.findField('enddate').getRawValue()).format('Y M j')
};
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Symbol.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Symbol.js 2010-12-02 12:41:12 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Symbol.js 2010-12-02 19:03:23 +0000
@@ -1371,7 +1371,7 @@
getImageExportValues: function() {
return {
mapValueTypeValue: this.form.findField('mapvaluetype').getValue() == GLOBAL.conf.map_value_type_indicator ?
- this.form.findField('indicator').getValue() : this.form.findField('dataelement').getValue(),
+ this.form.findField('indicator').getRawValue() : this.form.findField('dataelement').getRawValue(),
dateValue: GLOBAL.vars.mapDateType.isFixed() ?
this.form.findField('period').getRawValue() : new Date(this.form.findField('startdate').getRawValue()).format('Y M j') + ' - ' + new Date(this.form.findField('enddate').getRawValue()).format('Y M j')
};
Follow ups