=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsTableService.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsTableService.java 2013-03-05 22:03:40 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsTableService.java 2013-04-22 08:10:07 +0000 @@ -38,4 +38,9 @@ * @param taskId the TaskId. */ void update( boolean last3Years, TaskId id ); + + /** + * Drops analytics and and temporary analytics tables between 1900 and 2100. + */ + void dropTables(); } === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/AbstractJdbcTableManager.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/AbstractJdbcTableManager.java 2013-03-24 18:40:42 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/AbstractJdbcTableManager.java 2013-04-22 08:10:07 +0000 @@ -55,8 +55,6 @@ public static final String PREFIX_ORGUNITLEVEL = "uidlevel"; public static final String PREFIX_INDEX = "in_"; - private static final String TABLE_TEMP_SUFFIX = "_temp"; - @Autowired protected OrganisationUnitService organisationUnitService; === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/DefaultAnalyticsTableService.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/DefaultAnalyticsTableService.java 2013-04-03 17:22:34 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/DefaultAnalyticsTableService.java 2013-04-22 08:10:07 +0000 @@ -93,7 +93,7 @@ final Date earliest = last3YearsOnly ? threeYrsAgo : tableManager.getEarliestData(); final Date latest = tableManager.getLatestData(); final String tableName = tableManager.getTableName(); - final List tables = PartitionUtils.getTempTableNames( earliest, latest, tableName ); + final List tables = PartitionUtils.getTempTableNames( earliest, latest, tableName ); clock.logTime( "Partition tables: " + tables + ", earliest: " + earliest + ", latest: " + latest + ", last 3 years: " + last3YearsOnly ); @@ -135,6 +135,20 @@ notifier.notify( taskId, "Table update done" ); } + public void dropTables() + { + List tempTables = PartitionUtils.getTempTableNames( + new Cal().set( 1900, 1, 1 ).time(), new Cal().set( 2100, 1, 1 ).time(), tableManager.getTableName() ); + + for ( String tempTable : tempTables ) + { + String realTable = tempTable.replaceFirst( AnalyticsTableManager.TABLE_TEMP_SUFFIX, "" ); + + tableManager.dropTable( tempTable ); + tableManager.dropTable( realTable ); + } + } + // ------------------------------------------------------------------------- // Supportive methods // ------------------------------------------------------------------------- @@ -251,14 +265,6 @@ } } - protected void dropTables( List tables ) - { - for ( String table : tables ) - { - tableManager.dropTable( table ); - } - } - private int getProcessNo() { int cores = SystemUtils.getCpuCores(); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/maintenance/PerformMaintenanceAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/maintenance/PerformMaintenanceAction.java 2013-01-23 11:54:42 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/maintenance/PerformMaintenanceAction.java 2013-04-22 08:10:07 +0000 @@ -27,10 +27,13 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import javax.annotation.Resource; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hisp.dhis.aggregation.AggregatedDataValueService; import org.hisp.dhis.aggregation.AggregatedOrgUnitDataValueService; +import org.hisp.dhis.analytics.AnalyticsTableService; import org.hisp.dhis.common.DeleteNotAllowedException; import org.hisp.dhis.completeness.DataSetCompletenessService; import org.hisp.dhis.datamart.DataMartManager; @@ -53,6 +56,15 @@ // ------------------------------------------------------------------------- // Dependencies // ------------------------------------------------------------------------- + + @Resource(name="org.hisp.dhis.analytics.AnalyticsTableService") + private AnalyticsTableService analyticsTableService; + + @Resource(name="org.hisp.dhis.analytics.CompletenessTableService") + private AnalyticsTableService completenessTableService; + + @Resource(name="org.hisp.dhis.analytics.CompletenessTargetTableService") + private AnalyticsTableService completenessTargetTableService; private MaintenanceService maintenanceService; @@ -107,6 +119,13 @@ // Input // ------------------------------------------------------------------------- + private boolean clearAnalytics; + + public void setClearAnalytics( boolean clearAnalytics ) + { + this.clearAnalytics = clearAnalytics; + } + private boolean clearDataMart; public void setClearDataMart( boolean clearDataMart ) @@ -149,6 +168,13 @@ public String execute() throws Exception { + if ( clearAnalytics ) + { + analyticsTableService.dropTables(); + completenessTableService.dropTables(); + completenessTargetTableService.dropTables(); + } + if ( clearDataMart ) { aggregatedDataValueService.deleteAggregatedDataValues(); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties 2013-03-04 20:41:25 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties 2013-04-22 08:10:07 +0000 @@ -318,4 +318,5 @@ removing_min_max_values=Removing min-max values generating_min_max_values=Generating min-max values done=Done -period_structure=Period structure \ No newline at end of file +period_structure=Period structure +clear_analytics_tables=Clear analytics tables \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/javascript/maintenance.js' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/javascript/maintenance.js 2012-02-24 08:44:29 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/javascript/maintenance.js 2013-04-22 08:10:07 +0000 @@ -1,17 +1,19 @@ function performMaintenance() { + var clearAnalytics = document.getElementById( "clearAnalytics" ).checked; var clearDataMart = document.getElementById( "clearDataMart" ).checked; var dataMartIndex = document.getElementById( "dataMartIndex" ).checked; var zeroValues = document.getElementById( "zeroValues" ).checked; var dataSetCompleteness = document.getElementById( "dataSetCompleteness" ).checked; var prunePeriods = document.getElementById( "prunePeriods" ).checked; - if ( clearDataMart || dataMartIndex || zeroValues || dataSetCompleteness || prunePeriods ) + if ( clearAnalytics || clearDataMart || dataMartIndex || zeroValues || dataSetCompleteness || prunePeriods ) { setWaitMessage( i18n_performing_maintenance ); - var params = "clearDataMart=" + clearDataMart + + var params = "clearAnalytics=" + clearAnalytics + + "&clearDataMart=" + clearDataMart + "&dataMartIndex=" + dataMartIndex + "&zeroValues=" + zeroValues + "&dataSetCompleteness=" + dataSetCompleteness + === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/maintenanceForm.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/maintenanceForm.vm 2012-07-30 16:39:28 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/maintenanceForm.vm 2013-04-22 08:10:07 +0000 @@ -13,6 +13,11 @@

$i18n.getString( "maintenance" ) #openHelp( "maintenance" )

+ + +

+ +