=== 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-09-22 09:15:51 +0000 +++ dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/chart/hibernate/Chart.hbm.xml 2011-10-20 11:23:55 +0000 @@ -12,13 +12,13 @@ - + - - - + + + @@ -56,6 +56,13 @@ + + + + + + + @@ -70,12 +77,12 @@ - - - - - - + + + + + + === 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-10-20 09:35:23 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/chart/action/SaveChartAction.java 2011-10-20 11:23:55 +0000 @@ -341,16 +341,16 @@ dataElements.add( dataElementService.getDataElement( id ) ); } + for ( Integer id : getIntegerCollection( selectedDataSets ) ) + { + dataSets.add( dataSetService.getDataSet( id ) ); + } + for ( Integer id : getIntegerCollection( selectedOrganisationUnits ) ) { organisationUnits.add( organisationUnitService.getOrganisationUnit( id ) ); } - for ( Integer id : getIntegerCollection( selectedDataSets ) ) - { - dataSets.add( dataSetService.getDataSet( id ) ); - } - Collections.sort( periods, new AscendingPeriodComparator() ); chart.setTitle( title ); === 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-10-12 17:32:39 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/resources/org/hisp/dhis/reporting/i18n_module.properties 2011-10-20 11:23:55 +0000 @@ -68,6 +68,7 @@ must_select_at_least_one_indictor_data_element_data_set = Please select at least one indicator, data element or data set must_select_at_least_one_indicator = Please select at least one indicator must_select_at_least_one_dataelement = Please select at least one data element +must_select_at_least_one_dataset = Please select at least one dataset must_select_at_least_one_unit= Please select at least one organisation unit must_select_at_least_one_period= Please select at least one period target_line_value_must_be_provided = Target line value must be provided when target lines are enabled. @@ -171,14 +172,19 @@ add_indicator_chart = Add indicator chart period_by_indicator_chart = Period by indicator chart period_by_dataelement_chart = Period by data element chart +period_by_completeness_chart = Period by completeness chart indicator_by_period_chart= Indicator by period chart dataelement_by_period_chart= Data element by period chart +completeness_by_period_chart= Completeness by period chart indicator_by_organisation_unit_chart= Indicator by organisation unit chart dataelement_by_organisation_unit_chart= Data element by organisation unit chart +completeness_by_organisation_unit_chart= Completeness 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_completeness_by_period_chart= Create completeness 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 +create_completeness_by_organisation_unit_chart= Create completeness by organisation unit chart dimension= Dimension category_option_combos= Category Option Combinations hide_legend= Hide legend @@ -200,7 +206,9 @@ 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_available_datasets= Value (Y) - Available datasets value_y_selected_dataelements= Value (Y) - Selected data elements +value_y_selected_datasets= Value (Y) - Selected datasets 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 @@ -314,10 +322,13 @@ 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 +create_period_by_completeness_chart = Create period by completeness 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_selected_datasets = Value (X) - Selected datasets value_x_available_dataelements = Value (X) - Available data elements +value_x_available_datasets = Value (X) - Available datasets category_y_selected_periods = Value (Y) - Selected periods category_y_available_periods = Value (Y) - Available periods get_current_design = Get current design === added file 'dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addChartDataSetModeForm.vm' --- dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addChartDataSetModeForm.vm 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addChartDataSetModeForm.vm 2011-10-20 11:23:55 +0000 @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
$i18n.getString( "category_y_available_periods" )
+ + + +
+ +
+ + + + +
$i18n.getString( "category_y_selected_periods" )
+ +
$i18n.getString( "relative_periods" )
+ +   + +   + +   + +

+ +   + +   + + +
$i18n.getString( "value_x_available_datasets" )
+ +
+ + + + +
$i18n.getString( "value_x_selected_datasets" )
+ + +

+ +
$i18n.getString( "filter_available_organisationunits" ) - $i18n.getString( 'clear' )
+ +
+ +
=== added file 'dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addChartDataSetOrgunitOrPeriodForm.vm' --- dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addChartDataSetOrgunitOrPeriodForm.vm 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addChartDataSetOrgunitOrPeriodForm.vm 2011-10-20 11:23:55 +0000 @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #if ( $dimension == "period_completeness" ) + #parse( "dhis-web-reporting/addChartPeriodModeForm.vm" ) + #else + #parse( "dhis-web-reporting/addChartOrganisationUnitModeForm.vm" ) + #end + + + + + +
$i18n.getString( "value_y_available_datasets" )
+ +
+ + + + +
$i18n.getString( "value_y_selected_datasets" )
+ + +

