Changeset 4942 for sandbox/expressoMail1_2/MailArchiver/2.2
- Timestamp:
- 08/17/11 14:57:21 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sandbox/expressoMail1_2/MailArchiver/2.2/expressoMail1_2/js/mail_archiver.js
r4909 r4942 142 142 this.counter = 0; 143 143 this.message_list = new Array(); 144 this.messageslisted = new Array(); 144 145 this.total_messages = 0; 145 146 this.messages_processed = 0; … … 149 150 this.folders = null; 150 151 this.currentfolder = 'local_root'; 152 this.currentmessage = null; 151 153 this.drawdata = null; 152 154 this.onprocess = false; 153 155 this.queryconfig = new MAQueryConfig(); 156 this.messagesourcehandler = new Cxf_Transport_Handler(); 154 157 this.specialfolders = { 155 158 "inbox":"local_inbox", … … 370 373 cExecute("$this.exporteml.js_source_var",arch_handler,"folder="+url_decode(source_folder)+"&msgs_to_export="+expresso_mail_archive.message_list[0]); 371 374 } 372 else throw('Ops. Message list stack is empty! ');375 else throw('Ops. Message list stack is empty!\nMessage list count = ' + expresso_mail_archive.message_list.length + '\nFirst child = ' + expresso_mail_archive.message_list[0]); 373 376 } 374 377 catch(e){ … … 741 744 var testing_data_xml = '<?xml version="1.0" encoding="UTF-8"?><query lowerIndex="0" upperIndex="50"><folder id="'+folderid+'"/><order asc="date"/><order desc="subject"/></query>'; 742 745 var testing_data_json_mapped = '{"query":{"@lowerIndex":"0", "@upperIndex":"50", "folder":[{"@id":"'+folderid+'"}], "order":[{"@asc":"date", "@desc":"subject"}]}}'; 743 746 //window.alert('Query config lower = ' + expresso_mail_archive.queryconfig.lowerIndex + ' - upper = ' + expresso_mail_archive.queryconfig.upperIndex + ' folder = ' + expresso_mail_archive.queryconfig.folder); 744 747 if (expresso_mail_archive.queryconfig.folder != null) 745 748 var testing_data = expresso_mail_archive.queryconfig.query(); … … 775 778 msglist["num_msgs"] = returnService.getReturn().length; 776 779 //window.alert('print_r\n\n' + print_r(msglist)); 780 expresso_mail_archive.messageslisted = msglist; 781 //window.alert('expresso_mail_archive.message_list.length = ' + expresso_mail_archive.message_list.length); 782 //window.alert(print_r(expresso_mail_archive.message_list)); 777 783 expresso_mail_archive.drawdata = {messagesList:msglist}; 778 784 expresso_mail_archive.drawMessagesList(); 785 786 window.alert('get ajax...'); 787 expresso_mail_archive.getMessageSource(); 779 788 } 780 789 … … 799 808 alternate_border(0); 800 809 Element("border_id_0").innerHTML = " " + lang_folder(fcaption) + ' <font face="Verdana" size="1" color="#505050">[<span id="new_m"> </span> / <span id="tot_m"></span>]</font>'; 801 draw_box(data_to_draw, expresso_mail_archive.currentfolder, true);810 draw_box(data_to_draw, 'local_' + expresso_mail_archive.currentfolder, true); 802 811 draw_paging(expresso_mail_archive.drawdata.messagesList.length); 803 812 Element("tot_m").innerHTML = expresso_mail_archive.drawdata.messagesList.length; 804 813 //update_menu(); 805 814 815 } 816 817 MailArchiver.prototype.getMessageHeaders = function(msgId){ 818 var msgfound = false; 819 var headerMsg; 820 821 //Get message header info, from message list operation previously invoked 822 for (var w=0; w < expresso_mail_archive.messageslisted.length; w++){ 823 //window.alert('comparando messageslisted "' +expresso_mail_archive.messageslisted[w]["msg_number"]+ '" com o id parametrizado "' +msgId+ '"'); 824 if(expresso_mail_archive.messageslisted[w]["msg_number"] == msgId){ 825 headerMsg = expresso_mail_archive.messageslisted[w]; 826 msgfound = true; 827 break; 828 } 829 } 830 //Message does not exists at message list. it will not be loaded. 831 if(!msgfound){ 832 alert('ops... the message"'+msgId+'" was not found at messages list, so it cannot be readed!') 833 headerMsg = null; 834 return; 835 } 836 return(headerMsg); 837 } 838 839 MailArchiver.prototype.getMessage = function(msgdata){ 840 try{ 841 if((msgdata.length <= 0) || (msgdata == null)){ 842 window.alert('no msgdata received. aborting local message load') 843 return; 844 } 845 846 expresso_mail_archive.currentmessage = expresso_mail_archive.getMessageHeaders(msgdata)["msg_number"]; 847 //window.alert('current message guid = ' + expresso_mail_archive.currentmessage); 848 849 //window.alert('vai invocar getMessageBody com msgid=' + expresso_mail_archive.currentmessage); 850 ArchiveServices.getMessageBody(expresso_mail_archive.getMessageOperationOK, expresso_mail_archive.getMessageOperationFailure, sessid, expresso_mail_archive.currentmessage); 851 } 852 catch(e){ 853 window.alert('Ops...getMessage fails at:\n' + e); 854 } 855 } 856 857 MailArchiver.prototype.getMessageOperationOK = function(returnService){ 858 if(returnService.getReturn().length <= 0){ 859 window.alert('Oh no: service return data is zero length...'); 860 return; 861 } 862 863 //window.alert('Get header info from message "' + expresso_mail_archive.currentmessage + '"'); 864 865 866 var msgBody = returnService.getReturn(); 867 var msgHeaders = expresso_mail_archive.getMessageHeaders(expresso_mail_archive.currentmessage); 868 var expSerializedMessage = expresso_mail_archive.toExpressoMessage(msgHeaders, msgBody); 869 //window.alert('Serialized data\n\n' + print_r(expSerializedMessage)); 870 show_msg(expSerializedMessage); 871 } 872 873 MailArchiver.prototype.getMessageOperationFailure = function(ServiceFault){ 874 window.alert('Message fails do be loaded.'); 875 } 876 877 //Under develpment this one 878 MailArchiver.prototype.getMessageSource = function(){ 879 expresso_mail_archive.messagesourcehandler.onreadystatechange = AlerteO(); 880 //expresso_mail_archive.messagesourcehandler.setRequestHeader("SOAPAction", ""); 881 //expresso_mail_archive.messagesourcehandler.setRequestHeader("Access-Control-Allow-Origin", "*"); 882 //expresso_mail_archive.messagesourcehandler.setRequestHeader("Access-Control-Allow-Credentials", "true"); 883 window.alert('vai chamar via ajax o texto'); 884 expresso_mail_archive.messagesourcehandler.open("GET", "http://10.200.242.186:4333/mail/Sent/teste.txt", true); 885 //expresso_mail_archive.messagesourcehandler.setRequestHeader("MessageType", "CALL"); 886 //expresso_mail_archive.messagesourcehandler.setRequestHeader("Access-Control-Allow-Origin", "*"); 887 //expresso_mail_archive.messagesourcehandler.setRequestHeader("Access-Control-Allow-Credentials", "true"); 888 expresso_mail_archive.messagesourcehandler.send(); 889 } 890 891 function AlerteO(){ 892 window.alert('Ajax lido:\n\nState = ' + expresso_mail_archive.messagesourcehandler.readyState + '\nStatus = ' + expresso_mail_archive.messagesourcehandler.status); 806 893 } 807 894 … … 839 926 + 's:'+dataEmail.length+':"'+dataEmail+'";' 840 927 + 's:4:"full";' 841 + 's:'+(dataName.length + dataEmail.length + 3)+':"'+dataName+' " <'+dataEmail+'>;'928 + 's:'+(dataName.length + dataEmail.length + 3)+':"'+dataName+' <'+dataEmail+'>";' 842 929 + '}'; 930 //window.alert('from = ' + tplFrom); 843 931 } 844 932 //Data adrress from mailbox is empty, null, or canot be correctly returned by service invocation (will return 'unknow mailbox' string) … … 993 1081 } 994 1082 995 MailArchiver.prototype.toExpressoMail = function(data){ 996 1083 MailArchiver.prototype.toExpressoBody = function(mheader){ 1084 var tplBody = 'a:33:{' 1085 + 's:4:"body";N;' 1086 + 's:11:"attachments";N;' 1087 + 's:6:"thumbs";N;' 1088 + 's:9:"signature";N;' 1089 + 's:10:"Importance";s:6:"Normal";' 1090 + 's:6:"Recent";s:1:" ";' 1091 + 's:6:"Unseen";s:1:"N";' 1092 + 's:7:"Deleted";s:1:" ";' 1093 + 's:7:"Flagged";b:0;' 1094 + 's:8:"Answered";s:1:" ";' 1095 + 's:5:"Draft";s:1:" ";' 1096 + 's:10:"msg_number";s:4:"2241";' 1097 + 's:10:"msg_folder";s:5:"INBOX";' 1098 + 's:5:"udate";s:5:"10:01";' 1099 + 's:7:"msg_day";s:10:"10/05/2011";' 1100 + 's:8:"msg_hour";s:5:"10:02";' 1101 + 's:8:"fulldate";s:36:"10/05/2011 10:01 (05:35 horas atras)";' 1102 + 's:9:"smalldate";s:5:"10:04";' 1103 + 's:4:"from";N;' 1104 + 's:6:"sender";a:3:{' 1105 + 's:4:"name";N;' 1106 + 's:5:"email";s:46:"listaregional-pae-bounces@grupos.serpro.gov.br";' 1107 + 's:4:"full";s:46:"listaregional-pae-bounces@grupos.serpro.gov.br";' 1108 + '}' 1109 + 's:10:"toaddress2";s:32:"comunicacao.social@serpro.gov.br";' 1110 + 's:2:"cc";N;' 1111 + 's:3:"bcc";N;' 1112 + 's:8:"reply_to";N;' 1113 + 's:7:"subject";N;' 1114 + 's:4:"Size";s:4:"1234";' 1115 + 's:15:"reply_toaddress";s:45:"com.social <comunicacao.social@serpro.gov.br>";' 1116 + 's:9:"timestamp";i:1305032476;' 1117 + 's:5:"login";i:944889240;' 1118 + 's:6:"header";a:16:{' 1119 + 's:11:"ContentType";s:6:"normal";' 1120 + 's:10:"Importance";s:6:"Normal";' 1121 + 's:6:"Recent";s:1:" ";' 1122 + 's:6:"Unseen";s:1:"N";' 1123 + 's:8:"Answered";s:1:" ";' 1124 + 's:5:"Draft";s:1:" ";' 1125 + 's:7:"Deleted";s:1:" ";' 1126 + 's:7:"Flagged";b:0;' 1127 + 's:10:"msg_number";s:4:"2251";' 1128 + 's:5:"udate";s:10:"10/05/2011";' 1129 + 's:11:"offsetToGMT";i:-10800;' 1130 + 's:8:"aux_date";N;' 1131 + 's:4:"from";a:2:{' 1132 + 's:4:"name";s:10:"com.social";' 1133 + 's:5:"email";s:32:"comunicacao.social@serpro.gov.br";' 1134 + '}' 1135 + 's:2:"to";a:2:{' 1136 + 's:4:"name";s:32:"comunicacao.social@serpro.gov.br";' 1137 + 's:5:"email";s:32:"comunicacao.social@serpro.gov.br";' 1138 + '}' 1139 + 's:7:"subject";s:28:"Primeira leitura - 10/5/2011";' 1140 + 's:4:"Size";N;' 1141 + 's:10:"attachment";a:2:{' 1142 + 's:5:"names";b:0;' 1143 + 's:18:"number_attachments";i:0;' 1144 + '}' 1145 + '}' 1146 + 's:12:"array_attach";N;' 1147 + '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";' 1148 + 's:2:"to";N;' 1149 + '}'; 1150 return(tplBody); 1151 } 1152 1153 MailArchiver.prototype.toExpressoMessage = function(mheader, mbody){ 1154 var strMessage = null; 1155 var strMessage1 = expresso_mail_archive.toExpressoBody(mheader); 1156 //var str3 = connector.unserialize(strMessage1); 1157 //strMessage = eval("(" + strMessage1 + ")"); 1158 strMessage = connector.unserialize(strMessage1); 1159 1160 window.alert('dump strMessage:\n\n' + print_r(strMessage,0)); 1161 1162 strMessage['from'] = mheader["from"]; 1163 //strMessage['from'] = expresso_mail_archive.toExpressoBody(mheader, mbody); 1164 strMessage['subject'] = mheader["subject"]; 1165 strMessage['body'] = mbody; 1166 strMessage['to'] = mheader["to"]; 1167 strMessage['cc'] = mheader["cc"]; 1168 strMessage['local_message'] = true; 1169 strMessage['folder'] = 'local_' + expresso_mail_archive.currentfolder; 1170 strMessage['msg_number'] = mheader["msg_number"]; 1171 //window.alert('strMessage dump\n\n' + print_r(strMessage)); 1172 return(strMessage); 1173 1174 1175 /* 1176 * retorno['from'] = connector.unserialize(rs.field(2)); 1177 retorno['subject'] = rs.field(3); 1178 retorno['body'] = rs.field(4); 1179 //Codigo que as imagens embutidas em emails (com multipart/related ou multipart/mixed) sejam corretamente mostradas em emails arquivados. Os links do 1180 //tipo "./inc/show_embedded_attach.php?msg_folder=[folder]&msg_num=[msg_num]&msg_part=[part]" 1181 //são substituidos pelos links dos anexos capturados pelo gears. 1182 1183 var thumbs= retorno.thumbs; 1184 var anexos= retorno.array_attach; 1185 for (i in anexos) 1186 { 1187 if(anexos[i]['url'] && anexos[i]['url'].match(/((jpg)|(jpeg)|(png)|(gif)|(bmp))/gi)) 1188 { 1189 var er_imagens = new RegExp("\\.\\/inc\\/show_embedded_attach.php\\?msg_folder=[\\w/]+\\&msg_num=[0-9]+\\&msg_part="+anexos[i]['pid']); 1190 var Result_imagens = er_imagens.exec(retorno['body']); 1191 retorno['body'] = retorno['body'].replace(Result_imagens,anexos[i]['url']); 1192 if(thumbs && thumbs[i]){ 1193 er_imagens = new RegExp("\\.\\/inc\\/show_thumbs.php\\?file_type=image\\/[\\w]+\\&msg_num=[0-9]+\\&msg_folder=[\\w/%]+\\&msg_part="+anexos[i]['pid']); 1194 Result_imagens = er_imagens.exec(thumbs[i]); 1195 thumbs[i] = thumbs[i].replace(Result_imagens,"'"+anexos[i]['url']+"'"); 1196 er_imagens = new RegExp("\\.\\/inc\\/show_img.php\\?msg_num=[0-9]+\\&msg_folder=[\\w/%]+\\&msg_part="+anexos[i]['pid']); 1197 Result_imagens = er_imagens.exec(thumbs[i]); 1198 thumbs[i] = thumbs[i].replace(Result_imagens,anexos[i]['url']); 1199 thumbs[i] = thumbs[i].replace(/<IMG/i,'<img width="120"'); 1200 } 1201 } 1202 } 1203 1204 retorno['to'] = connector.unserialize(rs.field(5)); 1205 retorno['cc'] = connector.unserialize(rs.field(6)); 1206 1207 retorno['local_message'] = true; 1208 retorno['msg_folder'] = "local_"+rs.field(7); //Now it's a local folder 1209 retorno['msg_number'] = rs.field(0)+plus_id; //the message number is the rowid 1210 **/ 997 1211 } 998 1212
Note: See TracChangeset
for help on using the changeset viewer.