~mortenoh/+junk/dhis2-detailed-import-export

« back to all changes in this revision

Viewing changes to dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/javascript/dataSet.js

  • Committer: larshelge at gmail
  • Date: 2009-03-03 16:46:36 UTC
  • Revision ID: larshelge@gmail.com-20090303164636-2sjlrquo7ib1gf7r
Initial check-in

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
// -----------------------------------------------------------------------------
 
3
// DataSet details form
 
4
// -----------------------------------------------------------------------------
 
5
 
 
6
function showDataSetDetails( dataSetId )
 
7
{
 
8
  var request = new Request();
 
9
  request.setResponseTypeXML( 'dataSet' );
 
10
  request.setCallbackSuccess( dataSetRecieved );
 
11
  request.send( 'getDataSet.action?dataSetId=' + dataSetId );
 
12
}
 
13
 
 
14
function dataSetRecieved( dataSetElement )
 
15
{
 
16
  setFieldValue( 'idField', getElementValue( dataSetElement, 'id' ) );
 
17
  setFieldValue( 'nameField', getElementValue( dataSetElement, 'name' ) );
 
18
 
 
19
  setFieldValue( 'frequencyField', getElementValue( dataSetElement, 'frequency' ) );
 
20
 
 
21
  setFieldValue( 'dataElementCountField', getElementValue( dataSetElement, 'dataElementCount' ) );
 
22
 
 
23
  setFieldValue( 'dataEntryFormField', getElementValue( dataSetElement, 'dataentryform' ) );
 
24
 
 
25
  showDetails();
 
26
}
 
27
 
 
28
// -----------------------------------------------------------------------------
 
29
// Delete DataSet
 
30
// -----------------------------------------------------------------------------
 
31
 
 
32
var tmpDataSetId;
 
33
 
 
34
var tmpSource;
 
35
 
 
36
function removeDataSet( dataSetId, dataSetName )
 
37
{
 
38
  var result = window.confirm( i18n_confirm_delete + '\n\n' + dataSetName );
 
39
 
 
40
  if ( result )
 
41
  {
 
42
    window.location.href = 'delDataSet.action?dataSetId=' + dataSetId;
 
43
  }
 
44
}
 
45
 
 
46
// ----------------------------------------------------------------------
 
47
// DataEntryForm
 
48
// ----------------------------------------------------------------------
 
49
 
 
50
function viewDataEntryForm( dataSetId )
 
51
{
 
52
  window.location.href = 'viewDataEntryForm.action?dataSetId=' + dataSetId;
 
53
}
 
54
 
 
55
// ----------------------------------------------------------------------
 
56
// Filter by DataElementGroup
 
57
// ----------------------------------------------------------------------
 
58
 
 
59
function filterByDataElementGroup( selectedDataElementGroup )
 
60
{
 
61
  var request = new Request();
 
62
 
 
63
  var requestString = 'filterAvailableDataElementsByDataElementGroup.action';
 
64
  
 
65
  var params = 'dataElementGroupId=' + selectedDataElementGroup;
 
66
 
 
67
  var selectedList = document.getElementById( 'selectedList' );
 
68
 
 
69
  for ( var i = 0; i < selectedList.options.length; ++i)
 
70
  {
 
71
        params += '&selectedDataElements=' + selectedList.options[i].value;
 
72
  }
 
73
 
 
74
  // Clear the list
 
75
  var availableList = document.getElementById( 'availableList' );
 
76
 
 
77
  availableList.options.length = 0;
 
78
 
 
79
  request.setResponseTypeXML( 'dataElementGroup' );
 
80
  request.setCallbackSuccess( filterByDataElementGroupCompleted );
 
81
  request.sendAsPost( params );
 
82
  request.send( requestString );
 
83
}
 
84
 
 
85
function filterByDataElementGroupCompleted( dataElementGroup )
 
86
{
 
87
  var dataElements = dataElementGroup.getElementsByTagName( 'dataElements' )[0];
 
88
  var dataElementList = dataElements.getElementsByTagName( 'dataElement' );
 
89
 
 
90
  var availableList = document.getElementById( 'availableList' );
 
91
  
 
92
  for ( var i = 0; i < dataElementList.length; i++ )
 
93
  {
 
94
    var dataElement = dataElementList[i];
 
95
    var name = dataElement.firstChild.nodeValue;
 
96
    var id = dataElement.getAttribute( 'id' );
 
97
 
 
98
    availableList.add( new Option( name, id ), null );
 
99
  }
 
100
}
 
101
 
 
102
// ----------------------------------------------------------------------
 
103
// Validation
 
104
// ----------------------------------------------------------------------
 
105
 
 
106
function validateAddDataSet()
 
107
{
 
108
  var request = new Request();
 
109
  request.setResponseTypeXML( 'message' );
 
110
  request.setCallbackSuccess( addDataSetValidationCompleted ); 
 
111
  
 
112
  var requestString = 'validateDataSet.action?name=' + document.getElementById( 'name' ).value +
 
113
                      '&shortName=' + document.getElementById( 'shortName' ).value +
 
114
                      '&code=' + document.getElementById( 'code' ).value;
 
115
 
 
116
  request.send( requestString );
 
117
 
 
118
  return false;
 
119
}
 
120
 
 
121
function addDataSetValidationCompleted( messageElement )
 