+ +
+ + === 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-09-07 13:14:46 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addChartForm.vm 2011-10-20 11:23:55 +0000 @@ -20,6 +20,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_dataset = '$encoder.jsEscape( $i18n.getString( "must_select_at_least_one_dataset" ), "'")'; 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" ), "'")'; @@ -31,14 +32,20 @@ $i18n.getString( "create_period_by_indicator_chart" ) #elseif( $dimension == "period_dataElement" ) $i18n.getString( "create_period_by_dataelement_chart" ) + #elseif( $dimension == "period_completeness" ) + $i18n.getString( "create_period_by_completeness_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 == "organisationUnit_completeness" ) + $i18n.getString( "create_completeness_by_organisation_unit_chart" ) #elseif ( $dimension == "indicator" ) $i18n.getString( "create_indicator_by_period_chart" ) #elseif ( $dimension == "dataElement_period" ) $i18n.getString( "create_dataelement_by_period_chart" ) + #elseif ( $dimension == "completeness_period" ) + $i18n.getString( "create_completeness_by_period_chart" ) #end #end @@ -59,7 +66,7 @@ - + @@ -137,26 +144,30 @@ #parse( "dhis-web-reporting/addChartOrgunitOrPeriodForm.vm" ) #elseif( $dimension == "period_dataElement" ) #parse( "dhis-web-reporting/addChartDataElementOrgunitOrPeriodForm.vm" ) +#elseif( $dimension == "period_completeness" ) + #parse( "dhis-web-reporting/addChartDataSetOrgunitOrPeriodForm.vm" ) #elseif ( $dimension == "organisationUnit" ) #parse( "dhis-web-reporting/addChartOrgunitOrPeriodForm.vm" ) #elseif ( $dimension == "organisationUnit_dataElement" ) #parse( "dhis-web-reporting/addChartDataElementOrgunitOrPeriodForm.vm" ) +#elseif ( $dimension == "organisationUnit_completeness" ) + #parse( "dhis-web-reporting/addChartDataSetOrgunitOrPeriodForm.vm" ) #elseif ( $dimension == "indicator" ) #parse( "dhis-web-reporting/addChartIndicatorModeForm.vm" ) #elseif ( $dimension == "dataElement_period" ) #parse( "dhis-web-reporting/addChartDataElementModeForm.vm" ) +#elseif ( $dimension == "completeness_period" ) + #parse( "dhis-web-reporting/addChartDataSetModeForm.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-10-11 14:15:32 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/chart.js 2011-10-20 11:23:55 +0000 @@ -33,75 +33,97 @@ function showChartDetails( chartId ) { - jQuery.post( 'getChart.action', { id: chartId }, function ( json ) { - var indicators = parseInt( json.chart.indicators ); - var dataElements = parseInt( json.chart.dataElements ); - - setInnerHTML( 'titleField', json.chart.title ); - setInnerHTML( 'dimensionField', json.chart.dimension ); - - if ( dataElements === 0 ) - { - $( '#dataElementsView' ).hide(); - $( '#indicatorsView' ).show(); - - $( '#indicatorsField' ).text( indicators ); - } else - { - $( '#dataElementsView' ).show(); - $( '#indicatorsView' ).hide(); - - $( '#dataElementsField' ).text( dataElements ); - } - - setInnerHTML( 'periodsField', json.chart.periods ); - setInnerHTML( 'organisationUnitsField', json.chart.organisationUnits ); - - showDetails(); - }); + jQuery.post( 'getChart.action', { + id : chartId + }, function( json ) + { + var indicators = parseInt( json.chart.indicators ); + var dataElements = parseInt( json.chart.dataElements ); + var dataSets = parseInt( json.chart.dataSets ); + + setInnerHTML( 'titleField', json.chart.title ); + setInnerHTML( 'dimensionField', json.chart.dimension ); + + if ( isIndicatorChart( json.chart.dimension ) ) + { + $( '#dataElementsView' ).hide(); + $( '#dataSetsView' ).hide(); + $( '#indicatorsView' ).show(); + + $( '#indicatorsField' ).text( indicators ); + } + else if ( isDataElementChart( json.chart.dimension ) ) + { + $( '#indicatorsView' ).hide(); + $( '#dataSetsView' ).hide(); + $( '#dataElementsView' ).show(); + + $( '#dataElementsField' ).text( dataElements ); + } + else if ( isCompletenessChart( json.chart.dimension ) ) + { + $( '#indicatorsView' ).hide(); + $( '#dataElementsView' ).hide(); + $( '#dataSetsView' ).show(); + + $( '#dataSetsField' ).text( dataSets ); + } + + setInnerHTML( 'periodsField', json.chart.periods ); + setInnerHTML( 'organisationUnitsField', json.chart.organisationUnits ); + + showDetails(); + } ); } // ----------------------------------------------------------------------------- // Validate and save // ----------------------------------------------------------------------------- - -function saveChart() +function saveChart( dimension ) { - if ( validateTargetLine() && validateCollections() ) + if ( validateTargetLine() && validateCollections( dimension ) ) { - $.postJSON( "validateChart.action", { id:getFieldValue( "id" ), title:getFieldValue( "title" ) }, function( json ) - { - if ( json.response == "input" ) - { - setMessage( json.message ); - return false; - } - else if ( json.response == "success" ) - { - if ( $( "#selectedIndicators" ).attr( 'multiple' ) !== undefined ) - { - $( "#selectedIndicators" ).children().attr( "selected", true ); - } - - if ( $( "#selectedDataElements" ).attr( 'multiple' ) !== undefined ) - { - $( "#selectedDataElements" ).children().attr( "selected", true ); - } - - if ( $( "#selectedPeriods" ).attr( 'multiple' ) !== undefined ) - { - $( "#selectedPeriods" ).children().attr( "selected", true ); - } - - if ( $( "#selectedOrganisationUnits" ).attr( 'multiple' ) !== undefined ) - { - $( "#selectedOrganisationUnits" ).children().attr( "selected", true ); - } - - $( "#chartForm" ).submit(); - } - } ); + $.postJSON( "validateChart.action", { + id : getFieldValue( "id" ), + title : getFieldValue( "title" ) + }, function( json ) + { + if ( json.response == "input" ) + { + setMessage( json.message ); + return false; + } + else if ( json.response == "success" ) + { + if ( $( "#selectedIndicators" ).attr( 'multiple' ) !== undefined ) + { + $( "#selectedIndicators" ).children().attr( "selected", true ); + } + + if ( $( "#selectedDataElements" ).attr( 'multiple' ) !== undefined ) + { + $( "#selectedDataElements" ).children().attr( "selected", true ); + } + + if ( $( "#selectedDataSets" ).attr( 'multiple' ) !== undefined ) + { + $( "#selectedDataSets" ).children().attr( "selected", true ); + } + + if ( $( "#selectedPeriods" ).attr( 'multiple' ) !== undefined ) + { + $( "#selectedPeriods" ).children().attr( "selected", true ); + } + + if ( $( "#selectedOrganisationUnits" ).attr( 'multiple' ) !== undefined ) + { + $( "#selectedOrganisationUnits" ).children().attr( "selected", true ); + } + + $( "#chartForm" ).submit(); + } + } ); } } @@ -141,15 +163,61 @@ return true; } -function validateCollections() -{ - if ( !hasElements( "selectedIndicators" ) && !hasElements( "selectedDataElements" ) ) +function isIndicatorChart( dimension ) +{ + if ( dimension == "period" || dimension == "organisationUnit" || dimension == "indicator" ) + { + return true; + } + + return false; +} + +function isDataElementChart( dimension ) +{ + if ( dimension == "period_dataElement" || dimension == "organisationUnit_dataElement" + || dimension == "dataElement_period" ) + { + return true; + } + + return false; +} + +function isCompletenessChart( dimension ) +{ + if ( dimension == "period_completeness" || dimension == "organisationUnit_completeness" + || dimension == "completeness_period" ) + { + return true; + } + + return false; +} + +function validateCollections( dimension ) +{ + if ( isIndicatorChart( dimension ) && !hasElements( "selectedIndicators" ) ) { setMessage( i18n_must_select_at_least_one_indicator ); return false; } + if ( isDataElementChart( dimension ) && !hasElements( "selectedDataElements" ) ) + { + setMessage( i18n_must_select_at_least_one_dataelement ); + + return false; + } + + if ( isCompletenessChart( dimension ) && !hasElements( "selectedDataSets" ) ) + { + setMessage( i18n_must_select_at_least_one_dataset ); + + return false; + } + if ( !hasElements( "selectedOrganisationUnits" ) && !isChecked( "userOrganisationUnit" ) ) { setMessage( i18n_must_select_at_least_one_unit ); === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/jsonChart.vm' --- dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/jsonChart.vm 2011-09-29 06:40:09 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/jsonChart.vm 2011-10-20 11:23:55 +0000 @@ -5,6 +5,7 @@ "dimension": "$!encoder.jsonEncode( ${chart.dimension} )", "indicators": "$!{chart.indicators.size()}", "dataElements": "$!{chart.dataElements.size()}", + "dataSets": "$!{chart.dataSets.size()}", "periods": "$!{chart.periods.size()}", "organisationUnits": "$!{chart.organisationUnits.size()}" } === 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-14 08:01:50 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/viewChartForm.vm 2011-10-20 11:23:55 +0000 @@ -26,10 +26,16 @@ @@ -72,6 +78,7 @@




+