2
// -----------------------------------------------------------------------------
4
// -----------------------------------------------------------------------------
6
function showDataElementGroupDetails( dataElementGroupId )
8
var request = new Request();
9
request.setResponseTypeXML( 'dataElementGroup' );
10
request.setCallbackSuccess( dataElementGroupReceived );
11
request.send( 'getDataElementGroup.action?id=' + dataElementGroupId );
14
function dataElementGroupReceived( dataElementGroupElement )
16
setFieldValue( 'nameField', getElementValue( dataElementGroupElement, 'name' ) );
17
setFieldValue( 'memberCountField', getElementValue( dataElementGroupElement, 'memberCount' ) );
22
// -----------------------------------------------------------------------------
23
// Remove data element group
24
// -----------------------------------------------------------------------------
26
function removeDataElementGroup( dataElementGroupId, dataElementGroupName )
28
var result = window.confirm( i18n_confirm_delete + '\n\n' + dataElementGroupName );
32
window.location.href = 'removeDataElementGroup.action?id=' + dataElementGroupId;
36
// -----------------------------------------------------------------------------
37
// Add data element group
38
// -----------------------------------------------------------------------------
40
function validateAddDataElementGroup()
42
var request = new Request();
43
request.setResponseTypeXML( 'message' );
44
request.setCallbackSuccess( addValidationCompleted );
45
request.send( 'validateDataElementGroup.action?name=' + getFieldValue( 'name' ) );
50
function addValidationCompleted( messageElement )
52
var type = messageElement.getAttribute( 'type' );
53
var message = messageElement.firstChild.nodeValue;
55
if ( type == 'success' )
57
var availableDataElements = document.getElementById( 'availableDataElements' );
58
availableDataElements.selectedIndex = -1;
60
var groupMembers = document.getElementById( 'groupMembers' );
61
for ( var i = 0; i < groupMembers.options.length; ++i )
63
groupMembers.options[i].selected = true;
66
var form = document.getElementById( 'addDataElementGroupForm' );
69
else if ( type == 'error' )
71
window.alert( i18n_adding_data_element_group_failed + ':' + '\n' + message );
73
else if ( type == 'input' )
75
document.getElementById( 'message' ).innerHTML = message;
76
document.getElementById( 'message' ).style.display = 'block';
80
// -----------------------------------------------------------------------------
81
// Update data element group
82
// -----------------------------------------------------------------------------
84
function validateUpdateDataElementGroup()
86
var request = new Request();
87
request.setResponseTypeXML( 'message' );
88
request.setCallbackSuccess( updateValidationCompleted );
89
request.send( 'validateDataElementGroup.action?id=' + getFieldValue( 'id' ) +
90
'&name=' + getFieldValue( 'name' ) );
95
function updateValidationCompleted( messageElement )
97
var type = messageElement.getAttribute( 'type' );
98
var message = messageElement.firstChild.nodeValue;
100
if ( type == 'success' )
102
var availableDataElements = document.getElementById( 'availableDataElements' );
103
availableDataElements.selectedIndex = -1;
105
var groupMembers = document.getElementById( 'groupMembers' );
106
for ( var i = 0; i < groupMembers.options.length; ++i )
108
groupMembers.options[i].selected = true;
111
var form = document.getElementById( 'updateDataElementGroupForm' );
114
else if ( type == 'error' )
116
window.alert( i18n_saving_data_element_group_failed + ':' + '\n' + message );
118
else if ( type == 'input' )
120
document.getElementById( 'message' ).innerHTML = message;
121
document.getElementById( 'message' ).style.display = 'block';
125
// -----------------------------------------------------------------------------
127
// -----------------------------------------------------------------------------
131
var list = document.getElementById( 'groupMembers' );
134
for ( id in groupMembers )
136
list.add( new Option( groupMembers[id], id ), null );
139
list = document.getElementById( 'availableDataElements' );
141
for ( id in availableDataElements )
143
list.add( new Option( availableDataElements[id], id ), null );
147
function filterGroupMembers()
149
var filter = document.getElementById( 'groupMembersFilter' ).value;
150
var list = document.getElementById( 'groupMembers' );
152
list.options.length = 0;
154
for ( var id in groupMembers )
156
var value = groupMembers[id];
158
if ( value.toLowerCase().indexOf( filter.toLowerCase() ) != -1 )
160
list.add( new Option( value, id ), null );
165
function filterAvailableDataElements()
167
var filter = document.getElementById( 'availableDataElementsFilter' ).value;
168
var list = document.getElementById( 'availableDataElements' );
170
list.options.length = 0;
172
for ( var id in availableDataElements )
174
var value = availableDataElements[id];
176
if ( value.toLowerCase().indexOf( filter.toLowerCase() ) != -1 )
178
list.add( new Option( value, id ), null );
183
function addGroupMembers()
185
var list = document.getElementById( 'availableDataElements' );
187
while ( list.selectedIndex != -1 )
189
var id = list.options[list.selectedIndex].value;
191
list.options[list.selectedIndex].selected = false;
193
groupMembers[id] = availableDataElements[id];
195
delete availableDataElements[id];
198
filterGroupMembers();
199
filterAvailableDataElements();
202
function removeGroupMembers()
204
var list = document.getElementById( 'groupMembers' );
206
while ( list.selectedIndex != -1 )
208
var id = list.options[list.selectedIndex].value;
210
list.options[list.selectedIndex].selected = false;
212
//availableDataElements[id] = groupMembers[id];
214
delete groupMembers[id];
217
filterGroupMembers();
218
filterAvailableDataElements();
221
// -----------------------------------------------------------------------------
222
// New data element group
223
// -----------------------------------------------------------------------------
225
function initAllList()
227
var list = document.getElementById( 'dataElementGroups' );
230
for ( id in dataElementGroups )
232
list.add( new Option( dataElementGroups[id], id ), null );
235
list = document.getElementById( 'availableDataElements' );
237
for ( id in availableDataElements )
239
list.add( new Option( availableDataElements[id], id ), null );
242
if(list.selectedIndex==-1){
243
list.disabled = true;
247
function addSelectDataElements()
249
var list = document.getElementById( 'availableDataElements' );
251
while ( list.selectedIndex != -1 )
253
var id = list.options[list.selectedIndex].value;
255
list.options[list.selectedIndex].selected = false;
257
selectedDataElements[id] = availableDataElements[id];
260
filterSelectedDataElements();
261
filterAvailableDataElements();
264
function removeSelectedDataElements()
266
var list = document.getElementById( 'selectedDataElements' );
268
while ( list.selectedIndex != -1 )
270
var id = list.options[list.selectedIndex].value;
272
list.options[list.selectedIndex].selected = false;
274
//availableDataElements[id] = selectedDataElements[id];
276
delete selectedDataElements[id];
279
filterSelectedDataElements();
280
filterAvailableDataElements();
283
function filterDataElementGroups()
285
var filter = document.getElementById( 'dataElementGroupsFilter' ).value;
286
var list = document.getElementById( 'dataElementGroups' );
288
list.options.length = 0;
290
for ( var id in dataElementGroups )
292
var value = dataElementGroups[id];
294
if ( value.toLowerCase().indexOf( filter.toLowerCase() ) != -1 )
296
list.add( new Option( value, id ), null );
301
function filterSelectedDataElements()
303
var filter = document.getElementById( 'selecteDataElementsFilter' ).value;
304
var list = document.getElementById( 'selectedDataElements' );
306
list.options.length = 0;
308
for ( var id in selectedDataElements )
310
var value = selectedDataElements[id];
312
if ( value.toLowerCase().indexOf( filter.toLowerCase() ) != -1 )
314
list.add( new Option( value, id ), null );
320
function getDataElementGroup( dataElementGroupList )
322
selectedDataElements = new Object();
323
var id = dataElementGroupList.options[ dataElementGroupList.selectedIndex ].value;
324
var request = new Request();
325
request.setResponseTypeXML( 'xmlObject' );
326
request.setCallbackSuccess( getDataElementGroupCompleted );
327
request.send( 'getDataElementGroupEditor.action?id=' + id );
330
function getDataElementGroupCompleted( xmlObject )
332
var selectedList = document.getElementById( 'selectedDataElements' );
333
selectedList.length = 0;
334
name = xmlObject.getElementsByTagName('name')[0].firstChild.nodeValue;
335
var dataElementList = xmlObject.getElementsByTagName('dataElement');
336
for ( var i = 0; i < dataElementList.length; i++ )
338
dataElement = dataElementList.item(i);
339
var id = dataElement.getAttribute('id');
340
var value = dataElement.firstChild.nodeValue;
341
selectedDataElements[id] = value;
343
filterSelectedDataElements();
344
document.getElementById( 'groupNameView').innerHTML = i18n_member_of + " <b>" + name + "</b>";
345
document.getElementById('availableDataElements').disabled=false;
349
function updateDataElementGroupMembers(){
350
var dataElementGroupsSelect = document.getElementById( 'dataElementGroups' );
351
var id = dataElementGroupsSelect.options[ dataElementGroupsSelect.selectedIndex ].value;
353
var request = new Request();
355
var requestString = 'updateDataElementGroupEditor.action';
357
var params = "id=" + id;
359
var selectedDataElementMembers = document.getElementById( 'selectedDataElements' );
361
for ( var i = 0; i < selectedDataElementMembers.options.length; ++i)
363
params += '&selectedDataElements=' + selectedDataElementMembers.options[i].value;
365
request.sendAsPost( params );
366
request.setResponseTypeXML( 'xmlObject' );
367
request.setCallbackSuccess( updateDataElementGroupMembersReceived );
368
request.send( requestString );
371
function updateDataElementGroupMembersReceived( xmlObject )
373
dataElementGroupsSelect = document.getElementById( 'dataElementGroups' );
374
document.getElementById('message').style.display='block';
375
document.getElementById('message').innerHTML = i18n_update_success + " : " + dataElementGroupsSelect.options[ dataElementGroupsSelect.selectedIndex ].text;
379
function deleteDataElementGroup()
381
var dataElementGroupsSelect = document.getElementById( 'dataElementGroups' );
384
var id = dataElementGroupsSelect.options[ dataElementGroupsSelect.selectedIndex ].value;
385
var name = dataElementGroupsSelect.options[ dataElementGroupsSelect.selectedIndex ].text;
386
if( window.confirm( i18n_confirm_delete + '\n\n' + name ) )
388
var request = new Request();
389
request.setResponseTypeXML( 'xmlObject' );
390
request.setCallbackSuccess( deleteDataElementGroupReceived );
391
request.send( 'deleteDataElemenGroupEditor.action?id=' + id );
396
alert( i18n_select_dataelement_group );
400
function deleteDataElementGroupReceived( xmlObject )
402
var type = xmlObject.getAttribute( 'type' );
405
var dataElementGroupsSelect = document.getElementById( 'dataElementGroups' );
406
dataElementGroupsSelect.remove( dataElementGroupsSelect.selectedIndex );
407
document.getElementById( 'groupNameView' ).innerHTML = "";
408
selectedDataElements = new Object();
409
filterSelectedDataElements();
413
function showRenameDataElementGroupForm()
415
var dataElementGroupsSelect = document.getElementById( 'dataElementGroups' );
419
var name = dataElementGroupsSelect.options[ dataElementGroupsSelect.selectedIndex ].text;
420
document.getElementById( 'addRenameGroupButton' ).onclick=validateRenameDataElementGroup;
421
showDivCenter( 'addDataElementGroupForm' );
423
document.getElementById( 'groupName' ).value = name;
427
alert(i18n_select_dataelement_group);
432
function validateRenameDataElementGroup()
434
var dataElementGroupsSelect = document.getElementById( 'dataElementGroups' );
435
var id = dataElementGroupsSelect.options[ dataElementGroupsSelect.selectedIndex ].value;
436
var name = document.getElementById( 'groupName' ).value;
437
var request = new Request();
438
request.setResponseTypeXML( 'xmlObject' );
439
request.setCallbackSuccess( validateRenameDataElementGroupReceived );
440
request.send( 'validateDataElementGroup.action?id=' + id + '&name=' + name );
443
function validateRenameDataElementGroupReceived( xmlObject )
445
var type = xmlObject.getAttribute( 'type' );
448
alert(xmlObject.firstChild.nodeValue);
452
renameDataElementGroup();
456
function renameDataElementGroup()
458
var dataElementGroupsSelect = document.getElementById( 'dataElementGroups' );
459
var id = dataElementGroupsSelect.options[ dataElementGroupsSelect.selectedIndex ].value;
460
var name = document.getElementById( 'groupName' ).value;
461
var request = new Request();
462
request.setResponseTypeXML( 'xmlObject' );
463
request.setCallbackSuccess( renameDataElementGroupReceived );
464
request.send( 'renameDataElementGroupEditor.action?id=' + id + '&name=' + name );
468
function renameDataElementGroupReceived( xmlObject ){
469
var name = xmlObject.getElementsByTagName( "name" )[0].firstChild.nodeValue;
470
var list = document.getElementById( 'dataElementGroups' );
471
list.options[ list.selectedIndex ].text = name;
472
document.getElementById( 'groupNameView' ).innerHTML = name;
473
showHideDiv( 'addDataElementGroupForm' );
477
function showAddDataElementGroupForm()
479
document.getElementById( 'groupName' ).value='';
480
document.getElementById( 'addRenameGroupButton' ).onclick=validateAddDataElementGroup;
481
showDivCenter( 'addDataElementGroupForm' );
485
function validateAddDataElementGroup()
487
var name = document.getElementById( 'groupName' ).value;
488
var request = new Request();
489
request.setResponseTypeXML( 'xmlObject' );
490
request.setCallbackSuccess( validateAddDataElementGroupReceived );
491
request.send( 'validateDataElementGroup.action?name=' + name );
494
function validateAddDataElementGroupReceived( xmlObject )
496
var type = xmlObject.getAttribute( 'type' );
499
alert(xmlObject.firstChild.nodeValue);
507
function createNewGroup()
509
var name = document.getElementById( 'groupName' ).value;
510
var request = new Request();
511
request.setResponseTypeXML( 'xmlObject' );
512
request.setCallbackSuccess( createNewGroupReceived );
513
request.send( 'addDataElementGroupEditor.action?name=' + name );
516
function createNewGroupReceived( xmlObject ){
517
var id = xmlObject.getElementsByTagName( "id" )[0].firstChild.nodeValue;
518
var name = xmlObject.getElementsByTagName( "name" )[0].firstChild.nodeValue;
519
var list = document.getElementById( 'dataElementGroups' );
520
var option = new Option( name, id );
521
option.selected = true;
522
list.add(option , null );
523
document.getElementById( 'groupNameView' ).innerHTML = name;
524
selectedDataElements = new Object();
525
filterSelectedDataElements();
526
showHideDiv( 'addDataElementGroupForm' );