3
3
// ========================================================================================================================
5
// ========================================================================================================================
6
// Open Add Excel item form
7
// ========================================================================================================================
9
function openAddExcelItem()
11
byId( "okButton" ).onclick = validateAddExcelItem;
13
$( "#divExcelitem" ).showAtCenter( true );
16
// ========================================================================================================================
17
// Open Update Excel item form
18
// ========================================================================================================================
20
function openUpdateExcelItem( id )
22
var request = new Request();
23
request.setResponseTypeXML( 'excelItem' );
24
request.setCallbackSuccess( openUpdateExcelItemReceived );
25
request.send( "getExcelItem.action?id=" + id );
28
function openUpdateExcelItemReceived( xmlObject )
31
byId("id").value = xmlObject.getElementsByTagName('id')[0].firstChild.nodeValue;
32
byId("name").value = xmlObject.getElementsByTagName('name')[0].firstChild.nodeValue;
33
byId("expression").value = xmlObject.getElementsByTagName('expression')[0].firstChild.nodeValue;
34
byId("row").value = xmlObject.getElementsByTagName('row')[0].firstChild.nodeValue;
35
byId("column").value = xmlObject.getElementsByTagName('column')[0].firstChild.nodeValue;
36
byId("sheetNo").value = xmlObject.getElementsByTagName('sheetNo')[0].firstChild.nodeValue;
37
byId( "okButton" ).onclick = validateUpdateExcelItem;
39
$("#divExcelitem").showAtCenter( true );
43
// ========================================================================================================================
44
// Validate Add Excel item
45
// ========================================================================================================================
47
function validateAddExcelItem()
50
var request = new Request();
51
request.setResponseTypeXML( 'message' );
52
request.setCallbackSuccess( validateAddExcelItemReceived );
54
var params = "name=" + byId("name").value;
55
params += "&expression=" + byId("expression").value;
56
params += "&row=" + byId("row").value;
57
params += "&column=" + byId("column").value;
58
params += "&sheetNo=" + byId("sheetNo").value;
59
params += "&excelItemGroupId=" + byId( "excelItemGroupId" ).value;
61
request.sendAsPost( params );
62
request.send( "validateExcelItem.action" );
66
function validateAddExcelItemReceived( message )
68
var type = message.getAttribute( 'type' );
70
if ( type == 'error' )
72
setMessage(message.firstChild.nodeValue);
74
else if ( type == 'success' )
79
// ========================================================================================================================
80
// Validate Update Excel item
81
// ========================================================================================================================
83
function validateUpdateExcelItem()
85
var request = new Request();
86
request.setResponseTypeXML( 'message' );
87
request.setCallbackSuccess( validateUpdateExcelItemReceived );
89
var params = "name=" + byId("name").value;
90
params += "&expression=" + byId("expression").value;
91
params += "&row=" + byId("row").value;
92
params += "&column=" + byId("column").value;
93
params += "&sheetNo=" + byId("sheetNo").value;
94
params += "&excelItemGroupId=" + byId( "excelItemGroupId" ).value;
95
params += "&id=" + byId( "id" ).value;
97
request.sendAsPost( params );
99
request.send( "validateExcelItem.action" );
103
function validateUpdateExcelItemReceived( xmlObject )
106
var type = xmlObject.getAttribute( 'type' );
108
if ( type == 'error' )
110
setMessage(xmlObject.firstChild.nodeValue);
112
else if ( type == 'success' )
117
// ========================================================================================================================
119
// ========================================================================================================================
121
function addExcelItem() {
123
/* var request = new Request();
124
request.setResponseTypeXML( 'datalement' );
125
request.setCallbackSuccess( Completed );
126
var params = "name=" + byId("name").value;
127
params += "&expression=" + byId("expression").value;
128
params += "&row=" + byId("row").value;
129
params += "&column=" + byId("column").value;
130
params += "&sheetNo=" + byId("sheetNo").value;
131
params += "&excelItemGroupId=" + byId( "excelItemGroupId" ).value;
132
request.sendAsPost( params );
133
request.send( "addExcelItem.action" ); */
135
$.post("addExcelItem.action",{
136
name:$("#name").val(),
137
expression:$("#expression").val(),
139
column:$("#column").val(),
140
sheetNo:byId("sheetNo").value,
141
excelItemGroupId:byId("excelItemGroupId").value
144
window.location.reload();
148
function Completed( xmlObject ) {
150
window.location.reload();
153
// ========================================================================================================================
155
// ========================================================================================================================
157
function updateExcelItem() {
159
$.post("updateExcelItem.action",{
161
name:$("#name").val(),
162
expression:$("#expression").val(),
164
column:$("#column").val(),
165
sheetNo:byId("sheetNo").value,
166
excelItemGroupId:byId("excelItemGroupId").value
169
window.location.reload();
173
// ===============================================================================
5
function changeItemType()
7
var type = getFieldValue( 'excelItemGroupType' );
9
if( type == 'NORMAL' ){
10
byId('expression-button' ).onclick = openExpressionBuild;
12
byId('expression-button' ).onclick = caExpressionBuilderForm;
16
// -----------------------------------------------------------------------
17
// Open Expression Form for Normal Excel-Item group
18
// -----------------------------------------------------------------------
174
20
// Open Expression Form
175
// ===============================================================================
177
21
function openExpressionBuild() {
179
23
byId("formula").value = byId("expression").value;
181
getALLDataElementGroup();
182
getDataElementsByGroup();
183
enable("dataElementGroup");
184
enable("availableDataElements");
24
loadDataElementGroups( "#divExpression select[id=dataElementGroup]" );
25
loadAllDataElements( "#divExpression select[id=availableDataElements]" );
186
26
$( "#availableDataElements" ).change(getOptionCombos);
187
$( "#divExpression" ).showAtCenter( true );
191
// ===============================================================================
192
// Get all Dataelement Group
193
// ===============================================================================
195
function getALLDataElementGroup() {
197
var list = byId( 'dataElementGroup' );
199
list.options.length = 0;
200
list.add( new Option( "ALL", "ALL" ), null );
202
for ( id in dataElementGroups )
204
list.add( new Option( dataElementGroups[id], id ), null );
208
// ===============================================================================
209
// Get DataElements by Group
210
// ===============================================================================
212
function getDataElementsByGroup()
214
var request = new Request();
215
request.setResponseTypeXML( 'xmlObject' );
216
request.setCallbackSuccess( getDataElementsByGroupCompleted );
217
var url = "../dhis-web-commons-ajax/getDataElements.action?id=" + byId("dataElementGroup").value;
221
function getDataElementsByGroupCompleted( xmlObject ) {
223
var dataElementList = byId( "availableDataElements" );
225
dataElementList.options.length = 0;
227
var dataelements = xmlObject.getElementsByTagName( "dataElement" );
229
for ( var i = 0; i < dataelements.length; i++)
231
var id = dataelements[ i ].getElementsByTagName( "id" )[0].firstChild.nodeValue;
232
var elementName = dataelements[ i ].getElementsByTagName( "name" )[0].firstChild.nodeValue;
233
var option = new Option( elementName, id );
234
option.onmousemove = function(e){
235
showToolTip( e, this.text);
237
dataElementList.add( option, null );
241
// ===============================================================================
242
// Get OptionCombos by DataElement
243
// ===============================================================================
28
showPopupWindowById( 'divExpression', 600, 300 );
31
// Get option combos for selected dataelement
245
32
function getOptionCombos() {
247
var request = new Request();
248
request.setResponseTypeXML( 'xmlObject' );
249
request.setCallbackSuccess( getOptionCombosReceived);
250
request.send( "getOptionCombos.action?dataElementId=" + byId("availableDataElements").value );
253
function getOptionCombosReceived( xmlObject ) {
255
xmlObject = xmlObject.getElementsByTagName('categoryOptions')[0];
257
var optionComboList = byId( "optionCombos" );
258
optionComboList.options.length = 0;
259
var optionCombos = xmlObject.getElementsByTagName( "categoryOption" );
261
for ( var i = 0; i < optionCombos.length; i++ )
263
var id = optionCombos[ i ].getAttribute('id');
264
var name = optionCombos[ i ].firstChild.nodeValue;
265
var option = document.createElement( "option" );
268
optionComboList.add( option, null );
272
// ===============================================================================
273
// Insert dataelement's id into the Formular textbox
274
// ===============================================================================
33
loadCategoryOptionComboByDE( byId("availableDataElements").value, "#divExpression select[id=optionCombos]" );
36
// Insert operand into the Formular textbox
276
37
function insertDataElementId() {
278
39
var dataElementComboId = "[" + byId("availableDataElements").value + "." + byId("optionCombos").value + "]";
279
40
byId("formula").value += dataElementComboId;
282
// ===============================================================================
283
43
// Insert operators into the Formular textbox
284
// ===============================================================================
286
44
function insertOperation( target, value ) {
288
46
byId( target ).value += value;
49
// Update expression for item
50
function updateNormalExpression()
52
expression = jQuery( '#divExpression textarea[id=formula]' ).val();
53
setFieldValue( 'expression', getFieldValue('formula' ) );
54
hideById('divExpression');
58
// -----------------------------------------------------------------------
59
// Open Expression Form for Catagory Excel-Item group
60
// -----------------------------------------------------------------------
62
// Open Expression Form
63
function caExpressionBuilderForm()
65
loadDataElementGroups( "#divCategory select[id=dataElementGroup]" );
66
loadAllDataElements( "#divCategory select[id=availableDataElements]" );
68
setFieldValue( 'divCategory textarea[id=formula]', getFieldValue('expression') );
69
showPopupWindowById( 'divCategory', 600, 320 );
72
// Insert operand into the Formular textbox
73
function insertExpression()
75
var expression = "[*." + getFieldValue("divCategory select[id=optionCombos]") + "]";
76
setFieldValue( 'divCategory textarea[id=formula]', getFieldValue( 'divCategory textarea[id=formula]') + expression );
79
// Update expression for item
80
function updateCaExpression()
82
expression = jQuery( '#divCategory textarea[id=formula]' ).val();
83
setFieldValue( 'expression', expression );
84
hideById('divCategory');
88
// Get option combos for selected dataelement
89
function getOptionCombos(id, target) {
90
loadCategoryOptionComboByDE( id, target);
93
// -----------------------------------------------------------------------
94
// Get Dataelement by Group
95
// -----------------------------------------------------------------------
97
function getDataElements( id, target )
99
loadDataElementsByGroup( id, target );
291
102
// -----------------------------------------------------------------------
292
103
// SAVE COPY EXCEL ITEM(s) TO EXCEL_ITEM_GROUP
293
104
// -----------------------------------------------------------------------