1 | <!-- |
---|
2 | /* |
---|
3 | * MailArchiver Expresso Pattern serialized format |
---|
4 | * --- |
---|
5 | * This resources intended to be used on converting data formats, to make |
---|
6 | * it work on ExpressoMail pattern. |
---|
7 | * |
---|
8 | * Basicly, it gets all the service return data (almost enveloped at SOAP |
---|
9 | * webservices spec i.e XML data), and then transform it to the serialized |
---|
10 | * pattern used by Expresso (somethink almost close or near JSON Javascript |
---|
11 | * objects). |
---|
12 | * |
---|
13 | * @author Fernando Wendt [fernando-alberto.wendt@serpro.gov.br] |
---|
14 | * |
---|
15 | * @status under development |
---|
16 | * |
---|
17 | */ |
---|
18 | var MAPattern = function(){ |
---|
19 | |
---|
20 | } |
---|
21 | // -----------------------------------SERIALIZED DATA TEMPLATES ---------------- |
---|
22 | MAPattern.prototype.toExpressoAddress = function(data){ |
---|
23 | if((typeof(data) != 'undefined') && (data.length > 0)){ |
---|
24 | |
---|
25 | if((typeof(data) != 'string') || (data.indexOf("{") == -1)){ |
---|
26 | var objMsg = expresso_mail_archive.getMessageServiceObject(data); |
---|
27 | var attData = objMsg.getTo(); |
---|
28 | var Fromdata = attData ? eval("(" + attData + ")") : null; |
---|
29 | if (Fromdata == null) |
---|
30 | return('N;'); |
---|
31 | } |
---|
32 | else{ |
---|
33 | var Fromdata = data ? eval("(" + data + ")") : null; |
---|
34 | if (Fromdata == null){ |
---|
35 | return('N;'); |
---|
36 | } |
---|
37 | else{ |
---|
38 | if((!Fromdata.mailbox) && (!Fromdata.groupbox)){ |
---|
39 | var nofrom = get_lang('Sender not identified'); |
---|
40 | return('a:2{s:4:"name";s:' + nofrom.length + ':"' + nofrom + '";s:5:"email";s:'+nofrom.length +':"'+nofrom +'";}'); |
---|
41 | } |
---|
42 | } |
---|
43 | } |
---|
44 | |
---|
45 | //var Fromdata = eval("(" + data + ")"); |
---|
46 | if(Fromdata.mailbox){ |
---|
47 | //just one address to pharse: length is undefined |
---|
48 | if(typeof(Fromdata.mailbox.length) == 'undefined'){ |
---|
49 | var objfrom = Fromdata.mailbox; |
---|
50 | flag1 = 1; |
---|
51 | } |
---|
52 | else{ |
---|
53 | var objfrom = Fromdata.mailbox[0]; |
---|
54 | flag1 = 2; |
---|
55 | } |
---|
56 | |
---|
57 | if(objfrom["@name"] != 'null') |
---|
58 | var dataName = (objfrom["@name"]); |
---|
59 | else |
---|
60 | var dataName = ""; |
---|
61 | |
---|
62 | if(objfrom["@localPart"] != 'null') |
---|
63 | var dataEmailPart = (objfrom["@localPart"]); |
---|
64 | else |
---|
65 | var dataEmailpart = ""; |
---|
66 | |
---|
67 | if(objfrom["@domain"] != 'null') |
---|
68 | var dataEmailDomain = (objfrom["@domain"]); |
---|
69 | else |
---|
70 | var dataEmailDomain = ""; |
---|
71 | |
---|
72 | if(dataEmailDomain != "") |
---|
73 | var dataEmail = dataEmailPart + '@' + dataEmailDomain; |
---|
74 | else |
---|
75 | var dataEmail = dataEmailPart; |
---|
76 | |
---|
77 | if(dataName == '') |
---|
78 | dataName = dataEmail; |
---|
79 | |
---|
80 | var dataTmp = '\"'+dataName+'\"<'+dataEmail+'>' |
---|
81 | var tplFrom = 'a:3:{' |
---|
82 | + 's:4:"name";' |
---|
83 | + 's:'+dataName.length+':"'+dataName+'";' |
---|
84 | + 's:5:"email";' |
---|
85 | + 's:'+dataEmail.length+':"'+dataEmail+'";' |
---|
86 | + 's:4:"full";' |
---|
87 | + 's:'+(dataTmp.length)+':"'+dataTmp+'";' |
---|
88 | + '}'; |
---|
89 | } |
---|
90 | else{ |
---|
91 | if(Fromdata.group){ |
---|
92 | //just one address to pharse: length is undefined |
---|
93 | if(typeof(Fromdata.group.length) == 'undefined'){ |
---|
94 | if(Fromdata.group["@name"]){ |
---|
95 | var dataName = Fromdata.group["@name"]; |
---|
96 | } |
---|
97 | else |
---|
98 | var dataName = null; |
---|
99 | |
---|
100 | if(Fromdata.group["@localPart"]){ |
---|
101 | var dataEmail = Fromdata.group["@localPart"] + '@' + Fromdata.group["@domain"]; |
---|
102 | } |
---|
103 | else |
---|
104 | var dataEmail = null; |
---|
105 | |
---|
106 | if(dataName == 'null') |
---|
107 | dataName = dataEmail; |
---|
108 | } |
---|
109 | //address list to pharse, but to header(folder list messages action), only first metters |
---|
110 | else{ |
---|
111 | var dataName = Fromdata.group[0]["@name"]; |
---|
112 | var dataEmail = Fromdata.group[0]["@localPart"] + '@' + Fromdata.group[0]["@domain"]; |
---|
113 | if(dataName == 'null') |
---|
114 | dataName = dataEmail; |
---|
115 | } |
---|
116 | |
---|
117 | if((dataName != null) && (dataEmail != null)){ |
---|
118 | var dataTmp = '\"'+dataName+'\"<'+dataEmail+'>' |
---|
119 | var tplFrom = 'a:3:{' |
---|
120 | + 's:4:"name";' |
---|
121 | + 's:'+dataName.length+':"'+dataName+'";' |
---|
122 | + 's:5:"email";' |
---|
123 | + 's:'+dataEmail.length+':"'+dataEmail+'";' |
---|
124 | + 's:4:"full";' |
---|
125 | + 's:'+(dataTmp.length)+':"'+dataTmp+'";' |
---|
126 | + '}'; |
---|
127 | } |
---|
128 | else{ |
---|
129 | if(dataName!= null){ |
---|
130 | var tplFrom = 'a:2:{' |
---|
131 | + 's:4:"name";' |
---|
132 | + 's:'+dataName.length+':"'+dataName+'";' |
---|
133 | + 's:4:"full";' |
---|
134 | + 's:'+(dataName.length)+':"'+dataName+'";' |
---|
135 | + '}'; |
---|
136 | } |
---|
137 | else{ |
---|
138 | if(dataEmail != null){ |
---|
139 | var tplFrom = 'a:2:{' |
---|
140 | + 's:4:"email";' |
---|
141 | + 's:'+dataEmail.length+':"'+dataEmail+'";' |
---|
142 | + 's:4:"full";' |
---|
143 | + 's:'+(dataEmail.length)+':"'+dataEmail+'";' |
---|
144 | + '}'; |
---|
145 | } |
---|
146 | else tplFrom = 'a:2{s:4:"name";s:14:"Unknow mailbox";s:5:"email";s:15:"Unknow_mailbox";}'; |
---|
147 | } |
---|
148 | } |
---|
149 | } |
---|
150 | //Data adrress from mailbox is empty, null, or canot be correctly returned by service invocation (will return 'unknow mailbox' string) |
---|
151 | else { |
---|
152 | tplFrom = 'N;'; |
---|
153 | } |
---|
154 | } |
---|
155 | } |
---|
156 | else{ |
---|
157 | tplFrom = 'N;'; |
---|
158 | } |
---|
159 | return(tplFrom); |
---|
160 | } |
---|
161 | |
---|
162 | MAPattern.prototype.toExpressoCc = function(data){ |
---|
163 | if((typeof(data) != 'undefined') && (data.length > 0)){ |
---|
164 | var Fromdata = eval("(" + data + ")"); |
---|
165 | if(Fromdata.mailbox){ |
---|
166 | //just one address to pharse: length is undefined |
---|
167 | if(typeof(Fromdata.mailbox.length) == 'undefined'){ |
---|
168 | var dataName = Fromdata.mailbox["@name"]; |
---|
169 | var dataEmail = Fromdata.mailbox["@localPart"] + '@' + Fromdata.mailbox["@domain"]; |
---|
170 | if (dataName == 'null') |
---|
171 | var dataFull = 's:'+(dataEmail.length)+':"'+dataEmail+'";'; |
---|
172 | else{ |
---|
173 | var dataTmp = '\"'+dataName+'\"<'+dataEmail+'>' |
---|
174 | var dataFull = 's:'+(dataTmp.length)+':"'+dataTmp+'";' |
---|
175 | } |
---|
176 | } |
---|
177 | //address list to pharse, but to header(folder list messages action), only first metters |
---|
178 | else{ |
---|
179 | var dataTmp = ''; |
---|
180 | for( i in Fromdata.mailbox){ |
---|
181 | var dataName = Fromdata.mailbox[i]["@name"]; |
---|
182 | var dataEmail = Fromdata.mailbox[i]["@localPart"] + '@' + Fromdata.mailbox[i]["@domain"]; |
---|
183 | if (dataName == 'null') |
---|
184 | dataTmp = dataTmp + dataEmail+','; |
---|
185 | else{ |
---|
186 | dataTmp = dataTmp + '\"'+dataName+'\"<'+dataEmail+'>,'; |
---|
187 | } |
---|
188 | } |
---|
189 | dataTmp = dataTmp.substring(0,(dataTmp.length - 1)); |
---|
190 | var dataFull = 's:'+(dataTmp.length)+':"'+dataTmp+'";' |
---|
191 | |
---|
192 | } |
---|
193 | |
---|
194 | var tplCc = dataFull; |
---|
195 | |
---|
196 | } |
---|
197 | else { |
---|
198 | tplCc = 'N;'; |
---|
199 | } |
---|
200 | } |
---|
201 | //Data adrress from mailbox is empty, null, or canot be correctly returned by service invocation (will return 'unknow mailbox' string) |
---|
202 | else { |
---|
203 | tplCc = 'N;'; |
---|
204 | } |
---|
205 | |
---|
206 | return(tplCc); |
---|
207 | |
---|
208 | } |
---|
209 | |
---|
210 | MAPattern.prototype.toExpressoDispositionNotificationTo = function(data){ |
---|
211 | var objMsg = expresso_mail_archive.getMessageServiceObject(data); |
---|
212 | var dntData = objMsg.getDispositionNotificationTo(); |
---|
213 | |
---|
214 | if((typeof(dntData) != 'undefined') && (dntData.length > 0)){ |
---|
215 | var notificationData = eval("(" + dntData + ")"); |
---|
216 | if(notificationData.mailbox){ |
---|
217 | //just one address to pharse: length is undefined |
---|
218 | if(typeof(notificationData.mailbox.length) == 'undefined'){ |
---|
219 | var dataEmail = notificationData.mailbox["@localPart"] + '@' + notificationData.mailbox["@domain"]; |
---|
220 | } |
---|
221 | //address list to parse, but to header(folder list messages action), only first matters |
---|
222 | else{ |
---|
223 | var dataEmail = notificationData.mailbox[0]["@localPart"] + '@' + notificationData.mailbox[0]["@domain"]; |
---|
224 | } |
---|
225 | |
---|
226 | var tplNotification = 's:25:"DispositionNotificationTo";s:' + dataEmail.length + ':"' + dataEmail + '";' |
---|
227 | } |
---|
228 | //Data adrress from mailbox is empty, null, or canot be correctly returned by service invocation (will return 'unknow mailbox' string) |
---|
229 | else { |
---|
230 | tplNotification = 's:25:"DispositionNotificationTo";N;'; |
---|
231 | } |
---|
232 | } |
---|
233 | else { |
---|
234 | tplNotification = 's:25:"DispositionNotificationTo";N;'; |
---|
235 | } |
---|
236 | |
---|
237 | return tplNotification; |
---|
238 | } |
---|
239 | |
---|
240 | MAPattern.prototype.toExpressoAddress2 = function(data){ |
---|
241 | if((typeof(data) != 'undefined') && (data.length > 0)){ |
---|
242 | if((typeof(data) != 'string') || (data.indexOf("{") == -1)){ |
---|
243 | var objMsg = expresso_mail_archive.getMessageServiceObject(data); |
---|
244 | var attData = objMsg.getTo(); |
---|
245 | var Fromdata = attData ? eval("(" + attData + ")") : null; |
---|
246 | if (Fromdata == null){ |
---|
247 | var noto = get_lang("without destination"); |
---|
248 | return('s:10:"toaddress2";s:' + noto.length + ':"'+noto+'";'); |
---|
249 | } |
---|
250 | } |
---|
251 | else{ |
---|
252 | var Fromdata = data ? eval("(" + data + ")") : null; |
---|
253 | if (Fromdata == null) |
---|
254 | return('s:10:"toaddress2";N;'); |
---|
255 | } |
---|
256 | |
---|
257 | if(Fromdata && Fromdata.mailbox){ |
---|
258 | //just one address to pharse: length is undefined |
---|
259 | if(typeof(Fromdata.mailbox.length) == 'undefined'){ |
---|
260 | var dataEmail = Fromdata.mailbox["@localPart"] + '@' + Fromdata.mailbox["@domain"]; |
---|
261 | } |
---|
262 | //address list to pharse, but to header(folder list messages action), only first metters |
---|
263 | else{ |
---|
264 | var datatmp = ""; |
---|
265 | for(var k=0; k<Fromdata.mailbox.length; k++){ |
---|
266 | if(Fromdata.mailbox[k]["@name"] != 'null'){ |
---|
267 | datatmp += '"' + Fromdata.mailbox[k]["@name"] + '" '; |
---|
268 | if(Fromdata.mailbox[k]["@localPart"] != 'null') |
---|
269 | datatmp += '<' + Fromdata.mailbox[k]["@localPart"]; |
---|
270 | if(Fromdata.mailbox[k]["@domain"] != 'null') |
---|
271 | datatmp += '@' + Fromdata.mailbox[k]["@domain"] + '>'; |
---|
272 | else |
---|
273 | datatmp += '>'; |
---|
274 | } |
---|
275 | else{ |
---|
276 | if(Fromdata.mailbox[k]["@localPart"] != 'null') |
---|
277 | datatmp += Fromdata.mailbox[k]["@localPart"]; |
---|
278 | if(Fromdata.mailbox[k]["@domain"] != 'null') |
---|
279 | datatmp += '@' + Fromdata.mailbox[k]["@domain"]; |
---|
280 | } |
---|
281 | if(datatmp != '') |
---|
282 | datatmp += ', '; |
---|
283 | } |
---|
284 | datatmp = datatmp.substr(0, datatmp.length -2); |
---|
285 | var dataEmail = datatmp; |
---|
286 | |
---|
287 | //var dataEmail = Fromdata.mailbox[0]["@localPart"] + '@' + Fromdata.mailbox[0]["@domain"]; |
---|
288 | } |
---|
289 | |
---|
290 | //var tplAddr2 = 's:10:"toaddress2";s:' + dataEmail.length + ':"' + dataEmail + '";' |
---|
291 | var tplAddr2 = 's:10:"toaddress2";s:' + dataEmail.length + ':"' + dataEmail + '";' |
---|
292 | } |
---|
293 | else{ |
---|
294 | if(Fromdata && Fromdata.group){ |
---|
295 | //just one address group to pharse |
---|
296 | if(typeof(Fromdata.group.length) == 'undefined'){ |
---|
297 | //there is a group email identifier |
---|
298 | if(Fromdata.group['@localPart']){ |
---|
299 | var dataEmail = Fromdata.group["@localPart"] + '@' + Fromdata.group["@domain"]; |
---|
300 | } |
---|
301 | //there is no email identifier, will try by name |
---|
302 | else{ |
---|
303 | if(Fromdata.group['@name']){ |
---|
304 | var dataEmail = '"' + Fromdata.group['@name'] + '"'; |
---|
305 | } |
---|
306 | else{ |
---|
307 | dataEmail = 'N'; |
---|
308 | } |
---|
309 | } |
---|
310 | |
---|
311 | } |
---|
312 | //group address list to pharse, but to header(folder list messages action), only first metters |
---|
313 | else{ |
---|
314 | var dataEmail = Fromdata.group[0]["@localPart"] + '@' + Fromdata.group[0]["@domain"]; |
---|
315 | } |
---|
316 | |
---|
317 | var tplAddr2 = 's:10:"toaddress2";s:' + dataEmail.length + ':"' + dataEmail + '";' |
---|
318 | } |
---|
319 | //Data adrress from mailbox is empty, null, or canot be correctly returned by service invocation (will return 'unknow mailbox' string) |
---|
320 | else { |
---|
321 | tplAddr2 = 's:10:"toaddress2";s:1:"N";'; |
---|
322 | } |
---|
323 | } |
---|
324 | |
---|
325 | } |
---|
326 | else{ |
---|
327 | //tplAddr2 = 's:10:"toaddress2";s:1:"";'; |
---|
328 | var noto = get_lang("without destination"); |
---|
329 | tplAddr2 = 's:10:"toaddress2";s:' + noto.length + ':"'+noto+'";'; |
---|
330 | } |
---|
331 | return(tplAddr2); |
---|
332 | } |
---|
333 | |
---|
334 | |
---|
335 | MAPattern.prototype.toExpressoSender = function(data){ |
---|
336 | if((typeof(data) != 'undefined') && (data.length > 0)){ |
---|
337 | if((typeof(data) != 'string') || (data.indexOf("{") == -1)){ |
---|
338 | var objMsg = expresso_mail_archive.getMessageServiceObject(data); |
---|
339 | var attData = objMsg.getSender(); |
---|
340 | var Fromdata = attData ? eval("(" + attData + ")") : null; |
---|
341 | if (Fromdata == null) |
---|
342 | return('s:6:"sender";N;'); |
---|
343 | } |
---|
344 | else{ |
---|
345 | var Fromdata = data ? eval("(" + data + ")") : null; |
---|
346 | if (Fromdata == null) |
---|
347 | return('s:6:"sender";N;'); |
---|
348 | } |
---|
349 | |
---|
350 | //var Fromdata = eval("(" + data + ")"); |
---|
351 | if(Fromdata.mailbox){ |
---|
352 | //just one address to pharse: length is undefined |
---|
353 | if(typeof(Fromdata.mailbox.length) == 'undefined'){ |
---|
354 | var objfrom = Fromdata.mailbox; |
---|
355 | flag1 = 1; |
---|
356 | } |
---|
357 | else{ |
---|
358 | var objfrom = Fromdata.mailbox[0]; |
---|
359 | flag1 = 2; |
---|
360 | } |
---|
361 | |
---|
362 | if(objfrom["@name"] != 'null') |
---|
363 | var dataName = (objfrom["@name"]); |
---|
364 | else |
---|
365 | var dataName = ""; |
---|
366 | |
---|
367 | if(objfrom["@localPart"] != 'null') |
---|
368 | var dataEmailPart = (objfrom["@localPart"]); |
---|
369 | else |
---|
370 | var dataEmailpart = ""; |
---|
371 | |
---|
372 | if(objfrom["@domain"] != 'null') |
---|
373 | var dataEmailDomain = (objfrom["@domain"]); |
---|
374 | else |
---|
375 | var dataEmailDomain = ""; |
---|
376 | |
---|
377 | if(dataEmailDomain != "") |
---|
378 | var dataEmail = dataEmailPart + '@' + dataEmailDomain; |
---|
379 | else |
---|
380 | var dataEmail = dataEmailPart; |
---|
381 | |
---|
382 | if(dataName == '') |
---|
383 | dataName = dataEmail; |
---|
384 | |
---|
385 | var dataTmp = '\"'+dataName+'\"<'+dataEmail+'>' |
---|
386 | |
---|
387 | var tplFrom = 'a:3:{' |
---|
388 | + 's:4:"name";' |
---|
389 | + 's:'+dataName.length+':"'+dataName+'";' |
---|
390 | + 's:5:"email";' |
---|
391 | + 's:'+dataEmail.length+':"'+dataEmail+'";' |
---|
392 | + 's:4:"full";' |
---|
393 | + 's:'+(dataTmp.length)+':"'+dataTmp+'";' |
---|
394 | + '}'; |
---|
395 | } |
---|
396 | else{ |
---|
397 | if(Fromdata.group){ |
---|
398 | //just one address to pharse: length is undefined |
---|
399 | if(typeof(Fromdata.group.length) == 'undefined'){ |
---|
400 | if(Fromdata.group["@name"]){ |
---|
401 | var dataName = Fromdata.group["@name"]; |
---|
402 | } |
---|
403 | else |
---|
404 | var dataName = null; |
---|
405 | |
---|
406 | if(Fromdata.group["@localPart"]){ |
---|
407 | var dataEmail = Fromdata.group["@localPart"] + '@' + Fromdata.group["@domain"]; |
---|
408 | } |
---|
409 | else |
---|
410 | var dataEmail = null; |
---|
411 | |
---|
412 | if(dataName == 'null') |
---|
413 | dataName = dataEmail; |
---|
414 | } |
---|
415 | //address list to pharse, but to header(folder list messages action), only first metters |
---|
416 | else{ |
---|
417 | var dataName = Fromdata.group[0]["@name"]; |
---|
418 | var dataEmail = Fromdata.group[0]["@localPart"] + '@' + Fromdata.group[0]["@domain"]; |
---|
419 | if(dataName == 'null') |
---|
420 | dataName = dataEmail; |
---|
421 | } |
---|
422 | |
---|
423 | if((dataName != null) && (dataEmail != null)){ |
---|
424 | var dataTmp = '\"'+dataName+'\"<'+dataEmail+'>' |
---|
425 | var tplFrom = 'a:3:{' |
---|
426 | + 's:4:"name";' |
---|
427 | + 's:'+dataName.length+':"'+dataName+'";' |
---|
428 | + 's:5:"email";' |
---|
429 | + 's:'+dataEmail.length+':"'+dataEmail+'";' |
---|
430 | + 's:4:"full";' |
---|
431 | + 's:'+(dataTmp.length)+':"'+dataTmp+'";' |
---|
432 | + '}'; |
---|
433 | } |
---|
434 | else{ |
---|
435 | if(dataName!= null){ |
---|
436 | var tplFrom = 'a:2:{' |
---|
437 | + 's:4:"name";' |
---|
438 | + 's:'+dataName.length+':"'+dataName+'";' |
---|
439 | + 's:4:"full";' |
---|
440 | + 's:'+(dataName.length)+':"'+dataName+'";' |
---|
441 | + '}'; |
---|
442 | } |
---|
443 | else{ |
---|
444 | if(dataEmail != null){ |
---|
445 | var tplFrom = 'a:2:{' |
---|
446 | + 's:4:"email";' |
---|
447 | + 's:'+dataEmail.length+':"'+dataEmail+'";' |
---|
448 | + 's:4:"full";' |
---|
449 | + 's:'+(dataEmail.length)+':"'+dataEmail+'";' |
---|
450 | + '}'; |
---|
451 | } |
---|
452 | else tplFrom = 'a:2{s:4:"name";s:14:"Unknow mailbox";s:5:"email";s:15:"Unknow_mailbox";}'; |
---|
453 | } |
---|
454 | } |
---|
455 | } |
---|
456 | else { |
---|
457 | tplFrom = 'N;'; |
---|
458 | } |
---|
459 | } |
---|
460 | } |
---|
461 | else{ |
---|
462 | tplFrom = 'N;'; |
---|
463 | } |
---|
464 | return('s:6:"sender";' + tplFrom); |
---|
465 | } |
---|
466 | |
---|
467 | MAPattern.prototype.toExpressoReplyTo = function(data){ |
---|
468 | if((typeof(data) != 'undefined') && (data.length > 0)){ |
---|
469 | |
---|
470 | if((typeof(data) != 'string') || (data.indexOf("{") == -1)){ |
---|
471 | var objMsg = expresso_mail_archive.getMessageServiceObject(data); |
---|
472 | var attData = objMsg.getReplyTo(); |
---|
473 | var Fromdata = attData ? eval("(" + attData + ")") : null; |
---|
474 | if (Fromdata == null) |
---|
475 | return('s:8:"reply_to";N;'); |
---|
476 | } |
---|
477 | else{ |
---|
478 | var Fromdata = data ? eval("(" + data + ")") : null; |
---|
479 | if (Fromdata == null) |
---|
480 | return('s:8:"reply_to";N;'); |
---|
481 | } |
---|
482 | |
---|
483 | //var Fromdata = eval("(" + data + ")"); |
---|
484 | if(Fromdata.mailbox){ |
---|
485 | //just one address to pharse: length is undefined |
---|
486 | if(typeof(Fromdata.mailbox.length) == 'undefined'){ |
---|
487 | var objfrom = Fromdata.mailbox; |
---|
488 | flag1 = 1; |
---|
489 | } |
---|
490 | else{ |
---|
491 | var objfrom = Fromdata.mailbox[0]; |
---|
492 | flag1 = 2; |
---|
493 | } |
---|
494 | |
---|
495 | if(objfrom["@name"] != 'null') |
---|
496 | var dataName = (objfrom["@name"]); |
---|
497 | else |
---|
498 | var dataName = ""; |
---|
499 | |
---|
500 | if(objfrom["@localPart"] != 'null') |
---|
501 | var dataEmailPart = (objfrom["@localPart"]); |
---|
502 | else |
---|
503 | var dataEmailpart = ""; |
---|
504 | |
---|
505 | if(objfrom["@domain"] != 'null') |
---|
506 | var dataEmailDomain = (objfrom["@domain"]); |
---|
507 | else |
---|
508 | var dataEmailDomain = ""; |
---|
509 | |
---|
510 | if(dataEmailDomain != "") |
---|
511 | var dataEmail = dataEmailPart + '@' + dataEmailDomain; |
---|
512 | else |
---|
513 | var dataEmail = dataEmailPart; |
---|
514 | |
---|
515 | if(dataName == '') |
---|
516 | tplFrom = dataEmail; |
---|
517 | else |
---|
518 | tplFrom = '\"'+dataName+'\" <'+dataEmail+'>' |
---|
519 | |
---|
520 | |
---|
521 | //tplFrom = dataEmail; |
---|
522 | |
---|
523 | } |
---|
524 | else{ |
---|
525 | if(Fromdata.group){ |
---|
526 | //just one address to pharse: length is undefined |
---|
527 | if(typeof(Fromdata.group.length) == 'undefined'){ |
---|
528 | if(Fromdata.group["@name"]){ |
---|
529 | var dataName = Fromdata.group["@name"]; |
---|
530 | } |
---|
531 | else |
---|
532 | var dataName = null; |
---|
533 | |
---|
534 | if(Fromdata.group["@localPart"]){ |
---|
535 | var dataEmail = Fromdata.group["@localPart"] + '@' + Fromdata.group["@domain"]; |
---|
536 | } |
---|
537 | else |
---|
538 | var dataEmail = null; |
---|
539 | |
---|
540 | if(dataName == 'null') |
---|
541 | tplFrom = dataEmail; |
---|
542 | else |
---|
543 | tplFrom = '\"'+dataName+'\" <'+dataEmail+'>' |
---|
544 | |
---|
545 | } |
---|
546 | //address list to pharse, but to header(folder list messages action), only first metters |
---|
547 | else{ |
---|
548 | var dataName = Fromdata.group[0]["@name"]; |
---|
549 | var dataEmail = Fromdata.group[0]["@localPart"] + '@' + Fromdata.group[0]["@domain"]; |
---|
550 | |
---|
551 | if(dataName == 'null') |
---|
552 | tplFrom = dataEmail; |
---|
553 | else |
---|
554 | tplFrom = '\"'+dataName+'\" <'+dataEmail+'>' |
---|
555 | } |
---|
556 | } |
---|
557 | //Data adrress from mailbox is empty, null, or canot be correctly returned by service invocation (will return 'unknow mailbox' string) |
---|
558 | else { |
---|
559 | tplFrom = 'N;'; |
---|
560 | return(''); |
---|
561 | } |
---|
562 | } |
---|
563 | } |
---|
564 | else{ |
---|
565 | tplFrom = 'N;'; |
---|
566 | return('') |
---|
567 | } |
---|
568 | return('s:8:"reply_to";s:' + tplFrom.length + ':"' + tplFrom + '";'); |
---|
569 | } |
---|
570 | |
---|
571 | MAPattern.prototype.toExpressoSearchFrom = function(data){ |
---|
572 | if((typeof(data) != 'undefined') && (data.length > 0)){ |
---|
573 | |
---|
574 | if((typeof(data) != 'string') || (data.indexOf("{") == -1)){ |
---|
575 | var objMsg = expresso_mail_archive.getMessageServiceObject(data); |
---|
576 | var attData = objMsg.getFrom(); |
---|
577 | var Fromdata = attData ? eval("(" + attData + ")") : null; |
---|
578 | if (Fromdata == null) |
---|
579 | return('N;'); |
---|
580 | } |
---|
581 | else{ |
---|
582 | var Fromdata = data ? eval("(" + data + ")") : null; |
---|
583 | if (Fromdata == null) |
---|
584 | return('N;'); |
---|
585 | } |
---|
586 | |
---|
587 | //var Fromdata = eval("(" + data + ")"); |
---|
588 | if(Fromdata.mailbox){ |
---|
589 | //just one address to pharse: length is undefined |
---|
590 | if(typeof(Fromdata.mailbox.length) == 'undefined'){ |
---|
591 | var objfrom = Fromdata.mailbox; |
---|
592 | } |
---|
593 | else{ |
---|
594 | var objfrom = Fromdata.mailbox[0]; |
---|
595 | } |
---|
596 | |
---|
597 | if(objfrom["@name"] != 'null') |
---|
598 | var tplSearchFrom = (objfrom["@name"]); |
---|
599 | else{ |
---|
600 | if(objfrom["@localPart"] != 'null') |
---|
601 | var dataEmailPart = (objfrom["@localPart"]); |
---|
602 | else |
---|
603 | var dataEmailpart = ""; |
---|
604 | |
---|
605 | if(objfrom["@domain"] != 'null') |
---|
606 | var dataEmailDomain = (objfrom["@domain"]); |
---|
607 | else |
---|
608 | var dataEmailDomain = ""; |
---|
609 | |
---|
610 | if(dataEmailDomain != "") |
---|
611 | var tplSearchFrom = dataEmailPart + '@' + dataEmailDomain; |
---|
612 | else |
---|
613 | var tplSearchFrom = dataEmailPart; |
---|
614 | } |
---|
615 | } |
---|
616 | else{ |
---|
617 | if(Fromdata.group){ |
---|
618 | //just one address to pharse: length is undefined |
---|
619 | if(typeof(Fromdata.group.length) == 'undefined'){ |
---|
620 | if(Fromdata.group["@name"]){ |
---|
621 | var tplSearchFrom = Fromdata.group["@name"]; |
---|
622 | } |
---|
623 | else{ |
---|
624 | |
---|
625 | if(Fromdata.group["@localPart"]){ |
---|
626 | var tplSearchFrom = Fromdata.group["@localPart"] + '@' + Fromdata.group["@domain"]; |
---|
627 | } |
---|
628 | else |
---|
629 | var tplSearchFrom = null; |
---|
630 | } |
---|
631 | |
---|
632 | } |
---|
633 | //address list to pharse, but to header(folder list messages action), only first metters |
---|
634 | else{ |
---|
635 | var dataName = Fromdata.group[0]["@name"]; |
---|
636 | var dataEmail = Fromdata.group[0]["@localPart"] + '@' + Fromdata.group[0]["@domain"]; |
---|
637 | if(dataName == 'null') |
---|
638 | var tplSearchFrom = dataEmail; |
---|
639 | else |
---|
640 | var tplSearchFrom = dataName; |
---|
641 | } |
---|
642 | |
---|
643 | } |
---|
644 | } |
---|
645 | } |
---|
646 | else{ |
---|
647 | var tplSearchFrom = 'N;'; |
---|
648 | } |
---|
649 | //window.alert('from search = ' + tplSearchFrom); |
---|
650 | return(tplSearchFrom); |
---|
651 | } |
---|
652 | |
---|
653 | |
---|
654 | MAPattern.prototype.toExpressoSubject = function(data){ |
---|
655 | if((typeof(data) != 'undefined') && (data.length > 0)){ |
---|
656 | var tplSbj = 's:'+data.length+':"'+data+'";' |
---|
657 | } |
---|
658 | //Subject is empty, null, or canot be correctly returned by service invocation (will return 'Message without subject' string) |
---|
659 | else { |
---|
660 | tplSbj = 's:25:"[Message without subject]";'; |
---|
661 | } |
---|
662 | return(tplSbj); |
---|
663 | } |
---|
664 | |
---|
665 | MAPattern.prototype.toExpressoPreview = function(data){ |
---|
666 | //var objMsg = expresso_mail_archive.getMessageServiceObject(data); |
---|
667 | var prwData = data; |
---|
668 | |
---|
669 | |
---|
670 | if(prwData){ |
---|
671 | if((typeof(prwData) != 'undefined') && (prwData.length > 0)){ |
---|
672 | var tplSbj = 's:'+prwData.length+':"'+prwData+'";' |
---|
673 | } |
---|
674 | else { |
---|
675 | tplSbj = 's:1:" ";'; |
---|
676 | } |
---|
677 | } |
---|
678 | else |
---|
679 | tplSbj = 's:1:" ";'; |
---|
680 | return(tplSbj); |
---|
681 | } |
---|
682 | |
---|
683 | MAPattern.prototype.toExpressoAttachmentsHeader = function(data){ |
---|
684 | if((typeof(data) != 'undefined') && (data.length > 2)){ |
---|
685 | var Attdata = eval("(" + data + ")"); |
---|
686 | if(typeof(Attdata.attachment) != 'undefined'){ |
---|
687 | var tplAttatch = 'a:2:{' |
---|
688 | + 's:5:"names";'; |
---|
689 | //More than 1 attachment - because length will be 'undefined' if just one exists |
---|
690 | if(Attdata.attachment.length > 0){ |
---|
691 | var strnamesatt = ""; |
---|
692 | for(var x=0; x<Attdata.attachment.length; x++){ |
---|
693 | var attId = Attdata.attachment[x]["@id"]; |
---|
694 | var attName = Attdata.attachment[x]["@name"]; |
---|
695 | var attSize = Attdata.attachment[x]["@size"]; |
---|
696 | var attMediaType = Attdata.attachment[x]["@mediaType"]; |
---|
697 | var attSubType = Attdata.attachment[x]["@subType"]; |
---|
698 | var attEncoding = Attdata.attachment[x]["@encoding"]; |
---|
699 | |
---|
700 | strnamesatt += attName + ', '; |
---|
701 | } |
---|
702 | strnamesatt = strnamesatt.substr(0, strnamesatt.length-2); |
---|
703 | var intnumberatt = Attdata.attachment.length; |
---|
704 | } |
---|
705 | //Just one attachment |
---|
706 | else{ |
---|
707 | var attId = Attdata.attachment["@id"]; |
---|
708 | var attName = Attdata.attachment["@name"]; |
---|
709 | var attSize = Attdata.attachment["@size"]; |
---|
710 | var attMediaType = Attdata.attachment["@mediaType"]; |
---|
711 | var attSubType = Attdata.attachment["@subType"]; |
---|
712 | var attEncoding = Attdata.attachment["@encoding"]; |
---|
713 | strnamesatt = attName; |
---|
714 | var intnumberatt = 1; |
---|
715 | } |
---|
716 | |
---|
717 | tplAttatch += 's:'+strnamesatt.length+':"'+strnamesatt+'";' |
---|
718 | + 's:18:"number_attachments";i:' +intnumberatt+';' |
---|
719 | + '}'; |
---|
720 | } |
---|
721 | else { |
---|
722 | tplAttatch = 'a:2:{s:5:"names";b:0;s:18:"number_attachments";i:0;}'; |
---|
723 | } |
---|
724 | } |
---|
725 | //No attatch data |
---|
726 | else { |
---|
727 | tplAttatch = 'a:2:{s:5:"names";b:0;s:18:"number_attachments";i:0;}'; |
---|
728 | } |
---|
729 | return(tplAttatch); |
---|
730 | } |
---|
731 | |
---|
732 | MAPattern.prototype.toExpressoDate = function(data){ |
---|
733 | var ndate = new Date(data); |
---|
734 | var odate = zeroFill(ndate.getDate()) + '/' + zeroFill(ndate.getMonth()+1) + '/' + zeroFill(ndate.getFullYear() + ' ' + zeroFill(ndate.getHours()) + ':' + zeroFill(ndate.getMinutes()) + ':' + zeroFill(ndate.getSeconds())); |
---|
735 | return(odate); |
---|
736 | } |
---|
737 | |
---|
738 | MAPattern.prototype.toExpressoFlags = function(data){ |
---|
739 | if((data.length > 0) && (typeof(data) != 'undefined')){ |
---|
740 | var Tagdata = eval("(" + data + ")"); |
---|
741 | if(typeof(Tagdata.tag) != 'undefined'){ |
---|
742 | //More than 1 attachment: length will be 'undefined' if just one exists |
---|
743 | if(Tagdata.tag.length >= 0){ |
---|
744 | var strnamestag = ""; |
---|
745 | for(var x=0; x<Tagdata.tag.length; x++){ |
---|
746 | var tagvalue = Tagdata.tag[x]["@value"]; |
---|
747 | if(tagvalue.toLowerCase() == 'recent') |
---|
748 | strnamestag += 's:6:"Recent";s:1:"N";'; |
---|
749 | if(tagvalue.toLowerCase() == 'unseen') |
---|
750 | strnamestag += 's:6:"Unseen";s:1:"U";'; |
---|
751 | if(tagvalue.toLowerCase() == 'seen') |
---|
752 | strnamestag += 's:6:"Unseen";s:1:" ";'; |
---|
753 | if(tagvalue.toLowerCase() == 'deleted') |
---|
754 | strnamestag += 's:7:"Deleted";s:1:"D";'; |
---|
755 | if(tagvalue.toLowerCase() == 'answered') |
---|
756 | strnamestag += 's:8:"Answered";s:1:"A";'; |
---|
757 | if(tagvalue.toLowerCase() == 'unanswered') |
---|
758 | strnamestag += 's:8:"Answered";s:1:" ";'; |
---|
759 | if(tagvalue.toLowerCase() == 'forwarded') |
---|
760 | strnamestag += 's:9:"Forwarded";s:1:"F";'; |
---|
761 | if(tagvalue.toLowerCase() == 'draft') |
---|
762 | strnamestag += 's:5:"Draft";s:1:"X";'; |
---|
763 | if(tagvalue.toLowerCase() == 'importance_high') |
---|
764 | strnamestag += 's:10:"Importance";s:4:"High";'; |
---|
765 | if(tagvalue.toLowerCase() == 'flagged') |
---|
766 | strnamestag += 's:7:"Flagged";s:1:"F";'; |
---|
767 | if(tagvalue.toLowerCase() == 'unflagged') |
---|
768 | strnamestag += 's:7:"Flagged";b:0;'; |
---|
769 | } |
---|
770 | var tplTags = strnamestag; |
---|
771 | } |
---|
772 | |
---|
773 | else{ |
---|
774 | var strnamestag = ""; |
---|
775 | var tagvalue = Tagdata.tag["@value"]; |
---|
776 | if(tagvalue.toLowerCase() == 'recent') |
---|
777 | strnamestag += 's:6:"Recent";s:1:"N";'; |
---|
778 | if(tagvalue.toLowerCase() == 'unseen') |
---|
779 | strnamestag += 's:6:"Unseen";s:1:"U";'; |
---|
780 | if(tagvalue.toLowerCase() == 'seen') |
---|
781 | strnamestag += 's:6:"Unseen";s:1:" ";'; |
---|
782 | if(tagvalue.toLowerCase() == 'deleted') |
---|
783 | strnamestag += 's:7:"Deleted";s:1:"D";'; |
---|
784 | if(tagvalue.toLowerCase() == 'answered') |
---|
785 | strnamestag += 's:8:"Answered";s:1:"A";'; |
---|
786 | if(tagvalue.toLowerCase() == 'unanswered') |
---|
787 | strnamestag += 's:8:"Answered";s:1:" ";'; |
---|
788 | if(tagvalue.toLowerCase() == 'forwarded') |
---|
789 | strnamestag += 's:9:"Forwarded";s:1:"F";'; |
---|
790 | if(tagvalue.toLowerCase() == 'draft') |
---|
791 | strnamestag += 's:5:"Draft";s:1:"X";'; |
---|
792 | if(tagvalue.toLowerCase() == 'importance_high') |
---|
793 | strnamestag += 's:10:"Importance";s:4:"High";'; |
---|
794 | if(tagvalue.toLowerCase() == 'flagged') |
---|
795 | strnamestag += 's:7:"Flagged";s:1:"F";'; |
---|
796 | if(tagvalue.toLowerCase() == 'unflagged') |
---|
797 | strnamestag += 's:7:"Flagged";b:0;'; |
---|
798 | var tplTags = strnamestag; |
---|
799 | } |
---|
800 | } |
---|
801 | //Something is wrong with tags: return defaults is no one tag |
---|
802 | else{ |
---|
803 | tplTags = 's:6:"Recent";s:1:" ";s:6:"Unseen";s:1:" ";s:7:"Deleted";s:1:" ";s:8:"Answered";s:1:" ";s:9:"Forwarded";s:1:" ";s:5:"Draft";s:1:" ";s:10:"Importance";s:6:"Normal";s:7:"Flagged";b:0;'; |
---|
804 | } |
---|
805 | return(tplTags); |
---|
806 | } |
---|
807 | } |
---|
808 | |
---|
809 | MAPattern.prototype.toExpressoSearchFlags = function(data){ |
---|
810 | if((data.length > 0) && (typeof(data) != 'undefined')){ |
---|
811 | var Tagdata = eval("(" + data + ")"); |
---|
812 | if(typeof(Tagdata.tag) != 'undefined'){ |
---|
813 | //More than 1 attachment: length will be 'undefined' if just one exists |
---|
814 | var tflagged = false; |
---|
815 | if(Tagdata.tag.length >= 0){ |
---|
816 | var strnamestag = ''; |
---|
817 | for(var x=0; x<Tagdata.tag.length; x++){ |
---|
818 | var tagvalue = Tagdata.tag[x]["@value"]; |
---|
819 | if(tagvalue.toLowerCase() == 'recent') |
---|
820 | strnamestag += 'N'; |
---|
821 | if(tagvalue.toLowerCase() == 'unseen') |
---|
822 | strnamestag += 'U'; |
---|
823 | if(tagvalue.toLowerCase() == 'draft') |
---|
824 | strnamestag += 'X'; |
---|
825 | if(tagvalue.toLowerCase() == 'answered') |
---|
826 | strnamestag += 'A'; |
---|
827 | if(tagvalue.toLowerCase() == 'flagged') |
---|
828 | tflagged = true; |
---|
829 | if((tagvalue.toLowerCase() == 'importance_high') || tflagged) |
---|
830 | strnamestag += 'F'; |
---|
831 | } |
---|
832 | var tplTags = strnamestag; |
---|
833 | } |
---|
834 | |
---|
835 | else{ |
---|
836 | var strnamestag = ""; |
---|
837 | var tflagged = false; |
---|
838 | var tagvalue = Tagdata.tag["@value"]; |
---|
839 | if(tagvalue.toLowerCase() == 'recent') |
---|
840 | strnamestag += 'N'; |
---|
841 | if(tagvalue.toLowerCase() == 'unseen') |
---|
842 | strnamestag += 'U'; |
---|
843 | if(tagvalue.toLowerCase() == 'draft') |
---|
844 | strnamestag += 'X'; |
---|
845 | /*if(tagvalue.toLowerCase() == 'importance_high') |
---|
846 | strnamestag += 'F'; |
---|
847 | if(tagvalue.toLowerCase().indexOf('flagged')!= -1) |
---|
848 | strnamestag += 'F';*/ |
---|
849 | if(tagvalue.toLowerCase() == 'flagged') |
---|
850 | tflagged = true; |
---|
851 | if((tagvalue.toLowerCase() == 'importance_high') && tflagged) |
---|
852 | strnamestag += 'F'; |
---|
853 | var tplTags = strnamestag; |
---|
854 | } |
---|
855 | var tplSearchTags = 's:4:"flag";s:' + tplTags.length + ':"' + tplTags + '";' |
---|
856 | } |
---|
857 | //Something is wrong with tags: return defaults is no one tag |
---|
858 | else{ |
---|
859 | var tplSearchTags = 's:4:"flag";s:1:" ";'; |
---|
860 | } |
---|
861 | //window.alert('tags to search data\n' + tplSearchTags); |
---|
862 | return(tplSearchTags); |
---|
863 | } |
---|
864 | } |
---|
865 | |
---|
866 | MAPattern.prototype.toExpressoHeader = function(data){ |
---|
867 | var tplHeader = 'a:40:{' |
---|
868 | + 's:11:"ContentType";' |
---|
869 | + 's:' + data.getContentType().length + ':"' + data.getContentType() + '";' |
---|
870 | + expresso_mail_archive.pattern.toExpressoFlags(data.getTags()) |
---|
871 | + 's:10:"msg_number";' |
---|
872 | + 's:'+data.getId().length+':"'+data.getId()+'";' |
---|
873 | + 's:5:"udate";' |
---|
874 | + 'i:' + parseInt(data.getDate()/1000) + ';' |
---|
875 | + 's:9:"timestamp";' |
---|
876 | + 'i:' + parseInt(data.getDate()/1000) + ';' |
---|
877 | + 's:4:"from";' |
---|
878 | + expresso_mail_archive.pattern.toExpressoAddress(data.getFrom()) |
---|
879 | //+ 's:6:"sender":' xpresso_mail_archive.pattern.toExpressoSender(expresso_mail_archive.currentmessage) |
---|
880 | + 's:2:"to";' |
---|
881 | + expresso_mail_archive.pattern.toExpressoAddress(data.getTo()) |
---|
882 | + expresso_mail_archive.pattern.toExpressoAddress2(data.getTo()) |
---|
883 | + 's:2:"cc";' |
---|
884 | + expresso_mail_archive.pattern.toExpressoCc(data.getCc()) |
---|
885 | + 's:3:"bcc";' |
---|
886 | + expresso_mail_archive.pattern.toExpressoCc(data.getBcc()) |
---|
887 | + 's:7:"subject";' |
---|
888 | + expresso_mail_archive.pattern.toExpressoSubject(data.getSubject()) |
---|
889 | + 's:4:"Size";' |
---|
890 | + 'i:'+data.getSize()+';' |
---|
891 | + 's:10:"msg_sample";' + expresso_mail_archive.pattern.toExpressoPreview(data.getPreview()) |
---|
892 | + 's:10:"attachment";' |
---|
893 | + expresso_mail_archive.pattern.toExpressoAttachmentsHeader(data.getAttachments()) |
---|
894 | + '}'; |
---|
895 | return(tplHeader); |
---|
896 | } |
---|
897 | |
---|
898 | MAPattern.prototype.toExpressoSearchHeader = function(data){ |
---|
899 | //var accid = new String(account_id); |
---|
900 | var accid = new String(data.getId()); |
---|
901 | //var fdata = data.getFolderId(); |
---|
902 | var fdata = data.getFolderPath(); |
---|
903 | var fname = fdata; |
---|
904 | |
---|
905 | var tplHeader = 'a:16:{' |
---|
906 | + 's:11:"ContentType";' |
---|
907 | + 's:' + data.getContentType().length + ':"' + data.getContentType() + '";' |
---|
908 | + expresso_mail_archive.pattern.toExpressoSearchFlags(data.getTags()) |
---|
909 | + 's:10:"msg_number";' |
---|
910 | + 's:'+data.getId().length+':"'+data.getId()+'";' |
---|
911 | + 's:5:"udate";' |
---|
912 | + 'i:' + parseInt(data.getDate()/1000) + ';' |
---|
913 | + 's:9:"timestamp";' |
---|
914 | + 'i:' + parseInt(data.getDate()/1000) + ';' |
---|
915 | + 's:4:"from";' |
---|
916 | + 's:' + expresso_mail_archive.pattern.toExpressoSearchFrom(data.getFrom()).length + ':"' + expresso_mail_archive.pattern.toExpressoSearchFrom(data.getFrom()) + '";' |
---|
917 | //+ 's:6:"sender":' expresso_mail_archive.pattern.toExpressoSender(expresso_mail_archive.currentmessage) |
---|
918 | + 's:2:"to";' |
---|
919 | + expresso_mail_archive.pattern.toExpressoAddress(data.getTo()) |
---|
920 | + expresso_mail_archive.pattern.toExpressoAddress2(data.getTo()) |
---|
921 | + 's:2:"cc";' |
---|
922 | + expresso_mail_archive.pattern.toExpressoCc(data.getCc()) |
---|
923 | + 's:3:"bcc";' |
---|
924 | + expresso_mail_archive.pattern.toExpressoCc(data.getBcc()) |
---|
925 | + 's:7:"subject";' |
---|
926 | + expresso_mail_archive.pattern.toExpressoSubject(data.getSubject()) |
---|
927 | + 's:4:"size";' |
---|
928 | + 'i:'+data.getSize()+';' |
---|
929 | + 's:3:"uid";' |
---|
930 | + 's:'+ accid.length + ':"' + accid + '";' |
---|
931 | + 's:7:"boxname";' |
---|
932 | + 's:'+(fname.length + 6)+':"local_' + fname + '";' |
---|
933 | + 's:10:"msg_sample";' + expresso_mail_archive.pattern.toExpressoPreview(data.getPreview()) |
---|
934 | + 's:10:"attachment";' |
---|
935 | + expresso_mail_archive.pattern.toExpressoAttachmentsHeader(data.getAttachments()) |
---|
936 | + '}'; |
---|
937 | |
---|
938 | //window.alert('return from TplSearchHeader:\n' + tplHeader); |
---|
939 | |
---|
940 | return(tplHeader); |
---|
941 | } |
---|
942 | |
---|
943 | /* |
---|
944 | MAPattern.prototype.toExpressoBody = function(mheader){ |
---|
945 | var tplBody = 'a:33:{' |
---|
946 | + 's:4:"body";N;' |
---|
947 | + 's:11:"attachments";N;' |
---|
948 | + 's:6:"thumbs";N;' |
---|
949 | + 's:9:"signature";N;' |
---|
950 | + 's:10:"Importance";s:6:"Normal";' |
---|
951 | + 's:6:"Recent";s:1:" ";' |
---|
952 | + 's:6:"Unseen";s:1:"N";' |
---|
953 | + 's:7:"Deleted";s:1:" ";' |
---|
954 | + 's:7:"Flagged";b:0;' |
---|
955 | + 's:8:"Answered";s:1:" ";' |
---|
956 | + 's:5:"Draft";s:1:" ";' |
---|
957 | + 's:10:"msg_number";s:4:"2241";' |
---|
958 | + 's:10:"msg_folder";s:5:"INBOX";' |
---|
959 | + 's:5:"udate";s:5:"10:01";' |
---|
960 | + 's:7:"msg_day";s:10:"10/05/2011";' |
---|
961 | + 's:8:"msg_hour";s:5:"10:02";' |
---|
962 | + 's:8:"fulldate";s:36:"10/05/2011 10:01 (05:35 horas atras)";' |
---|
963 | + 's:9:"smalldate";s:5:"10:04";' |
---|
964 | + 's:4:"from";N;' |
---|
965 | + 's:6:"sender";a:3:{' |
---|
966 | + 's:4:"name";N;' |
---|
967 | + 's:5:"email";s:46:"listaregional-pae-bounces@grupos.serpro.gov.br";' |
---|
968 | + 's:4:"full";s:46:"listaregional-pae-bounces@grupos.serpro.gov.br";' |
---|
969 | + '}' |
---|
970 | + 's:10:"toaddress2";s:32:"comunicacao.social@serpro.gov.br";' |
---|
971 | + 's:2:"cc";N;' |
---|
972 | + 's:3:"bcc";N;' |
---|
973 | + 's:8:"reply_to";N;' |
---|
974 | + 's:7:"subject";N;' |
---|
975 | + 's:4:"Size";s:4:"1234";' |
---|
976 | + 's:15:"reply_toaddress";s:45:"com.social <comunicacao.social@serpro.gov.br>";' |
---|
977 | + 's:9:"timestamp";i:1305032476;' |
---|
978 | + 's:5:"login";i:944889240;' |
---|
979 | + 's:6:"header";a:16:{' |
---|
980 | + 's:11:"ContentType";s:6:"normal";' |
---|
981 | + 's:10:"Importance";s:6:"Normal";' |
---|
982 | + 's:6:"Recent";s:1:" ";' |
---|
983 | + 's:6:"Unseen";s:1:"N";' |
---|
984 | + 's:8:"Answered";s:1:" ";' |
---|
985 | + 's:5:"Draft";s:1:" ";' |
---|
986 | + 's:7:"Deleted";s:1:" ";' |
---|
987 | + 's:7:"Flagged";b:0;' |
---|
988 | + 's:10:"msg_number";s:4:"2251";' |
---|
989 | + 's:5:"udate";s:10:"10/05/2011";' |
---|
990 | + 's:11:"offsetToGMT";i:-10800;' |
---|
991 | + 's:8:"aux_date";N;' |
---|
992 | + 's:4:"from";a:2:{' |
---|
993 | + 's:4:"name";s:10:"com.social";' |
---|
994 | + 's:5:"email";s:32:"comunicacao.social@serpro.gov.br";' |
---|
995 | + '}' |
---|
996 | + 's:2:"to";a:2:{' |
---|
997 | + 's:4:"name";s:32:"comunicacao.social@serpro.gov.br";' |
---|
998 | + 's:5:"email";s:32:"comunicacao.social@serpro.gov.br";' |
---|
999 | + '}' |
---|
1000 | + 's:7:"subject";s:28:"Primeira leitura - 10/5/2011";' |
---|
1001 | + 's:4:"Size";N;' |
---|
1002 | + 's:10:"attachment";a:2:{' |
---|
1003 | + 's:5:"names";b:0;' |
---|
1004 | + 's:18:"number_attachments";i:0;' |
---|
1005 | + '}' |
---|
1006 | + '}' |
---|
1007 | + 's:12:"array_attach";N;' |
---|
1008 | + 's:15:"url_export_file";s:160:"inc/gotodownload.php?idx_file=/var/www/expressov2/expressoMail1_2/inc/../tmpLclAtt/source_38a3e960115351578aa182ae1d6c2b7b.txt&newfilename=fonte_da_mensagem.txt";' |
---|
1009 | + 's:2:"to";N;' |
---|
1010 | + '}'; |
---|
1011 | return(tplBody); |
---|
1012 | } |
---|
1013 | */ |
---|
1014 | |
---|
1015 | MAPattern.prototype.toExpressoMailDataHeader = function(msgid){ |
---|
1016 | var tplHMail = ""; |
---|
1017 | var tmpHead = expresso_mail_archive.getMessageHeaders(msgid); |
---|
1018 | return tplHMail; |
---|
1019 | } |
---|
1020 | |
---|
1021 | MAPattern.prototype.toExpressoMailData = function(msg){ |
---|
1022 | var tplBMail = ""; |
---|
1023 | |
---|
1024 | return(tplBMail); |
---|
1025 | } |
---|
1026 | |
---|
1027 | MAPattern.prototype.toExpressoMailAttachment = function(att){ |
---|
1028 | var objMsg = expresso_mail_archive.getMessageServiceObject(att); |
---|
1029 | var attData = objMsg.getAttachments(); |
---|
1030 | var objAtt = eval("(" + attData + ")"); |
---|
1031 | var srlData = ""; |
---|
1032 | |
---|
1033 | //There are attachments |
---|
1034 | if(typeof(objAtt.attachment) != 'undefined'){ |
---|
1035 | if(typeof(objAtt.attachment.length) != 'undefined'){ |
---|
1036 | srlData = 's:11:"attachments";a:' + objAtt.attachment.length + ':{'; |
---|
1037 | for(var m=0; m<objAtt.attachment.length; m++){ |
---|
1038 | srlData += 's:1:"' + m + '";' |
---|
1039 | + 'a:4:{' |
---|
1040 | + 's:3:"pid";s:' + objAtt.attachment[m]["@id"].length + ':"' + objAtt.attachment[m]["@id"] + '";' |
---|
1041 | + 's:4:"name";s:' + objAtt.attachment[m]["@name"].length + ':"' + objAtt.attachment[m]["@name"] + '";' |
---|
1042 | + 's:8:"encoding";s:' + objAtt.attachment[m]["@encoding"].length + ':"' + objAtt.attachment[m]["@encoding"] + '";' |
---|
1043 | + 's:5:"fsize";i:' + objAtt.attachment[m]["@size"] + ';' |
---|
1044 | + '}'; |
---|
1045 | } |
---|
1046 | } |
---|
1047 | //just one att |
---|
1048 | else{ |
---|
1049 | srlData = 's:11:"attachments";a:1:{'; |
---|
1050 | srlData += 's:1:"0";' |
---|
1051 | + 'a:4:{' |
---|
1052 | + 's:3:"pid";s:' + objAtt.attachment["@id"].length + ':"' + objAtt.attachment["@id"] + '";' |
---|
1053 | + 's:4:"name";s:' + objAtt.attachment["@name"].length + ':"' + objAtt.attachment["@name"] + '";' |
---|
1054 | + 's:8:"encoding";s:' + objAtt.attachment["@encoding"].length + ':"' + objAtt.attachment["@encoding"] + '";' |
---|
1055 | + 's:5:"fsize";i:' + objAtt.attachment["@size"] + ';' |
---|
1056 | + '}'; |
---|
1057 | } |
---|
1058 | srlData += '}'; |
---|
1059 | } |
---|
1060 | //No attachments data |
---|
1061 | else{ |
---|
1062 | srlData = 's:11:"attachments";N;'; |
---|
1063 | } |
---|
1064 | return(srlData); |
---|
1065 | } |
---|
1066 | |
---|
1067 | MAPattern.prototype.toExpressoMailThumbs = function(thb){ |
---|
1068 | var objMsg = expresso_mail_archive.getMessageServiceObject(thb); |
---|
1069 | var attData = objMsg.getAttachments(); |
---|
1070 | var objAtt = eval("(" + attData + ")"); |
---|
1071 | var srlData = ""; |
---|
1072 | var arrThumbs = new Array(); |
---|
1073 | if(typeof(objAtt.attachment) != 'undefined'){ |
---|
1074 | //more than 1 att |
---|
1075 | if(typeof(objAtt.attachment.length) != 'undefined'){ |
---|
1076 | for(var m=0; m<objAtt.attachment.length; m++){ |
---|
1077 | //Only images has thums |
---|
1078 | if(objAtt.attachment[m]["@mediaType"].toLowerCase() == 'image') |
---|
1079 | arrThumbs.push(objAtt.attachment[m]); |
---|
1080 | } |
---|
1081 | } |
---|
1082 | //just one att data |
---|
1083 | else{ |
---|
1084 | if(objAtt.attachment["@mediaType"].toLowerCase() == 'image') |
---|
1085 | arrThumbs.push(objAtt.attachment); |
---|
1086 | } |
---|
1087 | //There are thumbs |
---|
1088 | if(arrThumbs.length > 0){ |
---|
1089 | srlData = 's:6:"thumbs";a:'+arrThumbs.length+':{' |
---|
1090 | for(var n=0; n<arrThumbs.length; n++){ |
---|
1091 | var thumblink = '<a onMouseDown=\'save_image(event,this,"image/'+arrThumbs[n]["@subType"]+'")\' href=\'#'+mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/temp/'+arrThumbs[n]["@id"]+'/'+arrThumbs[n]["@name"]+'\' onClick="window.open(\''+mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/temp/'+arrThumbs[n]["@id"]+'/' + arrThumbs[n]["@name"] + '\',\'mywindow\',\'width=700,height=600,scrollbars=yes\');"><IMG id=\''+arrThumbs[n]["@id"]+'\' style=\'border:2px solid #fde7bc;padding:5px\' title=\'Clique na imagem para Ampliar.\' src="'+mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/temp/'+arrThumbs[n]["@id"]+'/thumb/120/' + arrThumbs[n]["@name"] +'"></a>'; |
---|
1092 | srlData += 's:1:"'+n+'";s:'+thumblink.length+':"'+thumblink+'";' |
---|
1093 | } |
---|
1094 | srlData += '}'; |
---|
1095 | } |
---|
1096 | //No thumbs |
---|
1097 | else |
---|
1098 | srlData = 's:6:"thumbs";N;'; |
---|
1099 | } |
---|
1100 | //Something is wrong with attachments thumb behavior: return no thumbs |
---|
1101 | else{ |
---|
1102 | srlData = 's:6:"thumbs";N;'; |
---|
1103 | } |
---|
1104 | return(srlData); |
---|
1105 | } |
---|
1106 | |
---|
1107 | MAPattern.prototype.toExpressoMailSignature = function(sgn){ |
---|
1108 | return('s:9:"signature";N;'); |
---|
1109 | } |
---|
1110 | |
---|
1111 | MAPattern.prototype.toExpressoMailBaseHeaders = function(hdr){ |
---|
1112 | var defMailHeaders = {'recent':' ','unseen': ' ','deleted': ' ','answered': ' ','draft': ' ','flagged': ' '}; |
---|
1113 | var objMsg = expresso_mail_archive.getMessageServiceObject(hdr); |
---|
1114 | var tagData = objMsg.getTags(); |
---|
1115 | var objTag = eval('(' + tagData + ')'); |
---|
1116 | var tplHMail = ""; |
---|
1117 | |
---|
1118 | if(objTag.tag){ |
---|
1119 | //More than 1 attachment - because length will be 'undefined' if just one exists |
---|
1120 | if(objTag.tag.length >= 0){ |
---|
1121 | |
---|
1122 | //flaggs the tags |
---|
1123 | for(var k=0; k<objTag.tag.length; k++){ |
---|
1124 | for(var j in defMailHeaders){ |
---|
1125 | var tagvalue = objTag.tag[k]["@value"].toLowerCase(); |
---|
1126 | if((tagvalue == j) && (defMailHeaders[j] != true)) |
---|
1127 | defMailHeaders[j] = true; |
---|
1128 | else |
---|
1129 | defMailHeaders[j] = false; |
---|
1130 | } |
---|
1131 | } |
---|
1132 | |
---|
1133 | //serialize all needed headers |
---|
1134 | if(defMailHeaders["recent"] == true) |
---|
1135 | tplHMail += 's:6:"Recent";s:1:"N";'; |
---|
1136 | else |
---|
1137 | tplHMail += 's:6:"Recent";s:1:" ";'; |
---|
1138 | if(defMailHeaders["unseen"] == true) |
---|
1139 | tplHMail += 's:6:"Unseen";s:1:"U";'; |
---|
1140 | else |
---|
1141 | tplHMail += 's:6:"Unseen";s:1:" ";'; |
---|
1142 | if(defMailHeaders["deleted"] == true) |
---|
1143 | tplHMail += 's:7:"Deleted";s:1:"D";'; |
---|
1144 | else |
---|
1145 | tplHMail += 's:7:"Deleted";s:1:" ";'; |
---|
1146 | if(defMailHeaders["answered"] == true) |
---|
1147 | tplHMail += 's:8:"Answered";s:1:"A";'; |
---|
1148 | else |
---|
1149 | tplHMail += 's:8:"Answered";s:1:" ";'; |
---|
1150 | if(defMailHeaders["draft"] == true) |
---|
1151 | tplHMail += 's:5:"Draft";s:1:"X";'; |
---|
1152 | else |
---|
1153 | tplHMail += 's:5:"Draft";s:1:" ";'; |
---|
1154 | if(defMailHeaders["flagged"] == true) |
---|
1155 | tplHMail += 's:7:"Flagged";s:1:"F";'; |
---|
1156 | else |
---|
1157 | tplHMail += 's:7:"Flagged";s:1:" ";'; |
---|
1158 | } |
---|
1159 | } |
---|
1160 | |
---|
1161 | //No header to tag |
---|
1162 | else{ |
---|
1163 | tplHMail += 's:6:"Recent";s:1:" ";'; |
---|
1164 | tplHMail += 's:6:"Unseen";s:1:" ";'; |
---|
1165 | tplHMail += 's:7:"Deleted";s:1:" ";'; |
---|
1166 | tplHMail += 's:8:"Answered";s:1:" ";'; |
---|
1167 | tplHMail += 's:5:"Draft";s:1:" ";'; |
---|
1168 | tplHMail += 's:7:"Flagged";s:1:" ";'; |
---|
1169 | } |
---|
1170 | return tplHMail; |
---|
1171 | } |
---|
1172 | |
---|
1173 | MAPattern.prototype.toExpressoMailArrayAttach = function(att){ |
---|
1174 | var objMsg = expresso_mail_archive.getMessageServiceObject(att); |
---|
1175 | var attData = objMsg.getAttachments(); |
---|
1176 | var objAtt = eval("(" + attData + ")"); |
---|
1177 | var srlData = ""; |
---|
1178 | |
---|
1179 | //There are attacments, map all them |
---|
1180 | if(typeof(objAtt.attachment) != 'undefined'){ |
---|
1181 | srlData = 's:12:"array_attach";a:' + objAtt.attachment.length + ':{'; |
---|
1182 | for(var m=0; m<objAtt.attachment.length; m++){ |
---|
1183 | var urllink = mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/temp/download/'+objAtt.attachment[m]["@id"]+'/'+objAtt.attachment[m]["@name"]; |
---|
1184 | srlData += 's:1:"' + m + '";' |
---|
1185 | + 'a:3:{' |
---|
1186 | + 's:4:"name";s:' + objAtt.attachment[m]["@name"].length + ':"' + objAtt.attachment[m]["@name"] + '";' |
---|
1187 | + 's:3:"url";s:' + urllink.length + ':"' + urllink + '";' |
---|
1188 | + 's:3:"pid";s:' + objAtt.attachment[m]["@id"].length + ':"' + objAtt.attachment[m]["@id"] + '";' |
---|
1189 | + '}'; |
---|
1190 | } |
---|
1191 | srlData += '}'; |
---|
1192 | } |
---|
1193 | //No one attachment |
---|
1194 | else{ |
---|
1195 | srlData = 's:12:"array_attach";N;'; |
---|
1196 | } |
---|
1197 | return(srlData); |
---|
1198 | } |
---|
1199 | |
---|
1200 | MAPattern.prototype.toExpressoMailURLExportFile = function(path, file){ |
---|
1201 | var srlData = 's:15:"url_export_file";'; |
---|
1202 | var urllink = mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/mail/'+path+'/'+file; |
---|
1203 | srlData += 's:' + urllink.length + ':"' + urllink + '";' |
---|
1204 | return(srlData); |
---|
1205 | } |
---|
1206 | |
---|
1207 | MAPattern.prototype.toExpressoMail = function(mheader, mbody){ |
---|
1208 | var tplMessage = null; |
---|
1209 | var tplMessageData = null; |
---|
1210 | var tplMessageHeaderData = null; |
---|
1211 | |
---|
1212 | //Decodes message headers first |
---|
1213 | var hdata = mheader; |
---|
1214 | var h_date = expresso_mail_archive.pattern.toExpressoDate(mheader["udate"]*1000); |
---|
1215 | |
---|
1216 | //Init message template |
---|
1217 | tplMessage = 'a:49{s:4:"body";N;' |
---|
1218 | + expresso_mail_archive.pattern.toExpressoMailAttachment(expresso_mail_archive.currentmessage) |
---|
1219 | + expresso_mail_archive.pattern.toExpressoMailThumbs(expresso_mail_archive.currentmessage) |
---|
1220 | + expresso_mail_archive.pattern.toExpressoMailSignature(expresso_mail_archive.currentmessage) |
---|
1221 | + expresso_mail_archive.pattern.toExpressoMailBaseHeaders(expresso_mail_archive.currentmessage) |
---|
1222 | + 's:5:"udate";s:8:"' + h_date.split(" ")[1] +'";' //hours |
---|
1223 | + 's:7:"msg_day";s:10:"'+ h_date.split(" ")[0] +'";' //date |
---|
1224 | + 's:8:"msg_hour";s:8:"' + h_date.split(" ")[1] +'";' //hours |
---|
1225 | + 's:8:"fulldate";s:19:"' + h_date +'";' //full date + hours |
---|
1226 | + 's:9:"smalldate";s:8:"' + h_date.split(" ")[1] +'";' //hours |
---|
1227 | + 's:10:"msg_number";s:'+expresso_mail_archive.currentmessage.length+':"'+expresso_mail_archive.currentmessage+'";' |
---|
1228 | + 's:10:"msg_folder";s:'+(expresso_mail_archive.currentfolder.length+6)+':"local_'+expresso_mail_archive.currentfolder+'";' |
---|
1229 | + 's:4:"from";N;' |
---|
1230 | + expresso_mail_archive.pattern.toExpressoSender(expresso_mail_archive.currentmessage) |
---|
1231 | + expresso_mail_archive.pattern.toExpressoReplyTo(expresso_mail_archive.currentmessage) |
---|
1232 | + 's:10:"msg_sample";' + expresso_mail_archive.pattern.toExpressoPreview(expresso_mail_archive.currentmessage) |
---|
1233 | + expresso_mail_archive.pattern.toExpressoAddress2(expresso_mail_archive.currentmessage) |
---|
1234 | + 's:9:"timestamp";i:'+ mheader["udate"]*1000 +';' //getback the lost miliseconds... |
---|
1235 | + expresso_mail_archive.pattern.toExpressoDispositionNotificationTo(expresso_mail_archive.currentmessage) |
---|
1236 | + 's:5:"login";i:' + account_id |
---|
1237 | + 's:6:"header";' + expresso_mail_archive.pattern.toExpressoHeader(expresso_mail_archive.getMessageServiceObject(expresso_mail_archive.currentmessage)) |
---|
1238 | + expresso_mail_archive.pattern.toExpressoMailArrayAttach(expresso_mail_archive.currentmessage) |
---|
1239 | + expresso_mail_archive.pattern.toExpressoMailURLExportFile(expresso_mail_archive.currentfolder, expresso_mail_archive.currentmessage) |
---|
1240 | + 's:2:"to";N;' |
---|
1241 | + '}'; |
---|
1242 | |
---|
1243 | var strMailMessage = connector.unserialize(tplMessage); |
---|
1244 | // strMessage['from'] = mheader["from"]; |
---|
1245 | //strMessage['from'] = expresso_mail_archive.toExpressoBody(mheader, mbody); |
---|
1246 | // strMessage['subject'] = mheader["subject"]; |
---|
1247 | strMailMessage['body'] = mbody; |
---|
1248 | // strMessage['to'] = mheader["to"]; |
---|
1249 | // strMessage['cc'] = mheader["cc"]; |
---|
1250 | strMailMessage['local_message'] = true; |
---|
1251 | strMailMessage['folder'] = 'local_' + expresso_mail_archive.currentfolder; |
---|
1252 | //strMessage['msg_number'] = mheader["msg_number"]; |
---|
1253 | //strMailMessage['msg_number'] = mheader["msg_number"]; |
---|
1254 | return(strMailMessage); |
---|
1255 | } |
---|
1256 | |
---|
1257 | MAPattern.prototype.toExpressoMessage = function(mheader, mbody){ |
---|
1258 | var strMessage = null; |
---|
1259 | var strMessage1 = expresso_mail_archive.pattern.toExpressoBody(mheader); |
---|
1260 | strMessage = connector.unserialize(strMessage1); |
---|
1261 | |
---|
1262 | strMessage['from'] = mheader["from"]; |
---|
1263 | //strMessage['from'] = expresso_mail_archive.toExpressoBody(mheader, mbody); |
---|
1264 | strMessage['subject'] = mheader["subject"]; |
---|
1265 | strMessage['body'] = mbody; |
---|
1266 | strMessage['to'] = mheader["to"]; |
---|
1267 | strMessage['cc'] = mheader["cc"]; |
---|
1268 | strMessage['local_message'] = true; |
---|
1269 | strMessage['folder'] = 'local_' + expresso_mail_archive.currentfolder; |
---|
1270 | strMessage['msg_number'] = mheader["msg_number"]; |
---|
1271 | return(strMessage); |
---|
1272 | |
---|
1273 | |
---|
1274 | /* |
---|
1275 | * retorno['from'] = connector.unserialize(rs.field(2)); |
---|
1276 | retorno['subject'] = rs.field(3); |
---|
1277 | retorno['body'] = rs.field(4); |
---|
1278 | //Codigo que as imagens embutidas em emails (com multipart/related ou multipart/mixed) sejam corretamente mostradas em emails arquivados. Os links do |
---|
1279 | //tipo "./inc/show_embedded_attach.php?msg_folder=[folder]&msg_num=[msg_num]&msg_part=[part]" |
---|
1280 | //são substituidos pelos links dos anexos capturados pelo gears. |
---|
1281 | |
---|
1282 | var thumbs= retorno.thumbs; |
---|
1283 | var anexos= retorno.array_attach; |
---|
1284 | for (i in anexos) |
---|
1285 | { |
---|
1286 | if(anexos[i]['url'] && anexos[i]['url'].match(/((jpg)|(jpeg)|(png)|(gif)|(bmp))/gi)) |
---|
1287 | { |
---|
1288 | var er_imagens = new RegExp("\\.\\/inc\\/show_embedded_attach.php\\?msg_folder=[\\w/]+\\&msg_num=[0-9]+\\&msg_part="+anexos[i]['pid']); |
---|
1289 | var Result_imagens = er_imagens.exec(retorno['body']); |
---|
1290 | retorno['body'] = retorno['body'].replace(Result_imagens,anexos[i]['url']); |
---|
1291 | if(thumbs && thumbs[i]){ |
---|
1292 | er_imagens = new RegExp("\\.\\/inc\\/show_thumbs.php\\?file_type=image\\/[\\w]+\\&msg_num=[0-9]+\\&msg_folder=[\\w/%]+\\&msg_part="+anexos[i]['pid']); |
---|
1293 | Result_imagens = er_imagens.exec(thumbs[i]); |
---|
1294 | thumbs[i] = thumbs[i].replace(Result_imagens,"'"+anexos[i]['url']+"'"); |
---|
1295 | er_imagens = new RegExp("\\.\\/inc\\/show_img.php\\?msg_num=[0-9]+\\&msg_folder=[\\w/%]+\\&msg_part="+anexos[i]['pid']); |
---|
1296 | Result_imagens = er_imagens.exec(thumbs[i]); |
---|
1297 | thumbs[i] = thumbs[i].replace(Result_imagens,anexos[i]['url']); |
---|
1298 | thumbs[i] = thumbs[i].replace(/<IMG/i,'<img width="120"'); |
---|
1299 | } |
---|
1300 | } |
---|
1301 | } |
---|
1302 | |
---|
1303 | retorno['to'] = connector.unserialize(rs.field(5)); |
---|
1304 | retorno['cc'] = connector.unserialize(rs.field(6)); |
---|
1305 | |
---|
1306 | retorno['local_message'] = true; |
---|
1307 | retorno['msg_folder'] = "local_"+rs.field(7); //Now it's a local folder |
---|
1308 | retorno['msg_number'] = rs.field(0)+plus_id; //the message number is the rowid |
---|
1309 | **/ |
---|
1310 | } |
---|
1311 | |
---|
1312 | MAPattern.prototype.tagConfig = function(taglist, arcidmsg, op){ |
---|
1313 | //window.alert('no maexpressopattern.tagconfig:\n' + print_r(taglist)); |
---|
1314 | if(taglist != null){ |
---|
1315 | var tagdata = ""; |
---|
1316 | //Código comentado para evitar inconsistência de flags quando mensagens passam pela pasta rascunhos |
---|
1317 | //var flag_draft = false; |
---|
1318 | |
---|
1319 | //first message to tag data |
---|
1320 | if(expresso_mail_archive.taglist == ""){ |
---|
1321 | |
---|
1322 | //Código comentado para evitar inconsistência de flags quando mensagens passam pela pasta rascunhos |
---|
1323 | /* |
---|
1324 | Draft folder, are "draft" |
---|
1325 | if(expresso_mail_archive.folder_destination == 'drafts'){ |
---|
1326 | flag_draft = true; |
---|
1327 | tagdata += '<add value="draft"/>'; |
---|
1328 | tagdata += '<remove value="answered"/>'; |
---|
1329 | tagdata += '<remove value="forwarded"/>'; |
---|
1330 | if (typeof(taglist) == 'object'){ |
---|
1331 | for(var x in taglist[0]){ |
---|
1332 | if (x != 'importance'){ |
---|
1333 | if(( x != 'unseen') && ( x != 'answered')){ |
---|
1334 | if((taglist[0][x] != '') && (taglist[0][x] != ' ') && (taglist[0][x] != null) && (x != 'msgid')) |
---|
1335 | tagdata += '<remove value="'+x+'"/>'; |
---|
1336 | } |
---|
1337 | else{ |
---|
1338 | if( x == 'unseen'){ |
---|
1339 | if (taglist[0][x] == ' ') |
---|
1340 | tagdata += '<remove value="seen"/>'; |
---|
1341 | else |
---|
1342 | if((taglist[0][x] != '') && (taglist[0][x] != null)) |
---|
1343 | tagdata += '<remove value="unseen"/>'; |
---|
1344 | } |
---|
1345 | if( x == 'answered'){ |
---|
1346 | if (taglist[0][x] == ' ') |
---|
1347 | tagdata += '<remove value="unanswered"/>'; |
---|
1348 | else |
---|
1349 | if((taglist[0][x] != '') && (taglist[0][x] != null)) |
---|
1350 | tagdata += '<remove value="answered"/>'; |
---|
1351 | } |
---|
1352 | } |
---|
1353 | } |
---|
1354 | else{ |
---|
1355 | if((taglist[0][x] != '') && (taglist[0][x] != ' ')){ |
---|
1356 | switch (taglist[0][x].toLowerCase()){ |
---|
1357 | case 'high': |
---|
1358 | tagdata += '<remove value="importance_high"/>'; |
---|
1359 | tagdata += '<remove value="flagged"/>'; |
---|
1360 | break; |
---|
1361 | default: |
---|
1362 | tagdata += '<remove value="importance_normal"/>'; |
---|
1363 | tagdata += '<remove value="unflagged"/>'; |
---|
1364 | break; |
---|
1365 | } |
---|
1366 | } |
---|
1367 | } |
---|
1368 | } |
---|
1369 | } |
---|
1370 | else{ |
---|
1371 | if(!flag_draft) |
---|
1372 | tagdata += '<remove value="'+taglist+'"/>'; |
---|
1373 | } |
---|
1374 | } |
---|
1375 | else |
---|
1376 | tagdata += '<remove value="draft"/>'; |
---|
1377 | */ |
---|
1378 | |
---|
1379 | //Trash folder, are "deleted"" |
---|
1380 | if(expresso_mail_archive.folder_destination == 'trash'){ |
---|
1381 | tagdata += '<add value="deleted"/>'; |
---|
1382 | } |
---|
1383 | else |
---|
1384 | tagdata += '<remove value="deleted"/>'; |
---|
1385 | |
---|
1386 | //Código comentado para evitar inconsistência de flags quando mensagens passam pela pasta rascunhos |
---|
1387 | //if(!flag_draft){ |
---|
1388 | |
---|
1389 | var action; |
---|
1390 | if (op == 0) |
---|
1391 | action = 'add'; |
---|
1392 | else |
---|
1393 | action = 'remove'; |
---|
1394 | |
---|
1395 | //object data -used at archieve op |
---|
1396 | if (typeof(taglist) == 'object'){ |
---|
1397 | for(var x in taglist[0]){ |
---|
1398 | if (x != 'importance'){ |
---|
1399 | if(( x != 'unseen') && ( x != 'answered')){ |
---|
1400 | if((taglist[0][x] != '') && (taglist[0][x] != ' ') && (taglist[0][x] != null) && (x != 'msgid')) { |
---|
1401 | tagdata += '<'+action+' value="'+x+'"/>'; |
---|
1402 | } else { |
---|
1403 | if(x == 'flagged') |
---|
1404 | tagdata += '<'+action+' value="unflagged"/>'; |
---|
1405 | } |
---|
1406 | } |
---|
1407 | else{ |
---|
1408 | if( x == 'unseen'){ |
---|
1409 | if (taglist[0][x] == ' ') |
---|
1410 | tagdata += '<'+action+' value="seen"/>'; |
---|
1411 | else |
---|
1412 | if((taglist[0][x] != '') && (taglist[0][x] != null)) |
---|
1413 | tagdata += '<'+action+' value="unseen"/>'; |
---|
1414 | } |
---|
1415 | if( x == 'answered'){ |
---|
1416 | if (taglist[0][x] == ' ') |
---|
1417 | tagdata += '<'+action+' value="unanswered"/>'; |
---|
1418 | else |
---|
1419 | if((taglist[0][x] != '') && (taglist[0][x] != null)) |
---|
1420 | tagdata += '<'+action+' value="answered"/>'; |
---|
1421 | } |
---|
1422 | } |
---|
1423 | } |
---|
1424 | else{ |
---|
1425 | if((taglist[0][x] != '') && (taglist[0][x] != ' ')){ |
---|
1426 | switch (taglist[0][x].toLowerCase()){ |
---|
1427 | case 'high': |
---|
1428 | tagdata += '<'+action+' value="importance_high"/>'; |
---|
1429 | tagdata += '<'+action+' value="flagged"/>'; |
---|
1430 | break; |
---|
1431 | default: |
---|
1432 | tagdata += '<'+action+' value="importance_normal"/>'; |
---|
1433 | tagdata += '<'+action+' value="unflagged"/>'; |
---|
1434 | break; |
---|
1435 | } |
---|
1436 | |
---|
1437 | } |
---|
1438 | //if no importance data received, defaults is "Normal" |
---|
1439 | else{ |
---|
1440 | tagdata += '<add value="importance_normal"/>'; |
---|
1441 | tagdata += '<add value="unflagged"/>'; |
---|
1442 | } |
---|
1443 | } |
---|
1444 | } |
---|
1445 | } |
---|
1446 | //string data - used to tag a message when reading it (unseen and important, by now) |
---|
1447 | else{ |
---|
1448 | if(taglist.indexOf(",") != -1){ |
---|
1449 | var vet_tags = taglist.split(","); |
---|
1450 | for(var k=0; k<vet_tags.length; k++){ |
---|
1451 | tagdata += '<'+action+' value="'+vet_tags[k]+'"/>'; |
---|
1452 | } |
---|
1453 | } |
---|
1454 | else |
---|
1455 | tagdata += '<'+action+' value="'+taglist+'"/>'; |
---|
1456 | } |
---|
1457 | |
---|
1458 | //Código comentado para evitar inconsistência de flags quando mensagens passam pela pasta rascunhos |
---|
1459 | //} |
---|
1460 | |
---|
1461 | if(tagdata != ""){ |
---|
1462 | var tobject = '<tag>' |
---|
1463 | + '<message id="'+arcidmsg+'">' |
---|
1464 | + tagdata |
---|
1465 | + '</message>' |
---|
1466 | + '</tag>'; |
---|
1467 | //window.alert('tagdata ret1 = ' + tobject); |
---|
1468 | return(tobject); |
---|
1469 | } |
---|
1470 | } |
---|
1471 | //more messages to add at tag block |
---|
1472 | else{ |
---|
1473 | var endpoint = expresso_mail_archive.taglist.lastIndexOf("<"); |
---|
1474 | |
---|
1475 | //Código comentado para evitar inconsistência de flags quando mensagens passam pela pasta rascunhos |
---|
1476 | /* |
---|
1477 | Draft folder, are "draft" |
---|
1478 | if(expresso_mail_archive.folder_destination == 'drafts'){ |
---|
1479 | flag_draft = true; |
---|
1480 | tagdata += '<add value="draft"/>'; |
---|
1481 | if (typeof(taglist) == 'object'){ |
---|
1482 | for(var x in taglist[0]){ |
---|
1483 | if (x != 'importance'){ |
---|
1484 | if(( x != 'unseen') && ( x != 'answered')){ |
---|
1485 | if((taglist[0][x] != '') && (taglist[0][x] != ' ') && (taglist[0][x] != null) && (x != 'msgid')) |
---|
1486 | tagdata += '<remove value="'+x+'"/>'; |
---|
1487 | } |
---|
1488 | else{ |
---|
1489 | if( x == 'unseen'){ |
---|
1490 | if (taglist[0][x] == ' ') |
---|
1491 | tagdata += '<remove value="seen"/>'; |
---|
1492 | else |
---|
1493 | if((taglist[0][x] != '') && (taglist[0][x] != null)) |
---|
1494 | tagdata += '<remove value="unseen"/>'; |
---|
1495 | } |
---|
1496 | if( x == 'answered'){ |
---|
1497 | if (taglist[0][x] == ' ') |
---|
1498 | tagdata += '<remove value="unanswered"/>'; |
---|
1499 | else |
---|
1500 | if((taglist[0][x] != '') && (taglist[0][x] != null)) |
---|
1501 | tagdata += '<remove value="answered"/>'; |
---|
1502 | } |
---|
1503 | } |
---|
1504 | } |
---|
1505 | else{ |
---|
1506 | if((taglist[0][x] != '') && (taglist[0][x] != ' ')){ |
---|
1507 | switch (taglist[0][x].toLowerCase()){ |
---|
1508 | case 'high': |
---|
1509 | tagdata += '<'+action+' value="importance_high"/>'; |
---|
1510 | tagdata += '<'+action+' value="flagged"/>'; |
---|
1511 | break; |
---|
1512 | default: |
---|
1513 | tagdata += '<'+action+' value="importance_normal"/>'; |
---|
1514 | tagdata += '<'+action+' value="unflagged"/>'; |
---|
1515 | break; |
---|
1516 | } |
---|
1517 | |
---|
1518 | } |
---|
1519 | //if no importance data received, defaults is "Normal" |
---|
1520 | else{ |
---|
1521 | tagdata += '<add value="importance_normal"/>'; |
---|
1522 | tagdata += '<add value="unflagged"/>'; |
---|
1523 | } |
---|
1524 | } |
---|
1525 | } |
---|
1526 | } |
---|
1527 | else{ |
---|
1528 | if(!flag_draft) |
---|
1529 | tagdata += '<remove value="'+taglist+'"/>'; |
---|
1530 | } |
---|
1531 | } |
---|
1532 | else |
---|
1533 | tagdata += '<remove value="draft"/>'; |
---|
1534 | */ |
---|
1535 | |
---|
1536 | //Trash folder, are "deleted"" |
---|
1537 | if(expresso_mail_archive.folder_destination == 'trash'){ |
---|
1538 | tagdata += '<add value="deleted"/>'; |
---|
1539 | } |
---|
1540 | else |
---|
1541 | tagdata += '<remove value="deleted"/>'; |
---|
1542 | |
---|
1543 | //Código comentado para evitar inconsistência de flags quando mensagens passam pela pasta rascunhos |
---|
1544 | //if(!flag_draft){ |
---|
1545 | |
---|
1546 | var action; |
---|
1547 | if (op == 0) |
---|
1548 | action = 'add'; |
---|
1549 | else |
---|
1550 | action = 'remove'; |
---|
1551 | |
---|
1552 | //object data -used at archieve op |
---|
1553 | if (typeof(taglist) == 'object'){ |
---|
1554 | for(var x in taglist[0]){ |
---|
1555 | if (x != 'importance'){ |
---|
1556 | if(( x != 'unseen') && ( x != 'answered')){ |
---|
1557 | if((taglist[0][x] != '') && (taglist[0][x] != ' ') && (taglist[0][x] != null) && (x != 'msgid')) |
---|
1558 | tagdata += '<'+action+' value="'+x+'"/>'; |
---|
1559 | } |
---|
1560 | |
---|
1561 | else{ |
---|
1562 | if( x == 'unseen'){ |
---|
1563 | if (taglist[0][x] == ' ') |
---|
1564 | tagdata += '<'+action+' value="seen"/>'; |
---|
1565 | else |
---|
1566 | if((taglist[0][x] != '') && (taglist[0][x] != null)) |
---|
1567 | tagdata += '<'+action+' value="unseen"/>'; |
---|
1568 | } |
---|
1569 | if( x == 'answered'){ |
---|
1570 | if (taglist[0][x] == ' ') |
---|
1571 | tagdata += '<'+action+' value="unanswered"/>'; |
---|
1572 | else |
---|
1573 | if((taglist[0][x] != '') && (taglist[0][x] != null)) |
---|
1574 | tagdata += '<'+action+' value="answered"/>'; |
---|
1575 | } |
---|
1576 | } |
---|
1577 | } |
---|
1578 | else{ |
---|
1579 | if((taglist[0][x] != '') && (taglist[0][x] != ' ')){ |
---|
1580 | switch (taglist[0][x].toLowerCase()){ |
---|
1581 | case 'important': |
---|
1582 | tagdata += '<'+action+' value="importance_high"/>'; |
---|
1583 | tagdata += '<'+action+' value="flagged"/>'; |
---|
1584 | break; |
---|
1585 | default: |
---|
1586 | tagdata += '<'+action+' value="importance_normal"/>'; |
---|
1587 | tagdata += '<'+action+' value="unflagged"/>'; |
---|
1588 | break; |
---|
1589 | } |
---|
1590 | |
---|
1591 | } |
---|
1592 | //if no importance data received, defaults is "Normal" |
---|
1593 | else{ |
---|
1594 | tagdata += '<add value="importance_normal"/>'; |
---|
1595 | tagdata += '<add value="unflagged"/>'; |
---|
1596 | } |
---|
1597 | } |
---|
1598 | } |
---|
1599 | } |
---|
1600 | //string data - used to tag a message |
---|
1601 | else{ |
---|
1602 | if(taglist.indexOf(",") != -1){ |
---|
1603 | var vet_tags = taglist.split(","); |
---|
1604 | for(var k=0; k<vet_tags.length; k++){ |
---|
1605 | tagdata += '<'+action+' value="'+vet_tags[k]+'"/>'; |
---|
1606 | } |
---|
1607 | } |
---|
1608 | else |
---|
1609 | tagdata += '<'+action+' value="'+taglist+'"/>'; |
---|
1610 | } |
---|
1611 | |
---|
1612 | //Código comentado para evitar inconsistência de flags quando mensagens passam pela pasta rascunhos |
---|
1613 | //} |
---|
1614 | |
---|
1615 | if(tagdata != ""){ |
---|
1616 | var tobject = expresso_mail_archive.taglist.substr(0, endpoint) |
---|
1617 | + '<message id="'+arcidmsg+'">' |
---|
1618 | + tagdata |
---|
1619 | + '</message>' |
---|
1620 | + '</tag>'; |
---|
1621 | //window.alert('tagdata ret2 = ' + tobject); |
---|
1622 | return(tobject); |
---|
1623 | } |
---|
1624 | |
---|
1625 | } |
---|
1626 | return(null); |
---|
1627 | } |
---|
1628 | return(null); |
---|
1629 | } |
---|
1630 | |
---|
1631 | MAPattern.prototype.zipConfig = function(array_messages){ |
---|
1632 | var tagdata =""; |
---|
1633 | if(typeof(array_messages) == 'object'){ |
---|
1634 | if(!array_messages["format"]) |
---|
1635 | var def_format = 'zip'; |
---|
1636 | else |
---|
1637 | var def_format = array_messages["format"].toLowerCase(); |
---|
1638 | var tobject = '<zip format="' + def_format + '">'; |
---|
1639 | //Export from selected messages grid |
---|
1640 | if(array_messages["type"] == 'messages'){ |
---|
1641 | for(var k=0; k<array_messages["messages"].length;k++){ |
---|
1642 | tobject += '<message id="' + array_messages["messages"][k] + '"/>'; |
---|
1643 | } |
---|
1644 | } |
---|
1645 | //Export from folder management |
---|
1646 | else{ |
---|
1647 | var folderid = array_messages["messages"]; |
---|
1648 | if (!array_messages["recursive"]) |
---|
1649 | var rec = false; |
---|
1650 | else |
---|
1651 | var rec = array_messages["recursive"]; |
---|
1652 | tobject += '<folder id="' + array_messages["messages"] + '" recursive="' + rec + '"/>'; |
---|
1653 | } |
---|
1654 | tobject += '</zip>'; |
---|
1655 | return(tobject); |
---|
1656 | } |
---|
1657 | return(null); |
---|
1658 | } |
---|
1659 | |
---|
1660 | MAPattern.prototype.download_compressed_attachments = function(msgid,format){ |
---|
1661 | var urldownload = mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/temp/download/parts_'+msgid+'.'+format; |
---|
1662 | return(urldownload); |
---|
1663 | } |
---|
1664 | |
---|
1665 | MAPattern.prototype.message_source = function(msgid){ |
---|
1666 | var urldownload = mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/mail/'+folder+'/'+msgid+'.eml'; |
---|
1667 | return(urldownload); |
---|
1668 | } |
---|
1669 | --> |
---|