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

« back to all changes in this revision

Viewing changes to dhis-2/dhis-web/dhis-web-validationrule/src/main/webapp/dhis-web-validationrule/javascript/expression.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
function showEditLeftSideExpressionForm()
 
3
{
 
4
        var description = htmlEncode( document.getElementById( "leftSideDescription" ).value );
 
5
        var expression = htmlEncode( document.getElementById( "leftSideExpression" ).value );
 
6
        var textualExpression = htmlEncode( document.getElementById( "leftSideTextualExpression" ).value );
 
7
        
 
8
        showExpressionForm( "left", description, expression, textualExpression );
 
9
}
 
10
 
 
11
function showEditRightSideExpressionForm()
 
12
{
 
13
        var description = htmlEncode( document.getElementById( "rightSideDescription" ).value );
 
14
        var expression = htmlEncode( document.getElementById( "rightSideExpression" ).value );
 
15
        var textualExpression = htmlEncode( document.getElementById( "rightSideTextualExpression" ).value );
 
16
        
 
17
        showExpressionForm( "right", description, expression, textualExpression );
 
18
}
 
19
 
 
20
function showExpressionForm( side, description, expression, textualExpression )
 
21
{
 
22
        var url = "showEditExpressionForm.action?side=" + side +                
 
23
                "&description=" + description +
 
24
                "&expression=" + expression +
 
25
                "&textualExpression=" + textualExpression;
 
26
                
 
27
    var dialog = window.open( url, "_blank", "directories=no, \
 
28
        height=560, width=790, location=no, menubar=no, status=no, \
 
29
        toolbar=no, resizable=no");
 
30
}
 
31
 
 
32
function insertText( inputAreaName, inputText )
 
33
{
 
34
        var inputArea = document.getElementById( inputAreaName );
 
35
        
 
36
        var startPos = inputArea.selectionStart;
 
37
        var endPos = inputArea.selectionEnd;
 
38
        
 
39
        var existingText = inputArea.value;
 
40
        var textBefore = existingText.substring( 0, startPos );
 
41
        var textAfter = existingText.substring( endPos, existingText.length );
 
42
        
 
43
        inputArea.value = textBefore + inputText + textAfter;
 
44
        
 
45
        updateTextualExpression( inputAreaName );       
 
46
}
 
47
 
 
48
function filterDataElements( dataElementGroupSelectName, filterName )
 
49
{
 
50
        var dataElementGroup = document.getElementById( dataElementGroupSelectName );
 
51
        var dataElementGroupId = dataElementGroup.options[ dataElementGroup.selectedIndex ].value;
 
52
        var filter = htmlEncode( document.getElementById( filterName ).value );
 
53
        
 
54
        var url = "getFilteredDataElements.action?dataElementGroupId=" + dataElementGroupId + "&filter=" + filter;
 
55
 
 
56
    var request = new Request();
 
57
        request.setResponseTypeXML( 'operand' );
 
58
    request.setCallbackSuccess( getFilteredDataElementsReceived );
 
59
    request.send( url );
 
60
}
 
61
 
 
62
function getFilteredDataElementsReceived( xmlObject )
 
63
{
 
64
        var operandList = document.getElementById( "dataElementId" );
 
65
                        
 
66
        operandList.options.length = 0;
 
67
        
 
68
        var operands = xmlObject.getElementsByTagName( "operand" );
 
69
        
 
70
        for ( var i = 0; i < operands.length; i++)
 
71
        {
 
72
                var id = operands[ i ].getElementsByTagName( "id" )[0].firstChild.nodeValue;
 
73
                var elementName = operands[ i ].getElementsByTagName( "name" )[0].firstChild.nodeValue;
 
74
                
 
75
                var option = document.createElement( "option" );
 
76
                option.value = "[" + id + "]";
 
77
                option.text = elementName;
 
78
                operandList.add( option, null );        
 
79
        }
 
80
}
 
81
 
 
82
function updateTextualExpression( expressionFieldName )
 
83
{       
 
84
        var expression = htmlEncode( document.getElementById( expressionFieldName ).value );
 
85
        
 
86
        var url = "getTextualExpression.action?expression=" + expression;
 
87
        
 
88
        var request = new Request();
 
89
        request.setCallbackSuccess( updateTextualExpressionReceived );
 
90
    request.send( url );
 
91
}
 
92
 
 
93
function updateTextualExpressionReceived( messageElement )
 
94
{
 
95
        document.getElementById( "textualExpression" ).innerHTML = messageElement;
 
96
}
 
97
 
 
98
function validateExpression()
 
99
{
 
100
        var description = htmlEncode( document.getElementById( "description" ).value );
 
101
        var expression = htmlEncode( document.getElementById( "expression" ).value );
 
102
    
 
103
    var url = "validateExpression.action?description=" + description + "&expression=" + expression;
 
104
 
 
105
    var request = new Request();
 
106
    request.setResponseTypeXML( "message" );
 
107
    request.setCallbackSuccess( validateExpressionReceived );
 
108
    request.send( url );    
 
109
}
 
110
 
 
111
function validateExpressionReceived( xmlObject )
 
112
{
 
113
    var type = xmlObject.getAttribute( 'type' );
 
114
    var message = xmlObject.firstChild.nodeValue;
 
115
    
 
116
    if ( type == "success" )
 
117
    {
 
118
        saveExpression();
 
119
    }
 
120
    else if ( type == "error" )
 
121
    {
 
122
        document.getElementById( "textualExpression" ).innerHTML = message;
 
123
    }   
 
124
}
 
125
 
 
126
function saveExpression()
 
127
{
 
128
    var description = document.getElementById( "description" ).value;
 
129
    var expression = document.getElementById( "expression" ).value;
 
130
    var textualDescription = document.getElementById( "textualExpression" ).innerHTML;
 
131
    
 
132
    var side = htmlEncode( document.getElementById( "side" ).value );
 
133
    
 
134
    if ( window.opener && !window.opener.closed )
 
135
    {
 
136
            if ( side == "left" )
 
137
            {
 
138
                window.opener.document.getElementById( "leftSideDescription" ).value = description;
 
139
                        window.opener.document.getElementById( "leftSideExpression" ).value = expression;
 
140
                        window.opener.document.getElementById( "leftSideTextualExpression" ).value = textualDescription;
 
141
                }
 
142
                else if ( side == "right" )
 
143
                {
 
144
                        window.opener.document.getElementById( "rightSideDescription" ).value = description;
 
145
                        window.opener.document.getElementById( "rightSideExpression" ).value = expression;
 
146
                        window.opener.document.getElementById( "rightSideTextualExpression" ).value = textualDescription;
 
147
                }
 
148
    }
 
149
 
 
150
    window.close();
 
151
}