=== 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 2011-06-01 08:57:39 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/chart/Chart.java 2011-06-07 16:12:23 +0000 @@ -32,6 +32,7 @@ import java.util.List; import org.hisp.dhis.common.ImportableObject; +import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.i18n.I18nFormat; import org.hisp.dhis.indicator.Indicator; import org.hisp.dhis.organisationunit.OrganisationUnit; @@ -47,11 +48,17 @@ { private static final long serialVersionUID = 2570074075484545534L; - public static final String DIMENSION_PERIOD = "period"; - - public static final String DIMENSION_ORGANISATIONUNIT = "organisationUnit"; - - public static final String DIMENSION_INDICATOR = "indicator"; + public static final String DIMENSION_PERIOD_INDICATOR = "period"; + + public static final String DIMENSION_ORGANISATIONUNIT_INDICATOR = "organisationUnit"; + + public static final String DIMENSION_INDICATOR_PERIOD = "indicator"; + + public static final String DIMENSION_PERIOD_DATAELEMENT = "period_dataElement"; + + public static final String DIMENSION_ORGANISATIONUNIT_DATAELEMENT = "organisationUnit_dataElement"; + + public static final String DIMENSION_DATAELEMENT_PERIOD = "dataElement_period"; public static final String TYPE_BAR = "bar"; @@ -97,6 +104,8 @@ private List indicators = new ArrayList(); + private List dataElements = new ArrayList(); + private List periods = new ArrayList(); private List organisationUnits = new ArrayList(); @@ -395,6 +404,16 @@ this.indicators = indicators; } + public void setDataElements( List dataElements ) + { + this.dataElements = dataElements; + } + + public List getDataElements() + { + return dataElements; + } + public List getPeriods() { return periods; === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/chart/ChartService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/chart/ChartService.java 2010-12-14 05:15:06 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/chart/ChartService.java 2011-06-07 16:12:23 +0000 @@ -43,43 +43,42 @@ /** * @author Lars Helge Overland - * @version $Id$ */ public interface ChartService { String ID = ChartService.class.getName(); - + JFreeChart getJFreeChart( int id, I18nFormat format ); - - JFreeChart getJFreeChart( List indicators, List periods, + + JFreeChart getJFreeChart( List indicators, List dataElements, List periods, List organisationUnits, String dimension, boolean regression, I18nFormat format ); - - JFreeChart getJFreeChart( String title, PlotOrientation orientation, - CategoryLabelPositions labelPositions, Map categoryValues ); - + + JFreeChart getJFreeChart( String title, PlotOrientation orientation, CategoryLabelPositions labelPositions, + Map categoryValues ); + JFreeChart getJFreeChartHistory( DataElement dataElement, DataElementCategoryOptionCombo categoryOptionCombo, Period lastPeriod, OrganisationUnit organisationUnit, int historyLength, I18nFormat format ); - + int saveChart( Chart chart ); void saveOrUpdate( Chart chart ); - + Chart getChart( int id ); - + void deleteChart( Chart chart ); - + Collection getAllCharts(); - + Chart getChartByTitle( String name ); - + Collection getCharts( final Collection identifiers ); - + Collection getChartsBetween( int first, int max ); - + Collection getChartsBetweenByName( String name, int first, int max ); - + int getChartCount(); - + int getChartCountByName( String name ); } === modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.java' --- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.java 2011-06-01 08:57:39 +0000 +++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.java 2011-06-07 16:12:23 +0000 @@ -27,9 +27,12 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import static org.hisp.dhis.chart.Chart.DIMENSION_INDICATOR; -import static org.hisp.dhis.chart.Chart.DIMENSION_ORGANISATIONUNIT; -import static org.hisp.dhis.chart.Chart.DIMENSION_PERIOD; +import static org.hisp.dhis.chart.Chart.DIMENSION_INDICATOR_PERIOD; +import static org.hisp.dhis.chart.Chart.DIMENSION_ORGANISATIONUNIT_INDICATOR; +import static org.hisp.dhis.chart.Chart.DIMENSION_PERIOD_INDICATOR; +import static org.hisp.dhis.chart.Chart.DIMENSION_DATAELEMENT_PERIOD; +import static org.hisp.dhis.chart.Chart.DIMENSION_ORGANISATIONUNIT_DATAELEMENT; +import static org.hisp.dhis.chart.Chart.DIMENSION_PERIOD_DATAELEMENT; import static org.hisp.dhis.chart.Chart.SIZE_NORMAL; import static org.hisp.dhis.chart.Chart.TYPE_BAR; import static org.hisp.dhis.chart.Chart.TYPE_BAR3D; @@ -61,6 +64,7 @@ import org.hisp.dhis.chart.Chart; import org.hisp.dhis.chart.ChartService; import org.hisp.dhis.chart.ChartStore; +import org.hisp.dhis.common.NameableObject; import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo; import org.hisp.dhis.datavalue.DataValue; @@ -218,11 +222,20 @@ return getJFreeChart( chart, true ); } - public JFreeChart getJFreeChart( List indicators, List periods, + public JFreeChart getJFreeChart( List indicators, List dataElements, List periods, List organisationUnits, String dimension, boolean regression, I18nFormat format ) { Chart chart = new Chart(); - chart.setTitle( getTitle( indicators, periods, organisationUnits, format ) ); + + if ( indicators != null && indicators.size() > 0 ) + { + chart.setTitle( getTitle( indicators.get( 0 ), periods, organisationUnits, format ) ); + } + else if ( dataElements != null && dataElements.size() > 0 ) + { + chart.setTitle( getTitle( dataElements.get( 0 ), periods, organisationUnits, format ) ); + } + chart.setType( TYPE_BAR ); chart.setSize( SIZE_NORMAL ); chart.setDimension( dimension ); @@ -231,6 +244,7 @@ chart.setHorizontalPlotOrientation( false ); chart.setRegression( regression ); chart.setIndicators( indicators ); + chart.setDataElements( dataElements ); chart.setPeriods( periods ); chart.setOrganisationUnits( organisationUnits ); chart.setFormat( format ); @@ -528,7 +542,7 @@ for ( int i = 0; i < dataSets[0].getColumnCount(); i++ ) { - piePlot.setSectionPaint( dataSets[0].getColumnKey( i ), colors[ ( i % colors.length ) ] ); + piePlot.setSectionPaint( dataSets[0].getColumnKey( i ), colors[(i % colors.length)] ); } return multiplePieChart; @@ -553,7 +567,7 @@ plot.addRangeMarker( marker ); } - + if ( subTitle ) { jFreeChart.addSubtitle( getSubTitle( chart, chart.getFormat() ) ); @@ -601,13 +615,37 @@ Period selectedPeriod = chart.getAllPeriods().get( 0 ); OrganisationUnit selectedOrganisationUnit = chart.getAllOrganisationUnits().get( 0 ); - for ( Indicator indicator : chart.getIndicators() ) + List indicators = chart.getIndicators(); + List dataElements = chart.getDataElements(); + + boolean isIndicatorChart = chart.isDimension( DIMENSION_INDICATOR_PERIOD ) + || chart.isDimension( DIMENSION_ORGANISATIONUNIT_INDICATOR ) + || chart.isDimension( DIMENSION_PERIOD_INDICATOR ); + + boolean isDataElementChart = !isIndicatorChart; + + int loopSize = isIndicatorChart ? indicators.size() : dataElements.size(); + + for ( int i = 0; i < loopSize; i++ ) { final SimpleRegression regression = new SimpleRegression(); int columnIndex = 0; - if ( chart.isDimension( DIMENSION_PERIOD ) || chart.isDimension( DIMENSION_INDICATOR ) ) + String shortName = null; + + if ( isIndicatorChart ) + { + shortName = indicators.get( i ).getShortName(); + } + else if ( isDataElementChart ) + { + shortName = dataElements.get( i ).getShortName(); + } + + if ( chart.isDimension( DIMENSION_PERIOD_INDICATOR ) || chart.isDimension( DIMENSION_INDICATOR_PERIOD ) + || chart.isDimension( DIMENSION_PERIOD_DATAELEMENT ) + || chart.isDimension( DIMENSION_DATAELEMENT_PERIOD ) ) { // --------------------------------------------------------- // Regular dataset @@ -615,21 +653,35 @@ for ( Period period : chart.getAllPeriods() ) { - final Double value = aggregationStrategy.equals( AGGREGATION_STRATEGY_REAL_TIME ) ? aggregationService - .getAggregatedIndicatorValue( indicator, period.getStartDate(), period.getEndDate(), - selectedOrganisationUnit ) : aggregatedDataValueService.getAggregatedValue( indicator, - period, selectedOrganisationUnit ); - - if ( chart.isDimension( DIMENSION_PERIOD ) ) - { - regularDataSet.addValue( value != null ? value : 0, indicator.getShortName(), chart - .getFormat().formatPeriod( period ) ); + Double value = null; + + if ( isIndicatorChart ) + { + value = aggregationStrategy.equals( AGGREGATION_STRATEGY_REAL_TIME ) ? aggregationService + .getAggregatedIndicatorValue( indicators.get( i ), period.getStartDate(), + period.getEndDate(), selectedOrganisationUnit ) : aggregatedDataValueService + .getAggregatedValue( indicators.get( i ), period, selectedOrganisationUnit ); + } + else if ( isDataElementChart ) + { + value = aggregationStrategy.equals( AGGREGATION_STRATEGY_REAL_TIME ) ? aggregationService + .getAggregatedDataValue( dataElements.get( i ), null, period.getStartDate(), + period.getEndDate(), selectedOrganisationUnit ) : aggregatedDataValueService + .getAggregatedValue( dataElements.get( i ), period, selectedOrganisationUnit ); + } + + if ( chart.isDimension( DIMENSION_PERIOD_INDICATOR ) + || chart.isDimension( DIMENSION_PERIOD_DATAELEMENT ) ) + { + regularDataSet.addValue( value != null ? value : 0, shortName, chart.getFormat() + .formatPeriod( period ) ); } else { regularDataSet.addValue( value != null ? value : 0, - chart.getFormat().formatPeriod( period ), indicator.getShortName() ); + chart.getFormat().formatPeriod( period ), shortName ); } + columnIndex++; // Omit missing values and 0 from regression @@ -656,14 +708,15 @@ if ( !Double.isNaN( value ) ) { - regressionDataSet.addValue( value, TREND_PREFIX + indicator.getShortName(), chart - .getFormat().formatPeriod( period ) ); + regressionDataSet.addValue( value, TREND_PREFIX + shortName, chart.getFormat() + .formatPeriod( period ) ); } } } } - else if ( chart.isDimension( DIMENSION_ORGANISATIONUNIT ) ) + else if ( chart.isDimension( DIMENSION_ORGANISATIONUNIT_INDICATOR ) + || chart.isDimension( DIMENSION_ORGANISATIONUNIT_DATAELEMENT ) ) { // --------------------------------------------------------- // Regular dataset @@ -671,13 +724,24 @@ for ( OrganisationUnit unit : chart.getAllOrganisationUnits() ) { - final Double value = aggregationStrategy.equals( AGGREGATION_STRATEGY_REAL_TIME ) ? aggregationService - .getAggregatedIndicatorValue( indicator, selectedPeriod.getStartDate(), - selectedPeriod.getEndDate(), unit ) : aggregatedDataValueService.getAggregatedValue( - indicator, selectedPeriod, unit ); - - regularDataSet.addValue( value != null ? value : 0, indicator.getShortName(), - unit.getShortName() ); + Double value = null; + + if ( isIndicatorChart ) + { + value = aggregationStrategy.equals( AGGREGATION_STRATEGY_REAL_TIME ) ? aggregationService + .getAggregatedIndicatorValue( indicators.get( i ), selectedPeriod.getStartDate(), + selectedPeriod.getEndDate(), unit ) : aggregatedDataValueService + .getAggregatedValue( indicators.get( i ), selectedPeriod, unit ); + } + else if ( isDataElementChart ) + { + value = aggregationStrategy.equals( AGGREGATION_STRATEGY_REAL_TIME ) ? aggregationService + .getAggregatedDataValue( dataElements.get( i ), null, selectedPeriod.getStartDate(), + selectedPeriod.getEndDate(), unit ) : aggregatedDataValueService + .getAggregatedValue( dataElements.get( i ), selectedPeriod, unit ); + } + + regularDataSet.addValue( value != null ? value : 0, shortName, unit.getShortName() ); columnIndex++; } @@ -694,22 +758,22 @@ /** * Returns a title based on the chart meta data. */ - private String getTitle( List indicators, List periods, + private String getTitle( NameableObject nameableObject, List periods, List organisationUnits, I18nFormat format ) { String title = ""; - if ( indicators != null && indicators.size() == 1 ) + if ( nameableObject != null ) { - title += indicators.get( 0 ).getShortName() + TITLE_SEPARATOR; + title += nameableObject.getShortName() + TITLE_SEPARATOR; } - if ( periods != null && periods.size() == 1 ) + if ( periods != null && periods.size() > 0 ) { title += format.formatPeriod( periods.get( 0 ) ) + TITLE_SEPARATOR; } - if ( organisationUnits != null && organisationUnits.size() == 1 ) + if ( organisationUnits != null && organisationUnits.size() > 0 ) { title += organisationUnits.get( 0 ).getShortName() + TITLE_SEPARATOR; } @@ -735,15 +799,15 @@ subTitle.setFont( subTitleFont ); - if ( chart.isDimension( DIMENSION_PERIOD ) && chart.getAllOrganisationUnits().size() > 0 ) + if ( chart.isDimension( DIMENSION_PERIOD_INDICATOR ) && chart.getAllOrganisationUnits().size() > 0 ) { subTitle.setText( chart.getAllOrganisationUnits().get( 0 ).getName() ); } - else if ( chart.isDimension( DIMENSION_ORGANISATIONUNIT ) && chart.getAllPeriods().size() > 0 ) + else if ( chart.isDimension( DIMENSION_ORGANISATIONUNIT_INDICATOR ) && chart.getAllPeriods().size() > 0 ) { subTitle.setText( format.formatPeriod( chart.getAllPeriods().get( 0 ) ) ); } - else if ( chart.isDimension( DIMENSION_INDICATOR ) && chart.getIndicators().size() > 0 ) + else if ( chart.isDimension( DIMENSION_INDICATOR_PERIOD ) && chart.getIndicators().size() > 0 ) { subTitle.setText( chart.getAllOrganisationUnits().get( 0 ).getName() ); } === 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 2011-05-28 21:25:46 +0000 +++ dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/chart/hibernate/Chart.hbm.xml 2011-06-07 16:12:23 +0000 @@ -41,6 +41,13 @@ + + + + + + + @@ -52,7 +59,8 @@ - + === modified file 'dhis-2/dhis-support/dhis-support-test/src/main/java/org/hisp/dhis/DhisConvenienceTest.java' --- dhis-2/dhis-support/dhis-support-test/src/main/java/org/hisp/dhis/DhisConvenienceTest.java 2011-06-03 13:11:34 +0000 +++ dhis-2/dhis-support/dhis-support-test/src/main/java/org/hisp/dhis/DhisConvenienceTest.java 2011-06-07 16:12:23 +0000 @@ -815,7 +815,7 @@ Chart chart = new Chart(); chart.setTitle( "Chart" + uniqueCharacter ); - chart.setDimension( Chart.DIMENSION_PERIOD ); + chart.setDimension( Chart.DIMENSION_PERIOD_INDICATOR ); chart.setIndicators( indicators ); chart.setPeriods( periods ); chart.setOrganisationUnits( units ); === modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/lists.js' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/lists.js 2011-04-11 16:43:51 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/lists.js 2011-06-07 16:12:23 +0000 @@ -125,8 +125,7 @@ * @param listId the id of the list. */ function selectAllById( listId ) { - var list = document.getElementById( listId ); - selectAll( list ); + $('#' + listId).find('option').attr('selected', true); } /** @@ -134,9 +133,7 @@ * @param list the list. */ function selectAll( list ) { - for ( var i = 0; i < list.options.length; i++ ) { - list.options[i].selected = true; - } + $(list).find('option').attr('selected', true); } /** === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/chart/action/GenerateChartAction.java' --- dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/chart/action/GenerateChartAction.java 2010-04-12 21:23:33 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/chart/action/GenerateChartAction.java 2011-06-07 16:12:23 +0000 @@ -27,10 +27,14 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import static org.hisp.dhis.system.util.ConversionUtils.getIntegerCollection; + import java.util.ArrayList; import java.util.List; import org.hisp.dhis.chart.ChartService; +import org.hisp.dhis.dataelement.DataElement; +import org.hisp.dhis.dataelement.DataElementService; import org.hisp.dhis.i18n.I18nFormat; import org.hisp.dhis.indicator.Indicator; import org.hisp.dhis.indicator.IndicatorService; @@ -46,7 +50,6 @@ * Known usage of this class is the pivot table chart functionality. * * @author Lars Helge Overland - * @version $Id$ */ public class GenerateChartAction implements Action @@ -68,7 +71,14 @@ { this.indicatorService = indicatorService; } - + + private DataElementService dataElementService; + + public void setDataElementService( DataElementService dataElementService ) + { + this.dataElementService = dataElementService; + } + private PeriodService periodService; public void setPeriodService( PeriodService periodService ) @@ -101,6 +111,13 @@ this.indicatorId = indicatorId; } + private List dataElementsId; + + public void setDataElementsId( List dataElementsId ) + { + this.dataElementsId = dataElementsId; + } + private List periodId; public void setPeriodId( List periodId ) @@ -121,21 +138,21 @@ { this.dimension = dimension; } - + private boolean regression; public void setRegression( boolean regression ) { this.regression = regression; } - + private String chartWidth; public void setChartWidth( String chartWidth ) { this.chartWidth = chartWidth; } - + // ------------------------------------------------------------------------- // Output // ------------------------------------------------------------------------- @@ -160,7 +177,7 @@ { return height; } - + // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- @@ -169,32 +186,40 @@ throws Exception { List indicators = new ArrayList(); - + for ( String id : indicatorId ) { indicators.add( indicatorService.getIndicator( Integer.parseInt( id ) ) ); } - + + List dataElements = new ArrayList(); + + for ( Integer id : getIntegerCollection( dataElementsId ) ) + { + dataElements.add( dataElementService.getDataElement( id ) ); + } + List periods = new ArrayList(); - + for ( String id : periodId ) { periods.add( periodService.getPeriod( Integer.parseInt( id ) ) ); } - + List organisationUnits = new ArrayList(); - + for ( String id : organisationUnitId ) { organisationUnits.add( organisationUnitService.getOrganisationUnit( Integer.parseInt( id ) ) ); } - + width = chartWidth != null ? Integer.valueOf( chartWidth ) : 700; - + height = 500; - - chart = chartService.getJFreeChart( indicators, periods, organisationUnits, dimension, regression, format ); - + + chart = chartService.getJFreeChart( indicators, dataElements, periods, organisationUnits, dimension, + regression, format ); + return SUCCESS; } } === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/chart/action/GetChartOptionsAction.java' --- dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/chart/action/GetChartOptionsAction.java 2011-01-13 15:44:09 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/chart/action/GetChartOptionsAction.java 2011-06-07 16:12:23 +0000 @@ -35,6 +35,10 @@ import org.hisp.dhis.chart.Chart; import org.hisp.dhis.chart.ChartService; +import org.hisp.dhis.dataelement.DataElement; +import org.hisp.dhis.dataelement.DataElementGroup; +import org.hisp.dhis.dataelement.DataElementService; +import org.hisp.dhis.dataelement.comparator.DataElementGroupNameComparator; import org.hisp.dhis.indicator.Indicator; import org.hisp.dhis.indicator.IndicatorGroup; import org.hisp.dhis.indicator.IndicatorService; @@ -55,7 +59,6 @@ /** * @author Lars Helge Overland - * @version $Id$ */ public class GetChartOptionsAction implements Action @@ -78,6 +81,13 @@ this.indicatorService = indicatorService; } + private DataElementService dataElementService; + + public void setDataElementService( DataElementService dataElementService ) + { + this.dataElementService = dataElementService; + } + private PeriodService periodService; public void setPeriodService( PeriodService periodService ) @@ -91,28 +101,35 @@ { this.organisationUnitService = organisationUnitService; } - + private DisplayPropertyHandler displayPropertyHandler; public void setDisplayPropertyHandler( DisplayPropertyHandler displayPropertyHandler ) { this.displayPropertyHandler = displayPropertyHandler; } - + private Comparator indicatorComparator; public void setIndicatorComparator( Comparator indicatorComparator ) { this.indicatorComparator = indicatorComparator; } - + + private Comparator dataElementComparator; + + public void setDataElementComparator( Comparator dataElementComparator ) + { + this.dataElementComparator = dataElementComparator; + } + private Comparator organisationUnitComparator; public void setOrganisationUnitComparator( Comparator organisationUnitComparator ) { this.organisationUnitComparator = organisationUnitComparator; } - + // ------------------------------------------------------------------------- // Input // ------------------------------------------------------------------------- @@ -123,7 +140,7 @@ { this.id = id; } - + private String dimension; public String getDimension() @@ -134,8 +151,8 @@ public void setDimension( String dimension ) { this.dimension = dimension; - } - + } + // ------------------------------------------------------------------------- // Output // ------------------------------------------------------------------------- @@ -145,7 +162,7 @@ public Chart getChart() { return chart; - } + } private List indicatorGroups = new ArrayList(); @@ -153,7 +170,14 @@ { return indicatorGroups; } - + + private List dataElementGroups = new ArrayList(); + + public List getDataElementGroups() + { + return dataElementGroups; + } + private List availableIndicators; public List getAvailableIndicators() @@ -161,13 +185,27 @@ return availableIndicators; } + private List availableDataElements; + + public List getAvailableDataElements() + { + return availableDataElements; + } + private List selectedIndicators; public List getSelectedIndicators() { return selectedIndicators; } - + + private List selectedDataElements; + + public List getSelectedDataElements() + { + return selectedDataElements; + } + private List periodTypes = new ArrayList(); public List getPeriodTypes() @@ -181,28 +219,28 @@ { return availablePeriods; } - + private List selectedPeriods; public List getSelectedPeriods() { return selectedPeriods; } - + private List levels = new ArrayList(); public List getLevels() { return levels; } - + private List availableOrganisationUnits; public List getAvailableOrganisationUnits() { return availableOrganisationUnits; } - + private List selectedOrganisationUnits; public List getSelectedOrganisationUnits() @@ -217,45 +255,56 @@ public String execute() { indicatorGroups = new ArrayList( indicatorService.getAllIndicatorGroups() ); - + + dataElementGroups = new ArrayList( dataElementService.getAllDataElementGroups() ); + availableIndicators = new ArrayList( indicatorService.getAllIndicators() ); - + + availableDataElements = new ArrayList( dataElementService.getAllDataElements() ); + periodTypes = new ArrayList( periodService.getAllPeriodTypes() ); - + availablePeriods = new MonthlyPeriodType().generatePeriods( new Date() ); levels = organisationUnitService.getOrganisationUnitLevels(); - + availableOrganisationUnits = new ArrayList( organisationUnitService.getAllOrganisationUnits() ); - + Collections.sort( indicatorGroups, new IndicatorGroupNameComparator() ); + Collections.sort( dataElementGroups, new DataElementGroupNameComparator() ); Collections.sort( availableIndicators, indicatorComparator ); + Collections.sort( availableDataElements, dataElementComparator ); Collections.sort( levels, new OrganisationUnitLevelComparator() ); - Collections.sort( availableOrganisationUnits, organisationUnitComparator ); + Collections.sort( availableOrganisationUnits, organisationUnitComparator ); Collections.reverse( availablePeriods ); FilterUtils.filter( availablePeriods, new PastAndCurrentPeriodFilter() ); - + displayPropertyHandler.handle( availableIndicators ); + displayPropertyHandler.handle( availableDataElements ); displayPropertyHandler.handle( availableOrganisationUnits ); - + if ( id != null ) { chart = chartService.getChart( id ); - + selectedIndicators = chart.getIndicators(); availableIndicators.removeAll( selectedIndicators ); - + + selectedDataElements = chart.getDataElements(); + availableDataElements.removeAll( selectedDataElements ); + selectedPeriods = chart.getPeriods(); availablePeriods.removeAll( selectedPeriods ); - + selectedOrganisationUnits = chart.getOrganisationUnits(); availableOrganisationUnits.removeAll( selectedOrganisationUnits ); - + displayPropertyHandler.handle( selectedIndicators ); + displayPropertyHandler.handle( selectedDataElements ); displayPropertyHandler.handle( selectedOrganisationUnits ); } - + return SUCCESS; } } === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/chart/action/SaveChartAction.java' --- dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/chart/action/SaveChartAction.java 2011-05-02 12:54:28 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/chart/action/SaveChartAction.java 2011-06-07 16:12:23 +0000 @@ -35,14 +35,16 @@ import org.hisp.dhis.chart.Chart; import org.hisp.dhis.chart.ChartService; +import org.hisp.dhis.dataelement.DataElement; +import org.hisp.dhis.dataelement.DataElementService; import org.hisp.dhis.indicator.Indicator; import org.hisp.dhis.indicator.IndicatorService; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.period.Period; import org.hisp.dhis.period.PeriodService; +import org.hisp.dhis.period.RelativePeriods; import org.hisp.dhis.period.comparator.AscendingPeriodComparator; -import org.hisp.dhis.period.RelativePeriods; import com.opensymphony.xwork2.Action; @@ -71,6 +73,13 @@ this.indicatorService = indicatorService; } + private DataElementService dataElementService; + + public void setDataElementService( DataElementService dataElementService ) + { + this.dataElementService = dataElementService; + } + private PeriodService periodService; public void setPeriodService( PeriodService periodService ) @@ -167,8 +176,9 @@ } private String targetLineLabel; - - public void setTargetLineLabel( String targetLineLabel ) { + + public void setTargetLineLabel( String targetLineLabel ) + { this.targetLineLabel = targetLineLabel; } @@ -186,6 +196,13 @@ this.selectedIndicators = selectedIndicators; } + private List selectedDataElements = new ArrayList(); + + public void setSelectedDataElements( List selectedDataElements ) + { + this.selectedDataElements = selectedDataElements; + } + private List selectedPeriods = new ArrayList(); public void setSelectedPeriods( List selectedPeriods ) @@ -258,6 +275,7 @@ Chart chart = id == null ? new Chart() : chartService.getChart( id ); List indicators = new ArrayList(); + List dataElements = new ArrayList(); List organisationUnits = new ArrayList(); List periods = new ArrayList( periodService.getPeriodsByExternalIds( selectedPeriods ) ); @@ -266,6 +284,11 @@ indicators.add( indicatorService.getIndicator( id ) ); } + for ( Integer id : getIntegerCollection( selectedDataElements ) ) + { + dataElements.add( dataElementService.getDataElement( id ) ); + } + for ( Integer id : getIntegerCollection( selectedOrganisationUnits ) ) { organisationUnits.add( organisationUnitService.getOrganisationUnit( id ) ); @@ -286,6 +309,7 @@ chart.setTargetLineLabel( targetLineLabel ); chart.setUserOrganisationUnit( userOrganisationUnit ); chart.setIndicators( indicators ); + chart.setDataElements( dataElements ); chart.setPeriods( periods ); chart.setOrganisationUnits( organisationUnits ); === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-web/dhis-web-reporting/src/main/resources/META-INF/dhis/beans.xml 2011-05-30 20:54:54 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/resources/META-INF/dhis/beans.xml 2011-06-07 16:12:23 +0000 @@ -1,465 +1,325 @@ - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + - - - + - - - + + + - - - - - - + + + + - - - + - - - - - - + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - + + - - - - + + + + - === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/resources/org/hisp/dhis/reporting/i18n_module.properties' --- dhis-2/dhis-web/dhis-web-reporting/src/main/resources/org/hisp/dhis/reporting/i18n_module.properties 2011-06-01 11:39:43 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/resources/org/hisp/dhis/reporting/i18n_module.properties 2011-06-07 16:12:23 +0000 @@ -26,7 +26,9 @@ manage_report_table= Manage report table available_indicators= Available indicators select_indicatorgroup_all= Select indicator group / View all +select_dataelementgroup_all= Select data element group / View all selected_indicators= Selected indicators +selected_dataelements= Selected data elements available_organisationunits= Available organisation units select_organisationunit_level_all = Select organsation unit level / View all select_period_type_all = Select period type / View all @@ -166,10 +168,15 @@ add_organisation_unit_chart= Add organisation unit chart add_indicator_chart = Add indicator chart period_by_indicator_chart = Period by indicator chart +period_by_dataelement_chart = Period by data element chart indicator_by_period_chart= Indicator by period chart +dataelement_by_period_chart= Data element by period chart indicator_by_organisation_unit_chart= Indicator by organisation unit chart +dataelement_by_organisation_unit_chart= Data element by organisation unit chart create_indicator_by_period_chart= Create indicator by period chart +create_dataelement_by_period_chart= Create data element by period chart create_indicator_by_organisation_unit_chart= Create indicator by organisation unit chart +create_dataelement_by_organisation_unit_chart= Create data element by organisation unit chart dimension= Dimension category_option_combos= Category Option Combinations hide_legend= Hide legend @@ -189,6 +196,8 @@ title= Title value_y_available_indicators= Value (Y) - Available indicators value_y_selected_indicators= Value (Y) - Selected indicators +value_y_available_dataelements= Value (Y) - Available data elements +value_y_selected_dataelements= Value (Y) - Selected data elements category_x_available_organisationunits= Category (X) - Available organisation units category_x_selected_organisationunits= Category (X) - Selected organisation units category_x_available_periods= Category (X) - Available periods @@ -197,6 +206,7 @@ filter_available_periods= Filter - Available periods pivot_table= Pivot Table indicator_group= Indicator group +dataelement_group= Data element group start_date= Start date end_date= End date period_type= Period type @@ -300,8 +310,11 @@ intro_orgunit_distribution_report = Browse the organisation unit distribution report based on the organisation unit group sets and its groups. orgunit_distribution_report = Organisation Unit Distribution Report create_period_by_indicator_chart = Create period by indicator chart +create_period_by_dataelement_chart = Create period by data element chart value_x_selected_indicators = Value (X) - Selected indicators value_x_available_indicators = Value (X) - Available indicators +value_x_selected_dataelements = Value (X) - Selected data elements +value_x_available_dataelements = Value (X) - Available data elements category_y_selected_periods = Value (Y) - Selected periods category_y_available_periods = Value (Y) - Available periods get_current_design = Get current design === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/resources/struts.xml' --- dhis-2/dhis-web/dhis-web-reporting/src/main/resources/struts.xml 2011-05-31 11:18:52 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/resources/struts.xml 2011-06-07 16:12:23 +0000 @@ -4,10 +4,10 @@ "http://struts.apache.org/dtds/struts-2.0.dtd"> - - + + - + /main.vm /dhis-web-reporting/index.vm @@ -15,27 +15,27 @@ - + - displayViewDocumentForm.action - + displayViewDocumentForm.action + F_DOCUMENT_ADD - + /dhis-web-commons/ajax/jsonResponseSuccess.vm F_DOCUMENT_DELETE plainTextError - + /main.vm /dhis-web-reporting/viewDocumentForm.vm /dhis-web-reporting/menu.vm javascript/document.js - ../dhis-web-commons/paging/paging.css + ../dhis-web-commons/paging/paging.css - + /main.vm /dhis-web-reporting/addDocumentForm.vm @@ -43,60 +43,60 @@ javascript/document.js F_DOCUMENT_ADD - + /dhis-web-commons/ajax/jsonResponseSuccess.vm /dhis-web-commons/ajax/jsonResponseInput.vm plainTextError - + /dhis-web-reporting/responseSuccess.vm plainTextError - + displayViewChartForm.action - F_CHART_ADD + F_CHART_ADD - + /dhis-web-commons/ajax/jsonResponseSuccess.vm F_CHART_DELETE plainTextError - + /main.vm /dhis-web-reporting/addChartForm.vm /dhis-web-reporting/menu.vm javascript/lists.js,javascript/chart.js - F_CHART_ADD + F_CHART_ADD - + /main.vm /dhis-web-reporting/viewChartForm.vm /dhis-web-reporting/menu.vm javascript/chart.js - ../dhis-web-commons/paging/paging.css + ../dhis-web-commons/paging/paging.css - + - + - - + + /dhis-web-reporting/responseChart.vm plainTextError - + /dhis-web-reporting/responseSuccess.vm /dhis-web-reporting/responseInput.vm @@ -104,33 +104,33 @@ - + /main.vm /dhis-web-reporting/addReportForm.vm /dhis-web-reporting/menu.vm javascript/report.js - F_REPORT_ADD + F_REPORT_ADD - + displayViewReportForm.action - displayAddReportForm.action - + displayAddReportForm.action + F_REPORT_ADD - + /dhis-web-commons/ajax/jsonResponseSuccess.vm - F_REPORT_DELETE + F_REPORT_DELETE plainTextError - + displayViewReportForm.action F_REPORT_VIEW - + /main.vm 420 @@ -138,48 +138,48 @@ /dhis-web-reporting/menu.vm javascript/report.js F_REPORT_VIEW - ../dhis-web-commons/paging/paging.css + ../dhis-web-commons/paging/paging.css - + /dhis-web-reporting/responseSuccess.vm plainTextError - + - + - + - + - - + + /main.vm /dhis-web-reporting/viewTableForm.vm /dhis-web-reporting/menu.vm javascript/table.js - ../dhis-web-commons/paging/paging.css + ../dhis-web-commons/paging/paging.css - + /dhis-web-commons/ajax/jsonResponseSuccess.vm F_REPORTTABLE_DELETE plainTextError - + displayManageTableForm.action - F_REPORTTABLE_ADD + F_REPORTTABLE_ADD - + /dhis-web-reporting/responseSuccess.vm plainTextError - + /main.vm /dhis-web-reporting/inputReportParamsForm.vm @@ -187,7 +187,7 @@ ../dhis-web-commons/oust/oust.js,javascript/generateReport.js F_REPORT_VIEW - + /main.vm /dhis-web-reporting/addTableForm.vm @@ -195,95 +195,95 @@ javascript/table.js,javascript/lists.js F_REPORTTABLE_ADD - + /dhis-web-reporting/responseTable.vm plainTextError - + /dhis-web-reporting/responseStatus.vm plainTextError - + /dhis-web-reporting/responseSuccess.vm /dhis-web-reporting/responseInput.vm plainTextError - + /dhis-web-reporting/responseSuccess.vm plainTextError - + - - - - - + + + + + /main.vm /dhis-web-reporting/reportTableGrid.vm - /dhis-web-reporting/menu.vm - javascript/generateReport.js + /dhis-web-reporting/menu.vm + javascript/generateReport.js - + ../dhis-web-commons/ajax/xmlDataElements.vm plainTextError - + /main.vm /dhis-web-reporting/viewPivotTableForm.vm /dhis-web-reporting/menu.vm ../dhis-web-commons/oust/oust.js,javascript/pivot.js,javascript/criteria.js - + - + /dhis-web-reporting/responsePivotTable.vm plainTextError - + /main.vm /dhis-web-reporting/viewDataCompletenessForm.vm /dhis-web-reporting/menu.vm ../dhis-web-commons/oust/oust.js,javascript/dataCompleteness.js - + displayViewDataCompletenessForm.action - - - + + + /dhis-web-commons/ajax/htmlGrid.vm - - + + /main.vm - 420 + 420 /dhis-web-reporting/dataSetReportForm.vm /dhis-web-reporting/menu.vm ../dhis-web-commons/oust/oust.js,javascript/dataSetReport.js - - - - - - - /main.vm - /dhis-web-reporting/menu.vm - javascript/dataSetReport.js - + + + + + + + /main.vm + /dhis-web-reporting/menu.vm + javascript/dataSetReport.js + @@ -295,7 +295,7 @@ ../dhis-web-commons/oust/oust.js,javascript/tallySheet.js - + /main.vm 420 @@ -304,24 +304,24 @@ ../dhis-web-commons/oust/oust.js,javascript/tallySheet.js - + - application/pdf - inputStream - filename="${fileName}" - 1024 + application/pdf + inputStream + filename="${fileName}" + 1024 - - - - - + + + + + /dhis-web-commons/ajax/htmlGrid.vm - + /main.vm @@ -331,27 +331,27 @@ style/dhis-web-reporting.css - - - + + + - - - /main.vm - /dhis-web-reporting/viewScheduledTasks.vm - /dhis-web-reporting/menu.vm - true - F_SCHEDULING_ADMIN - - - - /main.vm - /dhis-web-reporting/viewScheduledTasks.vm - /dhis-web-reporting/menu.vm - F_SCHEDULING_ADMIN - + + + /main.vm + /dhis-web-reporting/viewScheduledTasks.vm + /dhis-web-reporting/menu.vm + true + F_SCHEDULING_ADMIN + + + + /main.vm + /dhis-web-reporting/viewScheduledTasks.vm + /dhis-web-reporting/menu.vm + F_SCHEDULING_ADMIN + === added file 'dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addChartDataElementModeForm.vm' --- dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addChartDataElementModeForm.vm 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addChartDataElementModeForm.vm 2011-06-07 16:12:23 +0000 @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
$i18n.getString( "category_y_available_periods" )
+ + + +
+ +
+ + + + +
$i18n.getString( "category_y_selected_periods" )
+ +
$i18n.getString( "relative_periods" )
+ +   + +   + +   + +

+ + +   + +   + + +
$i18n.getString( "value_x_available_dataelements" )
+ +
+ +
+ + + + +
$i18n.getString( "value_x_selected_dataelements" )
+ + +

+ +
$i18n.getString( "filter_available_organisationunits" ) - $i18n.getString( 'clear' )
+ +
+ +
=== added file 'dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addChartDataElementOrgunitOrPeriodForm.vm' --- dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addChartDataElementOrgunitOrPeriodForm.vm 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addChartDataElementOrgunitOrPeriodForm.vm 2011-06-07 16:12:23 +0000 @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #if ( $dimension == "period_dataElement" ) + #parse( "dhis-web-reporting/addChartPeriodModeForm.vm" ) + #else + #parse( "dhis-web-reporting/addChartOrganisationUnitModeForm.vm" ) + #end + + + + + +
$i18n.getString( "value_y_available_dataelements" )
+ +
+ +
+ + + + +
$i18n.getString( "value_y_selected_dataelements" )
+ + +

+ +
+ + === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addChartForm.vm' --- dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addChartForm.vm 2011-05-02 12:54:28 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addChartForm.vm 2011-06-07 16:12:23 +0000 @@ -18,6 +18,7 @@ }); var i18n_must_select_at_least_one_indicator = '$encoder.jsEscape( $i18n.getString( "must_select_at_least_one_indicator" ), "'")'; + var i18n_must_select_at_least_one_dataelement = '$encoder.jsEscape( $i18n.getString( "must_select_at_least_one_dataelement" ), "'")'; var i18n_must_select_at_least_one_unit = '$encoder.jsEscape( $i18n.getString( "must_select_at_least_one_unit" ), "'")'; var i18n_must_select_at_least_one_period = '$encoder.jsEscape( $i18n.getString( "must_select_at_least_one_period" ), "'")'; var i18n_target_line_value_must_be_provided = '$encoder.jsEscape( $i18n.getString( "target_line_value_must_be_provided" ), "'")'; @@ -27,10 +28,16 @@ #macro ( getHeader ) #if ( $dimension == "period" ) $i18n.getString( "create_indicator_by_period_chart" ) + #elseif( $dimension == "period_dataElement" ) + $i18n.getString( "create_dataelement_by_period_chart" ) #elseif ( $dimension == "organisationUnit" ) $i18n.getString( "create_indicator_by_organisation_unit_chart" ) + #elseif ( $dimension == "organisationUnit_dataElement" ) + $i18n.getString( "create_dataelement_by_organisation_unit_chart" ) #elseif ( $dimension == "indicator" ) $i18n.getString( "create_period_by_indicator_chart" ) + #elseif ( $dimension == "dataElement_period" ) + $i18n.getString( "create_period_by_dataelement_chart" ) #end #end @@ -111,17 +118,26 @@ -#if ( $dimension == "indicator" ) +#if ( $dimension == "period" ) + #parse( "dhis-web-reporting/addChartOrgunitOrPeriodForm.vm" ) +#elseif( $dimension == "period_dataElement" ) + #parse( "dhis-web-reporting/addChartDataElementOrgunitOrPeriodForm.vm" ) +#elseif ( $dimension == "organisationUnit" ) + #parse( "dhis-web-reporting/addChartOrgunitOrPeriodForm.vm" ) +#elseif ( $dimension == "organisationUnit_dataElement" ) + #parse( "dhis-web-reporting/addChartDataElementOrgunitOrPeriodForm.vm" ) +#elseif ( $dimension == "indicator" ) #parse( "dhis-web-reporting/addChartIndicatorModeForm.vm" ) -#else - #parse( "dhis-web-reporting/addChartOrgunitOrPeriodForm.vm" ) +#elseif ( $dimension == "dataElement_period" ) + #parse( "dhis-web-reporting/addChartDataElementModeForm.vm" ) #end + === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/chart.js' --- dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/chart.js 2011-04-15 13:48:42 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/chart.js 2011-06-07 16:12:23 +0000 @@ -1,11 +1,12 @@ - // ----------------------------------------------------------------------------- // View chart // ----------------------------------------------------------------------------- function viewChart( url ) { - window.open( url, "_blank", "directories=no, height=560, width=760, location=no, menubar=no, status=no, toolbar=no, resizable=yes, scrollbars=yes" ); + window + .open(url, "_blank", + "directories=no, height=560, width=760, location=no, menubar=no, status=no, toolbar=no, resizable=yes, scrollbars=yes"); } // ----------------------------------------------------------------------------- @@ -14,7 +15,7 @@ function removeChart( chartId, chartTitle ) { - removeItem( chartId, chartTitle, i18n_confirm_delete, "removeChart.action" ); + removeItem(chartId, chartTitle, i18n_confirm_delete, "removeChart.action"); } // ----------------------------------------------------------------------------- @@ -24,19 +25,19 @@ function showChartDetails( chartId ) { var request = new Request(); - request.setResponseTypeXML( 'chart' ); - request.setCallbackSuccess( chartReceived ); - request.send( 'getChart.action?id=' + chartId ); + request.setResponseTypeXML('chart'); + request.setCallbackSuccess(chartReceived); + request.send('getChart.action?id=' + chartId); } function chartReceived( xmlObject ) { - setInnerHTML( 'titleField', getElementValue( xmlObject, 'title' ) ); - setInnerHTML( 'dimensionField', getElementValue( xmlObject, 'dimension' ) ); - setInnerHTML( 'indicatorsField', getElementValue( xmlObject, 'indicators' ) ); - setInnerHTML( 'periodsField', getElementValue( xmlObject, 'periods' ) ); - setInnerHTML( 'organisationUnitsField', getElementValue( xmlObject, 'organisationUnits' ) ); - + setInnerHTML('titleField', getElementValue(xmlObject, 'title')); + setInnerHTML('dimensionField', getElementValue(xmlObject, 'dimension')); + setInnerHTML('indicatorsField', getElementValue(xmlObject, 'indicators')); + setInnerHTML('periodsField', getElementValue(xmlObject, 'periods')); + setInnerHTML('organisationUnitsField', getElementValue(xmlObject, 'organisationUnits')); + showDetails(); } @@ -46,74 +47,66 @@ function saveChart() { - if ( validateTargetLine() && validateCollections() ) + if (validateTargetLine() && validateCollections()) { - var url = "validateChart.action?id=" + getFieldValue( "id" ) + "&title=" + getFieldValue( "title" ); + var url = "validateChart.action?id=" + getFieldValue("id") + "&title=" + getFieldValue("title"); var request = new Request(); - request.setResponseTypeXML( 'message' ); - request.setCallbackSuccess( saveChartReceived ); - request.send( url ); + request.setResponseTypeXML('message'); + request.setCallbackSuccess(saveChartReceived); + request.send(url); } } function saveChartReceived( messageElement ) { - var type = messageElement.getAttribute( 'type' ); + var type = messageElement.getAttribute('type'); var message = messageElement.firstChild.nodeValue; - var dimension = document.getElementById( "dimension" ).value; + var dimension = document.getElementById("dimension").value; - if ( type == "input" ) + if (type == "input") { - setMessage( message ); - + setMessage(message); + return false; - } - else if ( type == "success" ) + } else if (type == "success") { - selectAllById( "selectedIndicators" ); - - if ( dimension == "period" || dimension == "indicator") - { - selectAllById( "selectedPeriods" ); - } - else if ( dimension == "organisationUnit" ) - { - selectAllById( "selectedOrganisationUnits" ); - } - - document.getElementById( "chartForm" ).submit(); + $("#selectedIndicators").children().attr("selected", true); + $("#selectedDataElements").children().attr("selected", true); + $("#selectedPeriods").children().attr("selected", true); + $("#selectedOrganisationUnits").children().attr("selected", true); + $('#chartForm').submit(); } } function selectedChartType() { - return $("#type").val(); + return $("#type").val(); } function selectedIndicatorsCount() { - return $("#selectedIndicators option").length; + return $("#selectedIndicators option").length; } function validateTargetLine() { var targetLine = $("#targetLine").attr("checked"); - if( targetLine ) + if (targetLine) { - var targetLineValue = $("#targetLineValue").val(); - - if( targetLineValue.length == 0) + var targetLineValue = $("#targetLineValue").val(); + + if (targetLineValue.length == 0) { - setMessage( i18n_target_line_value_must_be_provided ); + setMessage(i18n_target_line_value_must_be_provided); return false; } - if( isNaN( targetLineValue ) ) + if (isNaN(targetLineValue)) { - setMessage( i18n_target_line_value_must_be_number ); + setMessage(i18n_target_line_value_must_be_number); return false; } @@ -124,24 +117,24 @@ function validateCollections() { - if ( !hasElements( "selectedIndicators" ) ) - { - setMessage( i18n_must_select_at_least_one_indicator ); - - return false; - } - - if ( !hasElements( "selectedOrganisationUnits" ) && !isChecked( "userOrganisationUnit" ) ) - { - setMessage( i18n_must_select_at_least_one_unit ); - - return false; - } - - if ( !hasElements( "selectedPeriods" ) && !relativePeriodsChecked() ) - { - setMessage( i18n_must_select_at_least_one_period ); - + if (!hasElements("selectedIndicators") && !hasElements("selectedDataElements")) + { + setMessage(i18n_must_select_at_least_one_indicator); + + return false; + } + + if (!hasElements("selectedOrganisationUnits") && !isChecked("userOrganisationUnit")) + { + setMessage(i18n_must_select_at_least_one_unit); + + return false; + } + + if (!hasElements("selectedPeriods") && !relativePeriodsChecked()) + { + setMessage(i18n_must_select_at_least_one_period); + return false; } === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/viewChartForm.vm' --- dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/viewChartForm.vm 2011-06-01 11:39:43 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/viewChartForm.vm 2011-06-07 16:12:23 +0000 @@ -25,8 +25,11 @@
- +