122
{
 
123
  var type = messageElement.getAttribute( 'type' );
 
124
  var message = messageElement.firstChild.nodeValue;
 
125
 
 
126
  if ( type == 'success' )
 
127
  {
 
128
      // Both edit and add form has id='dataSetForm'      
 
129
      document.forms['addDataSetForm'].submit();
 
130
  }
 
131
  /**
 
132
  else if ( type == 'error' )
 
133
  {
 
134
      window.alert( 'Adding the organisation unit failed with the following message:\n' + message );
 
135
  }
 
136
  */
 
137
  else if ( type == 'input' )
 
138
  {
 
139
    document.getElementById( 'message' ).innerHTML = message;
 
140
    document.getElementById( 'message' ).style.display = 'block';
 
141
  }
 
142
}
 
143
 
 
144
function validateEditDataSet()
 
145
{
 
146
  var request = new Request();
 
147
  request.setResponseTypeXML( 'message' );
 
148
  request.setCallbackSuccess( editDataSetValidationCompleted );
 
149
 
 
150
  var requestString = 'validateDataSet.action?name=' + document.getElementById( 'name' ).value +
 
151
                      '&shortName=' + document.getElementById( 'shortName' ).value +
 
152
                      '&code=' + document.getElementById( 'code' ).value +
 
153
                              '&dataSetId=' + document.getElementById( 'dataSetId' ).value;
 
154
 
 
155
  request.send( requestString );
 
156
 
 
157
  return false;
 
158
}
 
159
 
 
160
function editDataSetValidationCompleted( messageElement )
 
161
{
 
162
  var type = messageElement.getAttribute( 'type' );
 
163
  var message = messageElement.firstChild.nodeValue;
 
164
 
 
165
  if ( type == 'success' )
 
166
  {
 
167
      // Both edit and add form has id='dataSetForm'
 
168
      document.forms['editDataSetForm'].submit();
 
169
  }
 
170
  /**
 
171
  else if ( type == 'error' )
 
172
  {
 
173
      window.alert( 'Adding the organisation unit failed with the following message:\n' + message );
 
174
  }
 
175
  */
 
176
  else if ( type == 'input' )
 
177
  {
 
178
    document.getElementById( 'message' ).innerHTML = message;
 
179
    document.getElementById( 'message' ).style.display = 'block';
 
180
  }
 
181
}
 
182
 
 
183
// ----------------------------------------------------------------------
 
184
// List
 
185
// ----------------------------------------------------------------------
 
186
 
 
187
function initLists()
 
188
{
 
189
    var id;
 
190
        
 
191
        var list = document.getElementById( 'selectedList' );
 
192
        
 
193
    for ( id in dataSetMembers )
 
194
    {
 
195
        list.add( new Option( dataSetMembers[id], id ), null );
 
196
    }   
 
197
        
 
198
    list = document.getElementById( 'availableList' );
 
199
    
 
200
    for ( id in availableDataElements )
 
201
    {
 
202
        list.add( new Option( availableDataElements[id], id ), null );
 
203
    }
 
204
}
 
205
 
 
206
function filterDataSetMembers()
 
207
{
 
208
        var filter = document.getElementById( 'dataSetMembersFilter' ).value;
 
209
    var list = document.getElementById( 'selectedList' );
 
210
    
 
211
    list.options.length = 0;
 
212
    
 
213
    for ( var id in dataSetMembers )
 
214
    {
 
215
        var value = dataSetMembers[id];
 
216
        
 
217
        value = value.toLowerCase();
 
218
                filter = filter.toLowerCase();
 
219
        
 
220
        if ( value.indexOf( filter ) != -1 )
 
221
        {
 
222
            list.add( new Option( value, id ), null );
 
223
        }
 
224
    }
 
225
}
 
226
 
 
227
function filterAvailableDataElements()
 
228
{
 
229
        var filter = document.getElementById( 'availableDataElementsFilter' ).value;
 
230
    var list = document.getElementById( 'availableList' );
 
231
    
 
232
    list.options.length = 0;
 
233
    
 
234
    for ( var id in availableDataElements )
 
235
    {
 
236
        var value = availableDataElements[id];
 
237
        
 
238
        value = value.toLowerCase();
 
239
                filter = filter.toLowerCase();
 
240
        
 
241
        if ( value.indexOf( filter ) != -1 )
 
242
        {
 
243
            list.add( new Option( value, id ), null );
 
244
        }
 
245
    }
 
246
}
 
247
 
 
248
function addDataSetMembers()
 
249
{
 
250
        var list = document.getElementById( 'availableList' );
 
251
 
 
252
    while ( list.selectedIndex != -1 )
 
253
    {
 
254
        var id = list.options[list.selectedIndex].value;
 
255
 
 
256
        list.options[list.selectedIndex].selected = false;
 
257
 
 
258
        dataSetMembers[id] = availableDataElements[id];
 
259
        
 
260
        delete availableDataElements[id];        
 
261
    }
 
262
    
 
263
    filterDataSetMembers();
 
264
    filterAvailableDataElements();
 
265
}
 
266
 
 
267
function removeDataSetMembers()
 
268
{
 
269
        var list = document.getElementById( 'selectedList' );
 
270
 
 
271
    while ( list.selectedIndex != -1 )
 
272
    {
 
273
        var id = list.options[list.selectedIndex].value;
 
274
 
 
275
        list.options[list.selectedIndex].selected = false;
 
276
 
 
277
        availableDataElements[id] = dataSetMembers[id];
 
278
        
 
279
        delete dataSetMembers[id];        
 
280
    }
 
281
    
 
282
    filterDataSetMembers();
 
283
    filterAvailableDataElements();
 
284
}