2
// -----------------------------------------------------------------------------
3
// Recreate ReportTable
4
// -----------------------------------------------------------------------------
6
function reCreateTable( tableId )
8
var url = "reCreateTable.action?id=" + tableId + "&mode=table";
10
if ( document.getElementById( "reportingPeriod" ) != null )
12
url += "&reportingPeriod=" + getListValue( "reportingPeriod" );
15
if ( document.getElementById( "parentOrganisationUnitId" ) != null )
17
url += "&parentOrganisationUnitId=" + getListValue( "parentOrganisationUnitId" );
20
if ( document.getElementById( "organisationUnitId" ) != null )
22
url += "&organisationUnitId=" + getListValue( "organisationUnitId" );
25
var request = new Request();
26
request.setCallbackSuccess( reCreateTableReceived );
30
function reCreateTableReceived( messageElement )
35
function getTableStatus()
37
var url = "getStatus.action";
39
var request = new Request();
40
request.setResponseTypeXML( 'status' );
41
request.setCallbackSuccess( tableStatusReceived );
45
function tableStatusReceived( xmlObject )
47
var statusMessage = getElementValue( xmlObject, 'statusMessage' );
48
var finished = getElementValue( xmlObject, 'finished' );
50
if ( finished == "true" )
52
setMessage( i18n_process_completed );
54
else if ( statusMessage == null )
56
setMessage( i18n_please_wait );
60
setMessage( i18n_please_wait + ". " + statusMessage + "..." );
63
waitAndGetTableStatus( 2000 );
66
function waitAndGetTableStatus( millis )
68
setTimeout( "getTableStatus();", millis );
71
// -----------------------------------------------------------------------------
72
// Create and save ReportTable
73
// -----------------------------------------------------------------------------
75
function createAndSaveTable()
77
if ( validateCollections() )
79
var tableId = document.getElementById( "tableId" ).value;
80
var tableName = document.getElementById( "tableName" ).value;
82
var url = "validateTable.action?id=" + tableId + "&name=" + tableName;
84
var request = new Request();
85
request.setResponseTypeXML( 'message' );
86
request.setCallbackSuccess( createAndSaveTableReceived );
91
function createAndSaveTableReceived( messageElement )
93
var type = messageElement.getAttribute( 'type' );
94
var message = messageElement.firstChild.nodeValue;
96
if ( type == "input" )
98
setMessage( message );
102
else if ( type == "success" )
106
var form = document.getElementById( "tableForm" );
108
form.action = "createTable.action";
114
// -----------------------------------------------------------------------------
116
// -----------------------------------------------------------------------------
120
if ( validateCollections() )
122
var tableId = document.getElementById( "tableId" ).value;
123
var tableName = document.getElementById( "tableName" ).value;
125
var url = "validateTable.action?id=" + tableId + "&name=" + tableName;
127
var request = new Request();
128
request.setResponseTypeXML( 'message' );
129
request.setCallbackSuccess( saveTableReceived );
134
function saveTableReceived( messageElement )
136
var type = messageElement.getAttribute( 'type' );
137
var message = messageElement.firstChild.nodeValue;
139
if ( type == "input" )
141
setMessage( message );
145
else if ( type == "success" )
149
var form = document.getElementById( "tableForm" );
151
form.action = "createTable!save.action";
157
function removeTable( tableId, tableName )
159
var result = window.confirm( i18n_confirm_delete + '\n\n' + tableName );
163
window.location.href = "removeTable.action?id=" + tableId;
167
function selectTableForm()
169
if ( isNotNull( "selectedDataElements" ) )
171
selectAllById( "selectedDataElements" );
174
if ( isNotNull( "selectedIndicators" ) )
176
selectAllById( "selectedIndicators" );
179
if ( isNotNull( "selectedDataSets" ) )
181
selectAllById( "selectedDataSets" );
184
selectAllById( "selectedPeriods" );
185
selectAllById( "selectedOrganisationUnits" );
188
// -----------------------------------------------------------------------------
190
// -----------------------------------------------------------------------------
192
function validateCollections()
194
if ( isChecked( "regression" ) && document.getElementById( "selectedOrganisationUnits" ).options.length > 1 )
196
setMessage( i18n_cannot_include_more_organisation_unit_regression );
201
if ( isChecked( "doIndicators" ) && isChecked( "doPeriods" ) && isChecked( "doOrganisationUnits" ) )
203
setMessage( i18n_cannot_crosstab_all_dimensions );
208
if ( !isChecked( "doIndicators" ) && !isChecked( "doPeriods" ) && !isChecked( "doOrganisationUnits" ) && !isChecked( "doCategoryOptionCombos" ) )
210
setMessage( i18n_cannot_crosstab_no_dimensions );
215
if ( isNotNull( "selectedDataElements" ) && !hasElements( "selectedDataElements" ) )
217
setMessage( i18n_must_select_at_least_one_dataelement );
222
if ( isNotNull( "selectedIndicators" ) && !hasElements( "selectedIndicators" ) )
224
setMessage( i18n_must_select_at_least_one_indicator );
229
if ( !hasElements( "selectedOrganisationUnits" ) && !organisationUnitReportParamsChecked() )
231
setMessage( i18n_must_select_at_least_one_unit );
236
if ( !hasElements( "selectedPeriods" ) && !relativePeriodsChecked() )
238
setMessage( i18n_must_select_at_least_one_period );
246
function relativePeriodsChecked()
248
if ( isChecked( "reportingMonth" ) == true ||
249
isChecked( "last3Months" ) == true ||
250
isChecked( "last6Months" ) == true ||
251
isChecked( "last9Months" ) == true ||
252
isChecked( "last12Months" ) == true ||
253
isChecked( "last3To6Months" ) == true ||
254
isChecked( "last6To9Months" ) == true ||
255
isChecked( "last9To12Months" ) == true ||
256
isChecked( "last12IndividualMonths" ) == true ||
257
isChecked( "soFarThisYear" ) == true ||
258
isChecked( "soFarThisFinancialYear" ) == true ||
259
isChecked( "individualMonthsThisYear" ) == true ||
260
isChecked( "individualQuartersThisYear" ) == true )
268
function organisationUnitReportParamsChecked()
270
if ( isChecked( "paramParentOrganisationUnit" ) == true ||
271
isChecked( "paramOrganisationUnit" ) == true )
279
// -----------------------------------------------------------------------------
281
// -----------------------------------------------------------------------------
283
function showTableDetails( tableId )
285
var request = new Request();
286
request.setResponseTypeXML( 'reportTable' );
287
request.setCallbackSuccess( tableReceived );
288
request.send( 'getTable.action?id=' + tableId );
291
function tableReceived( xmlObject )
293
setFieldValue( 'nameField', getElementValue( xmlObject, 'name' ) );
294
setFieldValue( 'tableNameField', getElementValue( xmlObject, 'tableName' ) );
295
setFieldValue( 'indicatorsField', getElementValue( xmlObject, 'indicators' ) );
296
setFieldValue( 'periodsField', getElementValue( xmlObject, 'periods' ) );
297
setFieldValue( 'unitsField', getElementValue( xmlObject, 'units' ) );
298
setFieldValue( 'doIndicatorsField', parseBool( getElementValue( xmlObject, 'doIndicators' ) ) );
299
setFieldValue( 'doPeriodsField', parseBool( getElementValue( xmlObject, 'doPeriods' ) ) );
300
setFieldValue( 'doUnitsField', parseBool( getElementValue( xmlObject, 'doUnits' ) ) );
305
function parseBool( bool )
307
return ( bool == "true" ) ? i18n_yes : i18n_no;
310
// -----------------------------------------------------------------------------
312
// -----------------------------------------------------------------------------
314
function toggleRegression()
316
if ( document.getElementById( "regression" ).checked )
318
check( "doIndicators" );
319
uncheck( "doOrganisationUnits" );
320
uncheck( "doPeriods" );
321
uncheck( "doCategoryOptionCombos" );
323
disable( "doOrganisationUnits" );
324
disable( "doPeriods" );
325
disable( "doCategoryOptionCombos" );
329
enable( "doOrganisationUnits" );
330
enable( "doPeriods" );
331
enable( "doCategoryOptionCombos" );