Changeset 1000 for trunk/expressoMail1_2/js/local_messages.js
- Timestamp:
- 06/16/09 18:29:16 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/js/local_messages.js
r670 r1000 59 59 60 60 local_messages.prototype.insert_mail = function(msg_info,msg_header,anexos,folder) { 61 62 61 try { 63 62 this.init_local_messages(); … … 82 81 msg_info.cc = null; 83 82 msg_header.Size=null; 84 85 83 //If the mail was archieved in the same date the user received it, the date cames with the time. 86 84 //here I solved it … … 109 107 110 108 var rs = this.dbGears.execute("select rowid from folder where folder=? and uid_usuario=?",[folder,account_id]); 111 112 if(rs.isValidRow()) 109 if(rs.isValidRow()) 113 110 id_folder=rs.field(0); 114 111 else { … … 119 116 if(msg_info.Unseen=="U") 120 117 unseen = 1; 121 118 this.dbGears.execute("insert into mail (mail,original_id,original_folder,header,timestamp,uid_usuario,unseen,id_folder,ffrom,subject,fto,cc,body,size) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)",[mail,original_id,original_folder,header,timestamp,login,unseen,id_folder,from,subject,to,cc,body,size]); 122 119 var call_back = function() { 123 120 } … … 148 145 retorno['subject'] = rs.field(3); 149 146 retorno['body'] = rs.field(4); 147 //Codigo que as imagens embutidas em emails (com multipart/related ou multipart/mixed) sejam corretamente mostradas em emails arquivados. Os links do 148 //tipo "./inc/show_embedded_attach.php?msg_folder=[folder]&msg_num=[msg_num]&msg_part=[part]" 149 //são substituidos pelos links dos anexos capturados pelo gears. 150 151 var thumbs= retorno.thumbs; 152 var anexos= retorno.array_attach; 153 for (i in anexos) 154 { 155 nomeArquivo = anexos[i]['name'].substring(0,anexos[i]['name'].length - 4); 156 if(nomeArquivo.match('jpg')||anexos[i]['name'].match('gif')||anexos[i]['name'].match('png')) 157 { 158 var er_imagens = new RegExp("\\.\\/inc\\/show_embedded_attach.php\\?msg_folder=[\\w/]+\\&msg_num=[0-9]+\\&msg_part="+anexos[i]['pid']); 159 var Result_imagens = er_imagens.exec(retorno['body']); 160 retorno['body'] = retorno['body'].replace(Result_imagens,anexos[i]['url']); 161 if(thumbs && thumbs[i]){ 162 er_imagens = new RegExp("\\.\\/inc\\/show_thumbs.php\\?file_type=image\\/[\\w]+\\&msg_num=[0-9]+\\&msg_folder=[\\w/%]+\\&msg_part="+anexos[i]['pid']); 163 Result_imagens = er_imagens.exec(thumbs[i]); 164 thumbs[i] = thumbs[i].replace(Result_imagens,"'"+anexos[i]['url']+"'"); 165 er_imagens = new RegExp("\\.\\/inc\\/show_img.php\\?msg_num=[0-9]+\\&msg_folder=[\\w/%]+\\&msg_part="+anexos[i]['pid']); 166 Result_imagens = er_imagens.exec(thumbs[i]); 167 thumbs[i] = thumbs[i].replace(Result_imagens,"'"+anexos[i]['url']+"'"); 168 thumbs[i] = thumbs[i].replace(/<IMG/i,'<img width="120"'); 169 } 170 } 171 } 172 150 173 retorno['to'] = connector.unserialize(rs.field(5)); 151 174 retorno['cc'] = connector.unserialize(rs.field(6)); … … 508 531 sql += " and"; 509 532 } 510 sql+=" mail."+this.aux_convert_filter_field(friendly_filters[z])+" like '%"+ friendly_filters[z+1]+"%'";533 sql+=" mail."+this.aux_convert_filter_field(friendly_filters[z])+" like '%"+url_decode(friendly_filters[z+1])+"%'"; 511 534 } 512 535 } … … 559 582 return retorno; 560 583 } 584 585 //Por Bruno Costa(bruno.vieira-costa@serpro.gov.br - Essa função é um AJAX simples que serve apenas para pegar o fonte de uma msg local (no formato RFC 822). 586 local_messages.prototype.get_src = function(url){ 587 AJAX = false; 588 if (window.XMLHttpRequest) { // Mozilla, Safari,... 589 AJAX = new XMLHttpRequest(); 590 if (AJAX.overrideMimeType) { 591 AJAX.overrideMimeType('text/xml'); 592 } 593 } else if (window.ActiveXObject) { // IE 594 try { 595 AJAX = new ActiveXObject("Msxml2.XMLHTTP"); 596 } catch (e) { 597 try { 598 AJAX = new ActiveXObject("Microsoft.XMLHTTP"); 599 } catch (e) {} 600 } 601 } 602 603 if (!AJAX) { 604 alert('ERRO :(Seu navegador não suporta a aplicação usada neste site'); 605 return false; 606 } 607 608 AJAX.onreadystatechange = function() { 609 if (AJAX.readyState == 4) { 610 AJAX.src=AJAX.responseText; 611 if (AJAX.status == 200) { 612 return AJAX.responseText; 613 } else { 614 return false; 615 } 616 } 617 } 618 619 AJAX.open('get', url, false); 620 AJAX.send(null); 621 return AJAX.responseText; 622 }; 623 624 //Por Bruno Costa(bruno.vieira-costa@serpro.gov.br - Dessarquiva msgs locais pegando o codigo fonte das mesmas e mandando via POST para o servidor 625 //para que elas sejam inseridas no imap pela função imap_functions.unarchive_mail. 626 local_messages.prototype.unarchive_msgs = function (folder,new_folder,msgs_number){ 627 628 if(!new_folder) 629 new_folder='INBOX'; 630 this.init_local_messages(); 631 // alert(folder+new_folder+msgs_number); 632 var handler_unarchive = function(data) 633 { 634 if(data.error == '') 635 write_msg(get_lang('All messages are successfully unarchived')); 636 else 637 alert(data.error); 638 } 639 if(msgs_number =='selected' || !msgs_number) 640 { 641 msgs_number = get_selected_messages() 642 if (!msgs_number){ 643 write_msg(get_lang('No selected message.')); 644 return; 645 } 646 var rs = this.dbGears.execute("select mail,timestamp from mail where rowid in ("+msgs_number+")"); 647 var source=""; 648 var timestamp=""; 649 while(rs.isValidRow()) { 650 mail=connector.unserialize(rs.field(0)); 651 source_tmp=escape(this.get_src(mail.url_export_file)); 652 source+="#@#@#@"+source_tmp; 653 timestamp+="#@#@#@"+rs.field(1); 654 rs.next(); 655 } 656 rs.close(); 657 this.finalize(); 658 } 659 else 660 { 661 var rs = this.dbGears.execute("select mail,timestamp from mail where rowid="+msgs_number); 662 mail=connector.unserialize(rs.field(0)); 663 var source =""; 664 source = this.get_src(mail.url_export_file); 665 timestamp=rs.field(1); 666 rs.close(); 667 this.finalize(); 668 } 669 params="&folder="+new_folder+"&source="+source+"×tamp="+timestamp; 670 cExecute ("$this.imap_functions.unarchive_mail&", handler_unarchive, params); 671 } 672 673 674 local_messages.prototype.download_all_local_attachments = function(folder,id){ 675 this.init_local_messages(); 676 var rs = this.dbGears.execute("select mail from mail where rowid="+id); 677 var tmp = connector.unserialize(rs.field(0)); 678 rs.close(); 679 this.finalize(); 680 source = this.get_src(tmp.url_export_file); 681 source = escape(source); 682 var handler_source = function(data){ 683 download_attachments(null, null, data, null,null,'anexos.zip'); 684 } 685 cExecute("$this.imap_functions.download_all_local_attachments",handler_source,"source="+source); 686 } 687 688 /*************************************************************************/ 689 /* Funcao usada para exportar mensagens arquivadas localmente. 690 * Rommel de Brito Cysne (rommel.cysne@serpro.gov.br) 691 * em 22/12/2008. 692 */ 693 local_messages.prototype.local_messages_to_export = function(){ 694 695 if (openTab.type[currentTab] > 1){ 696 var msgs_to_export_id = currentTab.substring(0,currentTab.length-2,currentTab); 697 }else{ 698 var msgs_to_export_id = get_selected_messages(); 699 } 700 var handler_local_mesgs_to_export = function(data){ 701 download_attachments(null, null, data, null,null,'mensagens.zip'); 702 } 703 if(msgs_to_export_id){ 704 this.init_local_messages(); 705 var l_msg = "t"; 706 var mesgs =""; 707 var subjects =""; 708 var rs = this.dbGears.execute("select mail,subject from mail where rowid in ("+msgs_to_export_id+")"); 709 while(rs.isValidRow()){ 710 mail = connector.unserialize(rs.field(0)); 711 src = this.get_src(mail.url_export_file); 712 subject = rs.field(1); 713 mesgs += src; 714 mesgs += "@@"; 715 subjects += subject; 716 subjects += "@@"; 717 rs.next(); 718 } 719 rs.close(); 720 this.finalize(); 721 mesgs = escape(mesgs); 722 subjects = escape(subjects); 723 params = "subjects="+subjects+"&mesgs="+mesgs+"&l_msg="+l_msg+"&msgs_to_export="+msgs_to_export_id; 724 cExecute ("$this.exporteml.makeAll&", handler_local_mesgs_to_export, params); 725 } 726 return true; 727 } 728 729 local_messages.prototype.get_all_local_folder_messages= function(folder_name){ 730 731 732 var mesgs = new Array(); 733 var subjects = new Array(); 734 var hoje = new Date(); 735 var msgs_to_export = new Array(); 736 var l_msg="t"; 737 738 this.init_local_messages(); 739 var query = "select mail,subject,mail.rowid from mail inner join folder on (mail.id_folder=folder.rowid) where folder.folder='" + folder_name + "'"; 740 741 var rs = this.dbGears.execute(" "+query) 742 743 var handler_local_mesgs_to_export = function(data){ 744 //alert("data - " + data + " - tipo - " + typeof(data)); 745 download_attachments(null, null, data, null,null,'mensagens.zip'); 746 } 747 var j=0; 748 while (rs.isValidRow()){ 749 msgs_to_export[j]=rs.field(2) 750 mail = connector.unserialize(rs.field(0)); 751 msg=this.get_src(mail.url_export_file); 752 subject = rs.field(1); 753 mesgs += msg; 754 mesgs += "@@"; 755 subjects += subject; 756 subjects += "@@"; 757 rs.next(); 758 j++; 759 760 } 761 rs.close(); 762 this.finalize(); 763 source = escape(mesgs); 764 subjects = escape(subjects); 765 params = "folder="+folder_name+"&subjects="+subjects+"&mesgs="+source+"&l_msg="+l_msg+"&msgs_to_export="+msgs_to_export; 766 cExecute ("$this.exporteml.makeAll&", handler_local_mesgs_to_export, params); 767 768 769 } 770 771 772 /*************************************************************************/ 773 561 774 562 775 var expresso_local_messages;
Note: See TracChangeset
for help on using the changeset viewer.