source: branches/1.2/workflow/js/nano/NanoRequest.class.js @ 1349

Revision 1349, 2.9 KB checked in by niltonneto, 15 years ago (diff)

Ticket #561 - Inclusão do módulo Workflow faltante nessa versão.

  • Property svn:executable set to *
Line 
1
2// -----------------------------------------------------------------------------
3// CLASS NanoRequest
4function NanoRequest()
5{
6    /* Instance Variables */
7
8    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
9    // Public variables
10
11    this.requestParameter = null;
12    this.requestData      = null;
13
14    this.escapeKeys       = false;
15    this.escapeValues     = true;
16
17
18        // #########################################################################
19    // Privileged Method (has public access and can access private vars & funcs)
20
21    this.autoLoadData        = _autoLoadRequestData;
22    this.getAssembledRequest = _assembleRequestData;
23
24
25        // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26        // PRIVATE Methods
27
28        function _autoLoadRequestData( form_id, unique_element_id_string, disabled_element_types )
29        {
30            this.requestData = new Object();
31
32        for( var i = 0; i < $(form_id).elements.length; i++ )
33        {
34            if( unique_element_id_string == ($(form_id).elements[i].id).substr(0,unique_element_id_string.length) )
35            {
36                this.requestData[_escapeKey($(form_id).elements[i].id)] = _getDataByElementType( $(form_id).elements[i].id );
37            }
38        }
39        }
40
41    function _assembleRequestData()
42    {
43        var tmp = new Object();
44
45        if( null != this.requestParameter && undefined != this.requestParameter )
46        {
47            tmp['parameter'] = this.requestParameter;
48        }
49
50        if( null != this.requestData && undefined != this.requestData )
51        {
52            tmp['data'] = this.requestData;
53        }
54
55        return tmp;
56    }
57
58    function _getDataByElementType( id )
59    {
60        if( $(id) )
61        {
62            switch( $(id).type )
63            {
64                case 'hidden'     :
65                case 'radio'      :
66                case 'select-one' :
67                case 'button'     : return $F(id);
68                                    break;
69
70                case 'password'   :
71                case 'text'       :
72                case 'textarea'   : return _escapeValue( $F(id) );
73                                    break;
74
75                case 'checkbox'   : return ( true == $(id).checked )
76                                                ? $F(id).value
77                                                : 0;
78                                    break;
79
80                default           : alert( 'Form field type: ' + $(id).type +
81                                           ' is NOT defined!!!' );
82            }
83        }
84        else
85        {
86            return '';
87        }
88    }
89
90    function _escapeKey( data )
91    {
92        return ( true  == this.escapeKeys)
93                    ? encodeURIComponent(data)
94                    : data;
95    }
96
97    function _escapeValue( data )
98    {
99        return ( true  == this.escapeValues)
100                    ? encodeURIComponent(data)
101                    : data;
102    }
103
104}
Note: See TracBrowser for help on using the repository browser.