source: sandbox/expressoMail1_2/MailArchiver/2.2/expressoMail1_2/js/MAExpressoPattern.js @ 5085

Revision 5085, 26.5 KB checked in by fernando-alberto, 13 years ago (diff)

Ticket #1269 - Desenvolvimento da nova solucao de arquivamento local MailArchiver?, tags para arquivamento

  • Property svn:eol-style set to native
Line 
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 */
18var MAPattern = function(){
19   
20}
21// -----------------------------------SERIALIZED DATA TEMPLATES ----------------
22MAPattern.prototype.toExpressoAddress = function(data){
23    if((typeof(data) != 'undefined') && (data.length > 0)){
24        var Fromdata = eval("(" + data + ")");
25        if(Fromdata.mailbox){
26        //just one address to pharse: length is undefined
27        if(typeof(Fromdata.mailbox.length) == 'undefined'){
28            var dataName = Fromdata.mailbox["@name"];               
29            var dataEmail = Fromdata.mailbox["@localPart"] + '@' + Fromdata.mailbox["@domain"];
30            if(dataName == 'null')
31                dataName = dataEmail;
32        }
33        //address list to pharse, but to header(folder list messages action), only first metters
34        else{
35            var dataName = Fromdata.mailbox[0]["@name"];
36            var dataEmail = Fromdata.mailbox[0]["@localPart"] + '@' + Fromdata.mailbox[0]["@domain"];
37            if(dataName == 'null')
38                dataName = dataEmail;
39        }
40
41        var tplFrom = 'a:3:{'
42+           's:4:"name";'
43+           's:'+dataName.length+':"'+dataName+'";'
44+           's:5:"email";'
45+           's:'+dataEmail.length+':"'+dataEmail+'";'
46+           's:4:"full";'
47+           's:'+(dataName.length + dataEmail.length + 3)+':"'+dataName+' <'+dataEmail+'>";'
48+       '}';
49    }
50    //Data adrress from mailbox is empty, null, or canot be correctly returned by service invocation (will return 'unknow mailbox' string)
51    else {
52        tplFrom = 'a:2{s:4:"name";s:14:"Unknow mailbox";s:5:"email";s:15:"Unknow_mailbox";}';
53    }
54    }
55    else{
56        tplFrom = 'a:2{s:4:"name";s:14:"Unknow mailbox";s:5:"email";s:15:"Unknow_mailbox";}';
57    }
58    return(tplFrom);
59}
60
61MAPattern.prototype.toExpressoSubject = function(data){
62    if((typeof(data) != 'undefined') && (data.length > 0)){
63        var tplSbj = 's:'+data.length+':"'+data+'";'
64    }
65    //Subject is empty, null, or canot be correctly returned by service invocation (will return 'Message without subject' string)
66    else {
67        tplSbj = 's:25:"[Message without subject]";';
68    }
69    return(tplSbj);
70}
71
72MAPattern.prototype.toExpressoAttachmentsHeader = function(data){
73    if((typeof(data) != 'undefined') && (data.length > 2)){
74        var Attdata = eval("(" + data + ")");
75        if(typeof(Attdata.attachment) != 'undefined'){                   
76            var tplAttatch = 'a:2:{'
77+               's:5:"names";';
78            //More than 1 attachment - because length will be 'undefined' if just one exists
79            if(Attdata.attachment.length > 0){
80                var strnamesatt = "";
81                for(var x=0; x<Attdata.attachment.length; x++){
82                  var attId = Attdata.attachment[x]["@id"];
83                  var attName = Attdata.attachment[x]["@name"];
84                  var attSize = Attdata.attachment[x]["@size"];
85                  var attMediaType = Attdata.attachment[x]["@mediaType"];
86                  var attSubType = Attdata.attachment[x]["@subType"];
87                  var attEncoding = Attdata.attachment[x]["@encoding"];
88                 
89                  strnamesatt += attName + ', ';
90                }
91                strnamesatt = strnamesatt.substr(0, strnamesatt.length-2);
92                var intnumberatt = Attdata.attachment.length;
93            }
94            //Just one attachment
95            else{
96                var attId = Attdata.attachment["@id"];
97                var attName = Attdata.attachment["@name"];
98                var attSize = Attdata.attachment["@size"];
99                var attMediaType = Attdata.attachment["@mediaType"];
100                var attSubType = Attdata.attachment["@subType"];
101                var attEncoding = Attdata.attachment["@encoding"];
102                strnamesatt = attName;
103                var intnumberatt = 1;
104            }
105           
106            tplAttatch += 's:'+strnamesatt.length+':"'+strnamesatt+'";'
107+               's:18:"number_attachments";i:' +intnumberatt+';'
108+           '}';
109        }
110        else {
111            tplAttatch = 'a:2:{s:5:"names";b:0;s:18:"number_attachments";i:0;}';   
112        }
113    }
114    //No attatch data
115    else {
116        tplAttatch = 'a:2:{s:5:"names";b:0;s:18:"number_attachments";i:0;}';
117    }
118    return(tplAttatch);
119}
120
121MAPattern.prototype.toExpressoDate = function(data){
122    var ndate = new Date(data);
123    var odate = zeroFill(ndate.getDate()) + '/' + zeroFill(ndate.getMonth()+1) + '/' + zeroFill(ndate.getFullYear() + ' ' + zeroFill(ndate.getHours()) + ':' + zeroFill(ndate.getMinutes()) + ':' + zeroFill(ndate.getSeconds()));
124    return(odate);
125}
126
127MAPattern.prototype.toExpressoFlags = function(data){
128    if((data.length > 0) && (typeof(data) != 'undefined')){
129        var Tagdata = eval("(" + data + ")");
130        if(typeof(Tagdata.tag) != 'undefined'){
131        //More than 1 attachment: length will be 'undefined' if just one exists
132        if(Tagdata.tag.length >= 0){
133            var strnamestag = "";
134            for(var x=0; x<Tagdata.tag.length; x++){
135                var tagvalue = Tagdata.tag[x]["@value"];
136                if(tagvalue.toLowerCase().indexOf('recent')!= -1)
137                    strnamestag += 's:6:"Recent";s:1:"N";';
138                if(tagvalue.toLowerCase().indexOf('unseen')!= -1)
139                    strnamestag += 's:6:"Unseen";s:1:"U";';
140                if(tagvalue.toLowerCase().indexOf('deleted')!= -1)
141                    strnamestag += 's:7:"Deleted";s:1:"D";';
142                if(tagvalue.toLowerCase().indexOf('answered')!= -1)
143                    strnamestag += 's:8:"Answered";s:1:"A";';
144                if(tagvalue.toLowerCase().indexOf('forwarded')!= -1)
145                    strnamestag += 's:9:"Forwarded";s:1:"F";';
146                if(tagvalue.toLowerCase().indexOf('draft')!= -1)
147                    strnamestag += 's:5:"Draft";s:1:"X";';
148                if(tagvalue.toLowerCase().indexOf('importance')!= -1)
149                    strnamestag += 's:10:"Importance";s:4:"High";';
150                if(tagvalue.toLowerCase().indexOf('flagged')!= -1)
151                    strnamestag += 's:7:"Flagged";s:1:"F";';
152            }
153            var tplTags = strnamestag;
154          }
155         
156          else{
157            var strnamestag = "";
158            var tagvalue = Tagdata.tag["@value"];
159                if(tagvalue.toLowerCase().indexOf('recent')!= -1)
160                    strnamestag += 's:6:"Recent";s:1:"N";';
161                if(tagvalue.toLowerCase().indexOf('unseen')!= -1)
162                    strnamestag += 's:6:"Unseen";s:1:"U";';
163                if(tagvalue.toLowerCase().indexOf('deleted')!= -1)
164                    strnamestag += 's:7:"Deleted";s:1:"D";';
165                if(tagvalue.toLowerCase().indexOf('answered')!= -1)
166                    strnamestag += 's:8:"Answered";s:1:"A";';
167                if(tagvalue.toLowerCase().indexOf('forwarded')!= -1)
168                    strnamestag += 's:9:"Forwarded";s:1:"F"';
169                if(tagvalue.toLowerCase().indexOf('draft')!= -1)
170                    strnamestag += 's:5:"Draft";s:1:"X";';
171                if(tagvalue.toLowerCase().indexOf('importance')!= -1)
172                    strnamestag += 's:10:"Importance";s:4:"High";';
173                if(tagvalue.toLowerCase().indexOf('flagged')!= -1)
174                    strnamestag += 's:7:"Flagged";s:1:"F";';
175            var tplTags = strnamestag;
176          }
177      }
178      //Something is wrong with tags: return defaults is no one tag
179      else{
180        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;';
181      }
182      return(tplTags);
183    }
184}
185
186MAPattern.prototype.toExpressoHeader = function(data){   
187    var tplHeader = 'a:26:{'
188+           's:11:"ContentType";'
189+           's:' + data.getContentType().length + ':"' + data.getContentType() + '";'
190+           expresso_mail_archive.pattern.toExpressoFlags(data.getTags())
191+           's:10:"msg_number";'
192+           's:'+data.getId().length+':"'+data.getId()+'";'
193+           's:5:"udate";'
194+           'i:' + parseInt(data.getDate()/1000) + ';'
195+           's:9:"timestamp";'
196+           'i:' + parseInt(data.getDate()/1000) + ';'
197+           's:4:"from";'
198+           expresso_mail_archive.pattern.toExpressoAddress(data.getFrom())
199+           's:2:"to";'
200+           expresso_mail_archive.pattern.toExpressoAddress(data.getTo())
201+           's:7:"subject";'
202+           expresso_mail_archive.pattern.toExpressoSubject(data.getSubject())
203+           's:4:"Size";'
204+           'i:'+data.getSize()+';'
205+           's:10:"attachment";'
206+           expresso_mail_archive.pattern.toExpressoAttachmentsHeader(data.getAttachments())
207+           '}';
208    return(tplHeader);
209}
210
211MAPattern.prototype.toExpressoBody = function(mheader){
212    var tplBody = 'a:33:{'
213+                   's:4:"body";N;'
214+                   's:11:"attachments";N;'
215+                   's:6:"thumbs";N;'
216+                   's:9:"signature";N;'
217+                   's:10:"Importance";s:6:"Normal";'
218+                   's:6:"Recent";s:1:" ";'
219+                   's:6:"Unseen";s:1:"N";'
220+                   's:7:"Deleted";s:1:" ";'
221+                   's:7:"Flagged";b:0;'
222+                   's:8:"Answered";s:1:" ";'
223+                   's:5:"Draft";s:1:" ";'
224+                   's:10:"msg_number";s:4:"2241";'
225+                   's:10:"msg_folder";s:5:"INBOX";'
226+                   's:5:"udate";s:5:"10:01";'
227+                   's:7:"msg_day";s:10:"10/05/2011";'
228+                   's:8:"msg_hour";s:5:"10:02";'
229+                   's:8:"fulldate";s:36:"10/05/2011 10:01 (05:35 horas atras)";'
230+                   's:9:"smalldate";s:5:"10:04";'
231+                   's:4:"from";N;'
232+                   's:6:"sender";a:3:{'
233+                       's:4:"name";N;'
234+                       's:5:"email";s:46:"listaregional-pae-bounces@grupos.serpro.gov.br";'
235+                       's:4:"full";s:46:"listaregional-pae-bounces@grupos.serpro.gov.br";'
236+                   '}'
237+                   's:10:"toaddress2";s:32:"comunicacao.social@serpro.gov.br";'
238+                   's:2:"cc";N;'
239+                   's:3:"bcc";N;'
240+                   's:8:"reply_to";N;'
241+                   's:7:"subject";N;'
242+                   's:4:"Size";s:4:"1234";'
243+                   's:15:"reply_toaddress";s:45:"com.social <comunicacao.social@serpro.gov.br>";'
244+                   's:9:"timestamp";i:1305032476;'
245+                   's:5:"login";i:944889240;'
246+                   's:6:"header";a:16:{'
247+                      's:11:"ContentType";s:6:"normal";'
248+                      's:10:"Importance";s:6:"Normal";'
249+                      's:6:"Recent";s:1:" ";'
250+                      's:6:"Unseen";s:1:"N";'
251+                      's:8:"Answered";s:1:" ";'
252+                      's:5:"Draft";s:1:" ";'
253+                      's:7:"Deleted";s:1:" ";'
254+                      's:7:"Flagged";b:0;'
255+                      's:10:"msg_number";s:4:"2251";'
256+                      's:5:"udate";s:10:"10/05/2011";'
257+                      's:11:"offsetToGMT";i:-10800;'
258+                      's:8:"aux_date";N;'
259+                      's:4:"from";a:2:{'
260+                         's:4:"name";s:10:"com.social";'
261+                         's:5:"email";s:32:"comunicacao.social@serpro.gov.br";'
262+                      '}'
263+                      's:2:"to";a:2:{'
264+                         's:4:"name";s:32:"comunicacao.social@serpro.gov.br";'
265+                         's:5:"email";s:32:"comunicacao.social@serpro.gov.br";'
266+                      '}'
267+                      's:7:"subject";s:28:"Primeira leitura - 10/5/2011";'
268+                      's:4:"Size";N;'
269+                      's:10:"attachment";a:2:{'
270+                         's:5:"names";b:0;'
271+                         's:18:"number_attachments";i:0;'
272+                      '}'
273+                  '}'
274+                  's:12:"array_attach";N;'
275+                  '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";'
276+                  's:2:"to";N;'
277+              '}';
278    return(tplBody);
279}
280
281MAPattern.prototype.toExpressoMailDataHeader = function(msgid){
282    var tplHMail = "";
283    var tmpHead = expresso_mail_archive.getMessageHeaders(msgid);
284    window.alert(tmpHead);
285    return tplHMail;   
286}
287
288MAPattern.prototype.toExpressoMailData = function(msg){
289    var tplBMail = "";
290   
291    return(tplBMail);
292}
293
294MAPattern.prototype.toExpressoMailAttachment = function(att){
295    var objMsg = expresso_mail_archive.getMessageServiceObject(att);
296    var attData = objMsg.getAttachments();
297    var objAtt =  eval("(" + attData + ")");
298    var srlData = "";
299
300    //There are attachments
301    if(typeof(objAtt.attachment) != 'undefined'){
302        if(typeof(objAtt.attachment.length) != 'undefined'){
303            srlData = 's:11:"attachments";a:' + objAtt.attachment.length + ':{';
304            for(var m=0; m<objAtt.attachment.length; m++){
305                srlData += 's:1:"' + m + '";'
306                         + 'a:4:{'
307                         + 's:3:"pid";s:' + objAtt.attachment[m]["@id"].length + ':"' + objAtt.attachment[m]["@id"] + '";'
308                         + 's:4:"name";s:' + objAtt.attachment[m]["@name"].length + ':"' + objAtt.attachment[m]["@name"] + '";'
309                         + 's:8:"encoding";s:' + objAtt.attachment[m]["@encoding"].length + ':"' + objAtt.attachment[m]["@encoding"] + '";'
310                         + 's:5:"fsize";i:' + objAtt.attachment[m]["@size"] + ';'
311                         + '}';
312            }
313        }
314        //just one att
315        else{
316            srlData = 's:11:"attachments";a:1:{';
317            srlData += 's:1:"0";'
318                     + 'a:4:{'
319                     + 's:3:"pid";s:' + objAtt.attachment["@id"].length + ':"' + objAtt.attachment["@id"] + '";'
320                     + 's:4:"name";s:' + objAtt.attachment["@name"].length + ':"' + objAtt.attachment["@name"] + '";'
321                     + 's:8:"encoding";s:' + objAtt.attachment["@encoding"].length + ':"' + objAtt.attachment["@encoding"] + '";'
322                     + 's:5:"fsize";i:' + objAtt.attachment["@size"] + ';'
323                     + '}';
324        }
325        srlData += '}';           
326    }   
327    //No attachments data
328    else{
329        srlData = 's:11:"attachments";N;';
330    }
331    return(srlData);
332}
333
334MAPattern.prototype.toExpressoMailThumbs = function(thb){
335    var objMsg = expresso_mail_archive.getMessageServiceObject(thb);
336    var attData = objMsg.getAttachments();
337    var objAtt =  eval("(" + attData + ")");
338    var srlData = "";
339    var arrThumbs = new Array();
340    if(typeof(objAtt.attachment) != 'undefined'){       
341        //more than 1 att
342        if(typeof(objAtt.attachment.length) != 'undefined'){
343            for(var m=0; m<objAtt.attachment.length; m++){
344                //Only images has thums
345                if(objAtt.attachment[m]["@mediaType"].toLowerCase() == 'image')
346                    arrThumbs.push(objAtt.attachment[m]);
347            }
348        }
349        //just one att data
350        else{
351            if(objAtt.attachment["@mediaType"].toLowerCase() == 'image')
352                arrThumbs.push(objAtt.attachment);
353        }
354        //There are thumbs
355        if(arrThumbs.length > 0){
356            srlData = 's:6:"thumbs";a:'+arrThumbs.length+':{'
357            for(var n=0; n<arrThumbs.length; n++){
358                var thumblink = '<a onMouseDown=\'save_image(event,this,"image/'+arrThumbs[n]["@subType"]+'")\' href=\'#INBOX;;2893;;0;;2;;'+arrThumbs[n]["@encoding"]+'\' onClick="window.open(\''+mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/part/'+arrThumbs[n]["@id"]+'\',\'mywindow\',\'width=700,height=600,scrollbars=yes\');"><IMG id=\'INBOX;;2893;;0;;2;;'+arrThumbs[n]["@encoding"]+'\' style=\'border:2px solid #fde7bc;padding:5px\' title=\'Clique na imagem para Ampliar.\' src="'+mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/part/'+arrThumbs[n]["@id"]+'/thumb/120"></a>';
359                srlData += 's:1:"'+n+'";s:'+thumblink.length+':"'+thumblink+'";'
360            }
361            srlData += '}';   
362        }
363        //No thumbs
364        else
365            srlData = 's:6:"thumbs";N;';       
366    }   
367    //Something is wrong with attachments thumb behavior: return no thumbs
368    else{
369        srlData = 's:6:"thumbs";N;';
370    }
371    return(srlData);
372}
373
374MAPattern.prototype.toExpressoMailSignature = function(sgn){
375    return('s:9:"signature";N;');
376}
377
378MAPattern.prototype.toExpressoMailBaseHeaders = function(hdr){
379    var defMailHeaders = {'recent':' ','unseen': ' ','deleted': ' ','answered': ' ','draft': ' ','flagged': ' '};
380    var objMsg = expresso_mail_archive.getMessageServiceObject(hdr);
381    var tagData = objMsg.getTags();
382    var objTag = eval('(' + tagData + ')');
383    var tplHMail = "";
384   
385    if(objTag.tag){
386    //More than 1 attachment - because length will be 'undefined' if just one exists
387    if(objTag.tag.length >= 0){
388
389        //flaggs the tags
390        for(var k=0; k<objTag.tag.length; k++){
391            for(var j in defMailHeaders){
392                var tagvalue = objTag.tag[k]["@value"].toLowerCase();
393                if((tagvalue == j) && (defMailHeaders[j] != true))
394                    defMailHeaders[j] = true;
395                else
396                    defMailHeaders[j] = false;
397            }
398        }
399       
400        //serialize all needed headers       
401        if(defMailHeaders["recent"] == true)
402            tplHMail += 's:6:"Recent";s:1:"N";';
403        else
404            tplHMail += 's:6:"Recent";s:1:" ";';
405        if(defMailHeaders["unseen"] == true)
406            tplHMail += 's:6:"Unseen";s:1:"U";';
407        else
408            tplHMail += 's:6:"Unseen";s:1:" ";';
409        if(defMailHeaders["deleted"] == true)
410            tplHMail += 's:7:"Deleted";s:1:"D";';
411        else
412            tplHMail += 's:7:"Deleted";s:1:" ";';
413        if(defMailHeaders["answered"] == true)
414            tplHMail += 's:8:"Answered";s:1:"A";';
415        else
416            tplHMail += 's:8:"Answered";s:1:" ";';
417        if(defMailHeaders["draft"] == true)
418            tplHMail += 's:5:"Draft";s:1:"X";';
419        else
420            tplHMail += 's:5:"Draft";s:1:" ";';       
421        if(defMailHeaders["flagged"] == true)
422            tplHMail += 's:7:"Flagged";s:1:"F";';
423        else
424            tplHMail += 's:7:"Flagged";s:1:" ";';                     
425    }
426    }
427   
428    //No header to tag
429    else{
430        tplHMail += 's:6:"Recent";s:1:" ";';
431        tplHMail += 's:6:"Unseen";s:1:" ";';
432        tplHMail += 's:7:"Deleted";s:1:" ";';
433        tplHMail += 's:8:"Answered";s:1:" ";';
434        tplHMail += 's:5:"Draft";s:1:" ";';       
435        tplHMail += 's:7:"Flagged";s:1:" ";';             
436    }
437    return tplHMail;       
438}
439
440MAPattern.prototype.toExpressoMailArrayAttach = function(att){
441    var objMsg = expresso_mail_archive.getMessageServiceObject(att);
442    var attData = objMsg.getAttachments();
443    var objAtt =  eval("(" + attData + ")");
444    var srlData = "";
445
446    //There are attacments, map all them
447    if(typeof(objAtt.attachment) != 'undefined'){
448        srlData = 's:12:"array_attach";a:' + objAtt.attachment.length + ':{';
449        for(var m=0; m<objAtt.attachment.length; m++){
450            var urllink = mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/part/download/'+objAtt.attachment[m]["@id"];
451            srlData += 's:1:"' + m + '";'
452                     + 'a:3:{'
453                     + 's:4:"name";s:' + objAtt.attachment[m]["@name"].length + ':"' + objAtt.attachment[m]["@name"] + '";'
454                     + 's:3:"url";s:' + urllink.length + ':"' + urllink + '";'
455                     + 's:3:"pid";s:' + objAtt.attachment[m]["@id"].length + ':"' + objAtt.attachment[m]["@id"] + '";'
456                     + '}';
457        }
458        srlData += '}';
459    }   
460    //No one attachment
461    else{
462        srlData = 's:12:"array_attach";N;';
463    }
464    return(srlData);
465}
466
467MAPattern.prototype.toExpressoMailURLExportFile = function(path, file){
468    var srlData = 's:15:"url_export_file";';
469    var urllink = mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/mail/'+path+'/'+file;
470    srlData += 's:' + urllink.length + ':"' + urllink + '";'
471    return(srlData);
472}
473
474MAPattern.prototype.toExpressoMail = function(mheader, mbody){
475    var tplMessage = null;
476    var tplMessageData = null;
477    var tplMessageHeaderData = null; 
478   
479    //Decodes message headers first
480    var hdata = mheader;
481    var h_date = expresso_mail_archive.pattern.toExpressoDate(mheader["udate"]*1000);
482   
483    //Init message template
484    tplMessage = 'a:34{s:4:"body";N;'
485+   expresso_mail_archive.pattern.toExpressoMailAttachment(expresso_mail_archive.currentmessage)
486+   expresso_mail_archive.pattern.toExpressoMailThumbs(expresso_mail_archive.currentmessage)
487+   expresso_mail_archive.pattern.toExpressoMailSignature(expresso_mail_archive.currentmessage)
488+   expresso_mail_archive.pattern.toExpressoMailBaseHeaders(expresso_mail_archive.currentmessage)
489+   's:5:"udate";s:8:"' + h_date.split(" ")[1] +'";' //hours
490+   's:7:"msg_day";s:10:"'+ h_date.split(" ")[0] +'";' //date
491+   's:8:"msg_hour";s:8:"' + h_date.split(" ")[1] +'";' //hours
492+   's:8:"fulldate";s:19:"' + h_date +'";' //full date + hours
493+   's:9:"smalldate";s:8:"' + h_date.split(" ")[1] +'";' //hours
494+   's:10:"msg_number";s:'+expresso_mail_archive.currentmessage.length+':"'+expresso_mail_archive.currentmessage+'";'
495+   's:10:"msg_folder";s:'+(expresso_mail_archive.currentfolder.length+6)+':"local_'+expresso_mail_archive.currentfolder+'";'
496+   's:4:"from";N;'
497+   's:6:"sender";N;'
498+   's:9:"timestamp";i:'+ mheader["udate"]*1000 +';' //getback the lost miliseconds...
499+   's:5:"login";i:944889240'
500+   's:6:"header";' + expresso_mail_archive.pattern.toExpressoHeader(expresso_mail_archive.getMessageServiceObject(expresso_mail_archive.currentmessage))
501+   expresso_mail_archive.pattern.toExpressoMailArrayAttach(expresso_mail_archive.currentmessage)
502+   expresso_mail_archive.pattern.toExpressoMailURLExportFile(expresso_mail_archive.currentfolder, expresso_mail_archive.currentmessage)
503+   's:2:"to";N;'
504+   '}';
505
506    var strMailMessage = connector.unserialize(tplMessage);
507//    strMessage['from'] = mheader["from"];
508    //strMessage['from'] = expresso_mail_archive.toExpressoBody(mheader, mbody);
509//    strMessage['subject'] = mheader["subject"];
510    strMailMessage['body'] = mbody;
511//    strMessage['to'] = mheader["to"];
512//    strMessage['cc'] = mheader["cc"];
513    strMailMessage['local_message'] = true;
514    strMailMessage['folder'] = 'local_' + expresso_mail_archive.currentfolder;
515//    strMessage['msg_number'] = mheader["msg_number"];
516 
517   
518    //window.alert('tplMessage = ' + tplMessage);
519    return(strMailMessage);
520}
521
522MAPattern.prototype.toExpressoMessage = function(mheader, mbody){
523    var strMessage = null;
524    var strMessage1 = expresso_mail_archive.pattern.toExpressoBody(mheader);
525    strMessage = connector.unserialize(strMessage1);
526   
527    window.alert('dump strMessage:\n\n' + print_r(strMessage,0));
528   
529    strMessage['from'] = mheader["from"];
530    //strMessage['from'] = expresso_mail_archive.toExpressoBody(mheader, mbody);
531    strMessage['subject'] = mheader["subject"];
532    strMessage['body'] = mbody;
533    strMessage['to'] = mheader["to"];
534    strMessage['cc'] = mheader["cc"];
535    strMessage['local_message'] = true;
536    strMessage['folder'] = 'local_' + expresso_mail_archive.currentfolder;
537    strMessage['msg_number'] = mheader["msg_number"];
538    //window.alert('strMessage dump\n\n' + print_r(strMessage));
539    return(strMessage);
540
541
542/*
543 *      retorno['from'] = connector.unserialize(rs.field(2));
544        retorno['subject'] = rs.field(3);
545        retorno['body'] = rs.field(4);
546        //Codigo que as imagens embutidas em emails (com multipart/related ou multipart/mixed) sejam corretamente mostradas em emails arquivados. Os links do
547        //tipo "./inc/show_embedded_attach.php?msg_folder=[folder]&msg_num=[msg_num]&msg_part=[part]"
548        //são substituidos pelos links dos anexos capturados pelo gears.
549
550        var thumbs= retorno.thumbs;
551        var anexos= retorno.array_attach;
552        for (i in anexos)
553        {
554            if(anexos[i]['url'] && anexos[i]['url'].match(/((jpg)|(jpeg)|(png)|(gif)|(bmp))/gi))
555            {
556                var er_imagens = new RegExp("\\.\\/inc\\/show_embedded_attach.php\\?msg_folder=[\\w/]+\\&msg_num=[0-9]+\\&msg_part="+anexos[i]['pid']);
557                var Result_imagens = er_imagens.exec(retorno['body']);
558                retorno['body'] = retorno['body'].replace(Result_imagens,anexos[i]['url']);
559                if(thumbs && thumbs[i]){
560                    er_imagens = new RegExp("\\.\\/inc\\/show_thumbs.php\\?file_type=image\\/[\\w]+\\&msg_num=[0-9]+\\&msg_folder=[\\w/%]+\\&msg_part="+anexos[i]['pid']);
561                    Result_imagens = er_imagens.exec(thumbs[i]);
562                    thumbs[i] = thumbs[i].replace(Result_imagens,"'"+anexos[i]['url']+"'");
563                    er_imagens = new RegExp("\\.\\/inc\\/show_img.php\\?msg_num=[0-9]+\\&msg_folder=[\\w/%]+\\&msg_part="+anexos[i]['pid']);
564                    Result_imagens = er_imagens.exec(thumbs[i]);
565                    thumbs[i] = thumbs[i].replace(Result_imagens,anexos[i]['url']);
566                    thumbs[i] = thumbs[i].replace(/<IMG/i,'<img width="120"');
567                }
568            }
569        }
570
571        retorno['to'] = connector.unserialize(rs.field(5));
572        retorno['cc'] = connector.unserialize(rs.field(6));
573
574        retorno['local_message'] = true;
575        retorno['msg_folder'] = "local_"+rs.field(7); //Now it's a local folder
576        retorno['msg_number'] = rs.field(0)+plus_id; //the message number is the rowid
577 **/
578}
579
580MAPattern.prototype.tagConfig = function(taglist, arcidmsg){
581    if(taglist != null){
582        var tagdata = "";
583       
584        //Draft folder, are "draft"
585        if(expresso_mail_archive.folder_destination == 'drafts'){
586            tagdata += '<add value="draft"/>';
587        }
588       
589        //Trash folder, are "deleted""
590        if(expresso_mail_archive.folder_destination == 'trash'){
591            tagdata += '<add value="deleted"/>';
592        }
593       
594        for(var x in taglist[0]){
595            if((taglist[0][x] != '') && (taglist[0][x] != ' ') && (taglist[0][x] != null) && (x != 'msgid'))
596                tagdata += '<add value="'+x+'"/>';
597        }
598
599        if(tagdata != ""){
600       
601            var tobject = '<tag>'
602            +              '<message id="'+arcidmsg+'">'
603            +              tagdata
604            +              '</message>'
605            +             '</tag>';
606            return(tobject);
607        }
608        return(null);
609    }
610    return(null);
611}
612-->
Note: See TracBrowser for help on using the repository browser.