Ignore:
Timestamp:
11/17/09 15:57:19 (14 years ago)
Author:
amuller
Message:

Ticket #490 - Criação dos códigos de unificação ajax

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/expresso2.2/contactcenter/js/ccAux.js

    r1612 r1662  
    5757function serialize(data) 
    5858{ 
    59         var f = function(data) 
    60         { 
    61                 var str_data; 
    62  
    63                 if (data == null ||  
    64                         (typeof(data) == 'string' && data == '')) 
    65                 { 
    66                         str_data = 'N;'; 
    67                 } 
    68  
    69                 else switch(typeof(data)) 
    70                 { 
    71                         case 'object': 
    72                                 var arrayCount = 0; 
    73  
    74                                 str_data = ''; 
    75  
    76                                 for (i in data) 
    77                                 { 
    78                                         if (i == 'length') 
    79                                         { 
    80                                                 continue; 
    81                                         } 
    82                                          
    83                                         arrayCount++; 
    84                                         switch (typeof(i)) 
    85                                         { 
    86                                                 case 'number': 
    87                                                         str_data += 'i:' + i + ';' + serialize(data[i]); 
    88                                                         break; 
    89  
    90                                                 case 'string': 
    91                                                         str_data += 's:' + i.length + ':"' + i + '";' + serialize(data[i]); 
    92                                                         break; 
    93  
    94                                                 default: 
    95                                                         showMessage(Element('cc_msg_err_serialize_data_unknown').value); 
    96                                                         break; 
    97                                         } 
    98                                 } 
    99  
    100                                 if (!arrayCount) 
    101                                 { 
    102                                         str_data = 'N;';         
    103                                 } 
    104                                 else 
    105                                 { 
    106                                         str_data = 'a:' + arrayCount + ':{' + str_data + '}'; 
    107                                 } 
    108                                  
    109                                 break; 
    110                  
    111                         case 'string': 
    112                                 str_data = 's:' + data.length + ':"' + data + '";'; 
    113                                 break; 
    114                                  
    115                         case 'number': 
    116                                 str_data = 'i:' + data + ';'; 
    117                                 break; 
    118  
    119                         case 'boolean': 
    120                                 str_data = 'b:' + (data ? '1' : '0') + ';'; 
    121                                 break; 
    122  
    123                         default: 
    124                                 showMessage(Element('cc_msg_err_serialize_data_unknown').value); 
    125                                 return null; 
    126                 } 
    127  
    128                 return str_data; 
    129         } 
    130  
    131         var sdata = f(data); 
    132         return sdata; 
     59        return expresso.connector.serialize(data); 
    13360} 
    13461 
    13562function unserialize(str) 
    13663{ 
    137         var f = function (str) 
    138         { 
    139                 switch (str.charAt(0)) 
    140                 { 
    141                         case 'a': 
    142                                  
    143                                 var data = new Array(); 
    144                                 var n = parseInt( str.substring( str.indexOf(':')+1, str.indexOf(':',2) ) ); 
    145                                 var arrayContent = str.substring(str.indexOf('{')+1, str.lastIndexOf('}')); 
    146                          
    147                                 for (var i = 0; i < n; i++) 
    148                                 { 
    149                                         var pos = 0; 
    150  
    151                                         /* Process Index */ 
    152                                         var indexStr = arrayContent.substr(pos, arrayContent.indexOf(';')+1); 
    153                                         var index = unserialize(indexStr); 
    154                                         pos = arrayContent.indexOf(';', pos)+1; 
    155                                          
    156                                         /* Process Content */ 
    157                                         var part = null; 
    158                                         switch (arrayContent.charAt(pos)) 
    159                                         { 
    160                                                 case 'a': 
    161                                                         var pos_ = matchBracket(arrayContent, arrayContent.indexOf('{', pos))+1; 
    162                                                         part = arrayContent.substring(pos, pos_); 
    163                                                         pos = pos_; 
    164                                                         data[index] = unserialize(part); 
    165                                                         break; 
    166                                          
    167                                                 case 's': 
    168                                                         var pval = arrayContent.indexOf(':', pos+2); 
    169                                                         var val  = parseInt(arrayContent.substring(pos+2, pval)); 
    170                                                         pos = pval + val + 4; 
    171                                                         data[index] = arrayContent.substr(pval+2, val); 
    172                                                         break; 
    173  
    174                                                 default: 
    175                                                         part = arrayContent.substring(pos, arrayContent.indexOf(';', pos)+1); 
    176                                                         pos = arrayContent.indexOf(';', pos)+1; 
    177                                                         data[index] = unserialize(part); 
    178                                                         break; 
    179                                         } 
    180                                         arrayContent = arrayContent.substr(pos); 
    181                                 } 
    182                                 break; 
    183                                  
    184                         case 's': 
    185                                 var pos = str.indexOf(':', 2); 
    186                                 var val = parseInt(str.substring(2,pos)); 
    187                                 var data = str.substr(pos+2, val); 
    188                                 str = str.substr(pos + 4 + val); 
    189                                 break; 
    190  
    191                         case 'i': 
    192                         case 'd': 
    193                                 var pos = str.indexOf(';'); 
    194                                 var data = parseInt(str.substring(2,pos)); 
    195                                 str = str.substr(pos + 1); 
    196                                 break; 
    197                          
    198                         case 'N': 
    199                                 var data = null; 
    200                                 str = str.substr(str.indexOf(';') + 1); 
    201                                 break; 
    202  
    203                         case 'b': 
    204                                 var data = str.charAt(2) == '1' ? true : false; 
    205                                 break; 
    206                 } 
    207                  
    208                 return data; 
    209         } 
    210  
    211         return f(str); 
    212 } 
    213  
    214 function matchBracket(strG, iniPosG) 
    215 { 
    216         var f = function (str, iniPos) 
    217         { 
    218                 var nOpen, nClose = iniPos; 
    219                 var startIn = nClose + 1; 
    220  
    221                 do 
    222                 { 
    223                         startIn = nClose + 1; 
    224                         do 
    225                         { 
    226                                 nOpen = str.indexOf( '{', startIn ); 
    227                                 var escapeEndIn = str.indexOf( '";', nOpen + 1 ); 
    228                                 var escapeBeginIn = str.indexOf( ':"', nOpen + 1 ); 
    229                                 if ( escapeEndIn < escapeBeginIn ) 
    230                                         startIn = nOpen + 1; 
    231                         } 
    232                         while ( escapeEndIn < escapeBeginIn ); 
    233  
    234                         startIn = nClose + 1; 
    235                         do 
    236                         { 
    237                                 nClose = str.indexOf( '}', startIn ); 
    238                                 var escapeEndIn = str.indexOf( '";', nClose + 1 ); 
    239                                 var escapeBeginIn = str.indexOf( ':"', nClose + 1 ); 
    240                                 if ( escapeEndIn < escapeBeginIn ) 
    241                                         startIn = nClose + 1; 
    242                         } 
    243                         while ( escapeEndIn < escapeBeginIn ); 
    244  
    245                         if (nOpen == -1) 
    246                         { 
    247                                 return nClose; 
    248                         } 
    249  
    250                         if (nOpen < nClose ) 
    251                         { 
    252                                 nClose = matchBracket(str, nOpen); 
    253                         } 
    254  
    255                 } while (nOpen < nClose); 
    256  
    257                 return nClose; 
    258         } 
    259  
    260         return f(strG, iniPosG); 
    261 } 
     64        return expresso.connector.unserialize(str); 
     65} 
     66 
     67 
    26268 
    26369/***********************************************\ 
Note: See TracChangeset for help on using the changeset viewer.