← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 14931: DV, range axis min value.

 

Merge authors:
  Jan Henrik Øverland (janhenrik-overland)
------------------------------------------------------------
revno: 14931 [merge]
committer: Jan Henrik Overland <janhenrik.overland@xxxxxxxxx>
branch nick: dhis2
timestamp: Mon 2014-04-21 18:52:15 +0200
message:
  DV, range axis min value.
modified:
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/chart/Chart.java
  dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/chart/hibernate/Chart.hbm.xml
  dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/app.js
  dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/core.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/chart/Chart.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/chart/Chart.java	2014-04-15 13:53:17 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/chart/Chart.java	2014-04-21 16:49:18 +0000
@@ -55,23 +55,32 @@
 /**
  * @author Lars Helge Overland
  */
-@JacksonXmlRootElement(localName = "chart", namespace = DxfNamespaces.DXF_2_0)
+@JacksonXmlRootElement( localName = "chart", namespace = DxfNamespaces.DXF_2_0 )
 public class Chart
     extends BaseAnalyticalObject
 {
     private static final long serialVersionUID = 2570074075484545534L;
 
     public static final String SIZE_NORMAL = "normal";
+
     public static final String SIZE_WIDE = "wide";
+
     public static final String SIZE_TALL = "tall";
 
     public static final String TYPE_COLUMN = "column";
+
     public static final String TYPE_STACKED_COLUMN = "stackedcolumn";
+
     public static final String TYPE_BAR = "bar";
+
     public static final String TYPE_STACKED_BAR = "stackedbar";
+
     public static final String TYPE_LINE = "line";
+
     public static final String TYPE_AREA = "area";
+
     public static final String TYPE_PIE = "pie";
+
     public static final String TYPE_RADAR = "radar"; // Spider web
 
     private String domainAxisLabel;
@@ -105,13 +114,15 @@
     private String baseLineLabel;
 
     private boolean showData;
-    
+
     private boolean hideEmptyRows;
-    
+
     private Double rangeAxisMaxValue;
-    
-    private Integer rangeAxisSteps; //min 1
-    
+
+    private Double rangeAxisMinValue;
+
+    private Integer rangeAxisSteps; // min 1
+
     private Integer rangeAxisDecimals;
 
     // -------------------------------------------------------------------------
@@ -147,7 +158,8 @@
 
     @Override
     public void init( User user, Date date, OrganisationUnit organisationUnit,
-        List<OrganisationUnit> organisationUnitsAtLevel, List<OrganisationUnit> organisationUnitsInGroups, I18nFormat format )
+        List<OrganisationUnit> organisationUnitsAtLevel, List<OrganisationUnit> organisationUnitsInGroups,
+        I18nFormat format )
     {
         this.user = user;
         this.relativePeriodDate = date;
@@ -163,14 +175,16 @@
 
     public List<NameableObject> series()
     {
-        DimensionalObject object = getDimensionalObject( series, relativePeriodDate, user, true, organisationUnitsAtLevel, organisationUnitsInGroups, format );
+        DimensionalObject object = getDimensionalObject( series, relativePeriodDate, user, true,
+            organisationUnitsAtLevel, organisationUnitsInGroups, format );
 
         return object != null ? object.getItems() : null;
     }
 
     public List<NameableObject> category()
     {
-        DimensionalObject object = getDimensionalObject( category, relativePeriodDate, user, true, organisationUnitsAtLevel, organisationUnitsInGroups, format );
+        DimensionalObject object = getDimensionalObject( category, relativePeriodDate, user, true,
+            organisationUnitsAtLevel, organisationUnitsInGroups, format );
 
         return object != null ? object.getItems() : null;
     }
@@ -181,7 +195,8 @@
 
         for ( String filter : filterDimensions )
         {
-            DimensionalObject object = getDimensionalObject( filter, relativePeriodDate, user, true, organisationUnitsAtLevel, organisationUnitsInGroups, format );
+            DimensionalObject object = getDimensionalObject( filter, relativePeriodDate, user, true,
+                organisationUnitsAtLevel, organisationUnitsInGroups, format );
 
             if ( object != null )
             {
@@ -246,10 +261,10 @@
 
     /**
      * Sets all dimensions for this chart.
-     *
-     * @param series   the series dimension.
+     * 
+     * @param series the series dimension.
      * @param category the category dimension.
-     * @param filter   the filter dimension.
+     * @param filter the filter dimension.
      */
     public void setDimensions( String series, String category, String filter )
     {
@@ -289,8 +304,8 @@
     // -------------------------------------------------------------------------
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class, DimensionalView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
     public String getDomainAxisLabel()
     {
         return domainAxisLabel;
@@ -302,8 +317,8 @@
     }
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class, DimensionalView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
     public String getRangeAxisLabel()
     {
         return rangeAxisLabel;
@@ -315,8 +330,8 @@
     }
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class, DimensionalView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
     public String getType()
     {
         return type;
@@ -328,8 +343,8 @@
     }
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
+    @JsonView( { DetailedView.class, ExportView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
     public String getSeries()
     {
         return series;
@@ -341,8 +356,8 @@
     }
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
+    @JsonView( { DetailedView.class, ExportView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
     public String getCategory()
     {
         return category;
@@ -354,9 +369,9 @@
     }
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class })
-    @JacksonXmlElementWrapper(localName = "filterDimensions", namespace = DxfNamespaces.DXF_2_0)
-    @JacksonXmlProperty(localName = "filterDimension", namespace = DxfNamespaces.DXF_2_0)
+    @JsonView( { DetailedView.class, ExportView.class } )
+    @JacksonXmlElementWrapper( localName = "filterDimensions", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "filterDimension", namespace = DxfNamespaces.DXF_2_0 )
     public List<String> getFilterDimensions()
     {
         return filterDimensions;
@@ -368,8 +383,8 @@
     }
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class, DimensionalView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
     public boolean isHideLegend()
     {
         return hideLegend;
@@ -381,8 +396,8 @@
     }
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class, DimensionalView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
     public boolean isRegression()
     {
         return regression;
@@ -394,8 +409,8 @@
     }
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class, DimensionalView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
     public Double getTargetLineValue()
     {
         return targetLineValue;
@@ -407,8 +422,8 @@
     }
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class, DimensionalView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
     public String getTargetLineLabel()
     {
         return targetLineLabel;
@@ -420,8 +435,8 @@
     }
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class, DimensionalView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
     public Double getBaseLineValue()
     {
         return baseLineValue;
@@ -433,8 +448,8 @@
     }
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class, DimensionalView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
     public String getBaseLineLabel()
     {
         return baseLineLabel;
@@ -446,8 +461,8 @@
     }
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class, DimensionalView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
     public boolean isHideTitle()
     {
         return hideTitle;
@@ -459,8 +474,8 @@
     }
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class, DimensionalView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
     public boolean isHideSubtitle()
     {
         return hideSubtitle;
@@ -472,8 +487,8 @@
     }
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class, DimensionalView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
     public String getTitle()
     {
         return this.title;
@@ -485,8 +500,8 @@
     }
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class, DimensionalView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
     public boolean isShowData()
     {
         return showData;
@@ -498,8 +513,8 @@
     }
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class, DimensionalView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
     public boolean isHideEmptyRows()
     {
         return hideEmptyRows;
@@ -511,8 +526,8 @@
     }
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class, DimensionalView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
     public boolean isRewindRelativePeriods()
     {
         return rewindRelativePeriods;
@@ -524,43 +539,62 @@
     }
 
     @JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class, DimensionalView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
-    public Double getRangeAxisMaxValue() {
-		return rangeAxisMaxValue;
-	}
-
-	public void setRangeAxisMaxValue(Double rangeAxisMaxValue) {
-		this.rangeAxisMaxValue = rangeAxisMaxValue;
-	}
-
-	@JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class, DimensionalView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
-	public Integer getRangeAxisSteps() {
-		return rangeAxisSteps;
-	}
-
-	public void setRangeAxisSteps(Integer rangeAxisSteps) {
-		this.rangeAxisSteps = rangeAxisSteps;
-	}
-
-	@JsonProperty
-    @JsonView({ DetailedView.class, ExportView.class, DimensionalView.class })
-    @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0)
-	public Integer getRangeAxisDecimals() {
-		return rangeAxisDecimals;
-	}
-
-	public void setRangeAxisDecimals(Integer rangeAxisDecimals) {
-		this.rangeAxisDecimals = rangeAxisDecimals;
-	}
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
+    public Double getRangeAxisMaxValue()
+    {
+        return rangeAxisMaxValue;
+    }
+
+    public void setRangeAxisMaxValue( Double rangeAxisMaxValue )
+    {
+        this.rangeAxisMaxValue = rangeAxisMaxValue;
+    }
+
+    @JsonProperty
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
+    public Double getRangeAxisMinValue()
+    {
+        return rangeAxisMinValue;
+    }
+
+    public void setRangeAxisMinValue( Double rangeAxisMinValue )
+    {
+        this.rangeAxisMinValue = rangeAxisMinValue;
+    }
+
+    @JsonProperty
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
+    public Integer getRangeAxisSteps()
+    {
+        return rangeAxisSteps;
+    }
+
+    public void setRangeAxisSteps( Integer rangeAxisSteps )
+    {
+        this.rangeAxisSteps = rangeAxisSteps;
+    }
+
+    @JsonProperty
+    @JsonView( { DetailedView.class, ExportView.class, DimensionalView.class } )
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
+    public Integer getRangeAxisDecimals()
+    {
+        return rangeAxisDecimals;
+    }
+
+    public void setRangeAxisDecimals( Integer rangeAxisDecimals )
+    {
+        this.rangeAxisDecimals = rangeAxisDecimals;
+    }
 
     // -------------------------------------------------------------------------
     // Getters and setters for transient properties
     // -------------------------------------------------------------------------
 
-	@JsonIgnore
+    @JsonIgnore
     public I18nFormat getFormat()
     {
         return format;
@@ -615,6 +649,7 @@
             hideEmptyRows = chart.isHideEmptyRows();
             rewindRelativePeriods = chart.isRewindRelativePeriods();
             rangeAxisMaxValue = chart.getRangeAxisMaxValue();
+            rangeAxisMinValue = chart.getRangeAxisMinValue();
             rangeAxisSteps = chart.getRangeAxisSteps();
             rangeAxisDecimals = chart.getRangeAxisDecimals();
 

=== modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/chart/hibernate/Chart.hbm.xml'
--- dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/chart/hibernate/Chart.hbm.xml	2014-04-15 12:43:39 +0000
+++ dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/chart/hibernate/Chart.hbm.xml	2014-04-21 16:49:18 +0000
@@ -164,6 +164,8 @@
 
     <property name="rangeAxisMaxValue" />
 
+    <property name="rangeAxisMinValue" />
+
     <property name="rangeAxisSteps" />
 
     <property name="rangeAxisDecimals" />

=== modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/app.js'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/app.js	2014-04-15 13:39:35 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/app.js	2014-04-21 16:49:18 +0000
@@ -35,28 +35,33 @@
 
 	// constructors
 	OptionsWindow = function() {
-		var showTrendLine,
+		var showValues,
+            hideEmptyRows,
+            showTrendLine,
 			targetLineValue,
 			targetLineTitle,
 			baseLineValue,
 			baseLineTitle,
 
-			showValues,
-            hideEmptyRows,
+            rangeAxisMaxValue,
+            rangeAxisMinValue,
+            rangeAxisSteps,
+            rangeAxisDecimals,
+			rangeAxisTitle,
+			domainAxisTitle,
+            
 			hideLegend,
 			hideTitle,
 			title,
-			domainAxisTitle,
-			rangeAxisTitle,
 
 			data,
 			axes,
 			general,
 			window,
 
-			cmpWidth = 310,
+			cmpWidth = 340,
 			labelWidth = 125,
-			numberWidth = 60;
+			numberWidth = 80;
 
 		showTrendLine = Ext.create('Ext.form.field.Checkbox', {
 			boxLabel: NS.i18n.trend_line,
@@ -117,14 +122,20 @@
 		});
 
 		rangeAxisMaxValue = Ext.create('Ext.form.field.Number', {
-			width: 190,
+			width: numberWidth,
 			height: 18,
-			fieldLabel: 'Range axis max value',
 			labelWidth: 125
 		});
 
+		rangeAxisMinValue = Ext.create('Ext.form.field.Number', {
+			width: numberWidth,
+			height: 18,
+			labelWidth: 125,
+            style: 'margin-left:1px'
+		});
+
 		rangeAxisSteps = Ext.create('Ext.form.field.Number', {
-			width: 190,
+			width: labelWidth + 5 + numberWidth,
 			height: 18,
 			fieldLabel: 'Range axis tick steps',
 			labelWidth: 125,
@@ -132,7 +143,7 @@
 		});
 
 		rangeAxisDecimals = Ext.create('Ext.form.field.Number', {
-			width: 190,
+			width: labelWidth + 5 + numberWidth,
 			height: 18,
 			fieldLabel: 'Range axis decimals',
 			labelWidth: 125,
@@ -164,7 +175,7 @@
 			style: 'margin-bottom:2px',
 			width: cmpWidth,
 			fieldLabel: NS.i18n.chart_title,
-			labelStyle: 'color:#333; padding-left:2px',
+			labelStyle: 'color:#333',
 			labelWidth: 125,
 			maxLength: 100,
 			enforceMaxLength: true,
@@ -184,7 +195,7 @@
 		});
 		
 		domainAxisTitle = Ext.create('Ext.form.field.Text', {
-			width: 310,
+			width: cmpWidth,
 			fieldLabel: NS.i18n.domain_axis_label,
 			labelStyle: 'color:#333',
 			labelWidth: 125,
@@ -207,7 +218,7 @@
 					bodyStyle: 'border:0 none',
 					items: [
 						{
-							bodyStyle: 'border:0 none; padding-top:3px; padding-left:2px; margin-right:5px; color:#333',
+							bodyStyle: 'border:0 none; padding-top:3px; margin-right:5px; color:#333',
 							width: 130,
 							html: 'Target value / title:'
 						},
@@ -221,7 +232,7 @@
 					bodyStyle: 'border:0 none',
 					items: [
 						{
-							bodyStyle: 'border:0 none; padding-top:3px; padding-left:2px; margin-right:5px; color:#333',
+							bodyStyle: 'border:0 none; padding-top:3px; margin-right:5px; color:#333',
 							width: 130,
 							html: 'Base value / title:'
 						},
@@ -236,7 +247,19 @@
 			bodyStyle: 'border:0 none',
 			style: 'margin-left:14px',
 			items: [
-				rangeAxisMaxValue,
+				{
+					layout: 'column',
+					bodyStyle: 'border:0 none',
+					items: [
+						{
+							bodyStyle: 'border:0 none; padding-top:3px; margin-right:5px; color:#333',
+							width: 130,
+							html: 'Range axis max/min:'
+						},
+						rangeAxisMaxValue,
+						rangeAxisMinValue
+					]
+				},
 				rangeAxisSteps,
 				rangeAxisDecimals,
 				rangeAxisTitle,
@@ -272,6 +295,7 @@
 					baseLineValue: baseLineValue.getValue(),
 					baseLineTitle: baseLineTitle.getValue(),
 					rangeAxisMaxValue: rangeAxisMaxValue.getValue(),
+					rangeAxisMinValue: rangeAxisMinValue.getValue(),
 					rangeAxisSteps: rangeAxisSteps.getValue(),
 					rangeAxisDecimals: rangeAxisDecimals.getValue(),
 					rangeAxisTitle: rangeAxisTitle.getValue(),
@@ -324,6 +348,14 @@
 					rangeAxisMaxValue.reset();
 				}
 
+				// rangeAxisMinValue
+				if (Ext.isNumber(layout.rangeAxisMinValue)) {
+					rangeAxisMinValue.setValue(layout.rangeAxisMinValue);
+				}
+				else {
+					rangeAxisMinValue.reset();
+				}
+
 				// rangeAxisSteps
 				if (Ext.isNumber(layout.rangeAxisSteps)) {
 					rangeAxisSteps.setValue(layout.rangeAxisSteps);
@@ -437,6 +469,7 @@
 					w.baseLineTitle = baseLineTitle;
 
 					w.rangeAxisMaxValue = rangeAxisMaxValue;
+					w.rangeAxisMinValue = rangeAxisMinValue;
 					w.rangeAxisSteps = rangeAxisSteps;
 					w.rangeAxisDecimals = rangeAxisDecimals;
 					w.rangeAxisTitle = rangeAxisTitle;

=== modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/core.js'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/core.js	2014-04-15 12:43:39 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/core.js	2014-04-21 16:49:18 +0000
@@ -315,6 +315,8 @@
 
                 // rangeAxisMaxValue: number
 
+                // rangeAxisMinValue: number
+
                 // rangeAxisSteps: number
 
                 // rangeAxisDecimals: number
@@ -558,6 +560,7 @@
                         (Ext.isString(config.baseLineTitle) && !Ext.isEmpty(config.baseLineTitle) ? config.baseLineTitle : null);
 
 					layout.rangeAxisMaxValue = Ext.isNumber(config.rangeAxisMaxValue) ? config.rangeAxisMaxValue : null;
+					layout.rangeAxisMinValue = Ext.isNumber(config.rangeAxisMinValue) ? config.rangeAxisMinValue : null;
 					layout.rangeAxisSteps = Ext.isNumber(config.rangeAxisSteps) ? config.rangeAxisSteps : null;
 					layout.rangeAxisDecimals = Ext.isNumber(config.rangeAxisDecimals) ? config.rangeAxisDecimals : null;
 					layout.rangeAxisTitle = Ext.isString(config.rangeAxisLabel) && !Ext.isEmpty(config.rangeAxisLabel) ? config.rangeAxisLabel :
@@ -1931,6 +1934,10 @@
 						axis.maximum = xLayout.rangeAxisMaxValue;
 					}
 
+                    if (xLayout.rangeAxisMinValue) {
+						axis.minimum = xLayout.rangeAxisMinValue;
+					}
+
 					if (xLayout.rangeAxisSteps) {
 						axis.majorTickSteps = xLayout.rangeAxisSteps - 1;
 					}