Changeset 8103
- Timestamp:
- 04/23/13 13:53:58 (10 years ago)
- Location:
- branches/2.5/expressoMail1_2/js
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.5/expressoMail1_2/js/MAExpressoPattern.js
r7715 r8103 1241 1241 + '}'; 1242 1242 1243 var strMailMessage = connector.unserialize (tplMessage);1243 var strMailMessage = connector.unserializeArchiver(tplMessage); 1244 1244 // strMessage['from'] = mheader["from"]; 1245 1245 //strMessage['from'] = expresso_mail_archive.toExpressoBody(mheader, mbody); -
branches/2.5/expressoMail1_2/js/connector.js
r7919 r8103 171 171 } 172 172 173 cConnector.prototype.unserializeArchiver = function(str) 174 { 175 _thisObject = this; 176 var matchB = function (str, iniPos) 177 { 178 var nOpen, nClose = iniPos; 179 do 180 { 181 nOpen = str.substr(nClose+1).search(/[0-9]\:\{/ ); 182 183 if (nOpen > 0) 184 nOpen = nOpen + nClose+3; 185 186 nClose = str.indexOf('}', nClose+1); 187 188 if (nOpen < 0) 189 { 190 return nClose; 191 } 192 if (nOpen < nClose ) 193 { 194 nClose = matchB(str, nOpen); 195 } 196 } while (nOpen < nClose); 197 198 return nClose; 199 } 200 201 var f = function (str) 202 { 203 switch (str.charAt(0)) 204 { 205 case 'a': 206 207 var data = new Array(); 208 var n = parseInt( str.substring( str.indexOf(':')+1, str.indexOf(':',2) ) ); 209 var arrayContent = str.substring(str.indexOf('{')+1, str.lastIndexOf('}')); 210 211 for (var i = 0; i < n; i++) 212 { 213 var pos = 0; 214 215 /* Process Index */ 216 var indexStr = arrayContent.substr(pos, arrayContent.indexOf(';')+1); 217 var index = f(indexStr); 218 pos = arrayContent.indexOf(';', pos)+1; 219 220 /* Process Content */ 221 var part = null; 222 switch (arrayContent.charAt(pos)) 223 { 224 case 'a': 225 var pos_ = matchB(arrayContent, arrayContent.indexOf('{', pos))+1; 226 part = arrayContent.substring(pos, pos_); 227 pos = pos_; 228 data[index] = f(part); 229 break; 230 231 case 's': 232 var pval = arrayContent.indexOf(':', pos+2); 233 var val = parseInt(arrayContent.substring(pos+2, pval)); 234 pos = pval + val + 4; 235 data[index] = arrayContent.substr(pval+2, val); 236 break; 237 238 default: 239 part = arrayContent.substring(pos, arrayContent.indexOf(';', pos)+1); 240 pos = arrayContent.indexOf(';', pos)+1; 241 data[index] = f(part); 242 break; 243 } 244 arrayContent = arrayContent.substr(pos); 245 } 246 break; 247 248 case 's': 249 var pos = str.indexOf(':', 2); 250 var val = parseInt(str.substring(2,pos)); 251 var data = str.substr(pos+2, val); 252 str = str.substr(pos + 4 + val); 253 break; 254 255 case 'i': 256 case 'd': 257 var pos = str.indexOf(';'); 258 var data = parseInt(str.substring(2,pos)); 259 str = str.substr(pos + 1); 260 break; 261 262 case 'N': 263 var data = null; 264 str = str.substr(str.indexOf(';') + 1); 265 break; 266 267 case 'b': 268 var data = str.charAt(2) == '1' ? true : false; 269 break; 270 } 271 return data; 272 } 273 274 return f(str); 275 } 276 173 277 //Unserialize Data Method 174 278 cConnector.prototype.unserialize = function(str) 175 279 { 176 177 280 _thisObject = this; 178 281 var matchB = function (str, iniPos) … … 187 290 188 291 nClose = (str.substr(nClose+1) == '}' || str.substr(nClose+1,1) == '}') ? nClose +1 : str.substr(nClose+1).search(/[0-9\"]\;\}/ ) + nClose + 3; 189 292 190 293 if (nOpen < 0) 191 294 {
Note: See TracChangeset
for help on using the changeset viewer.