Changeset 4969
- Timestamp:
- 08/22/11 08:17:19 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sandbox/expressoMail1_2/MailArchiver/2.2/expressoMail1_2/js/mail_archiver.js
r4955 r4969 154 154 this.onprocess = false; 155 155 this.queryconfig = new MAQueryConfig(); 156 this.pattern = new MAPattern(); 156 157 this.messagesourcehandler = new Cxf_Transport_Handler(); 158 this.ServiceReturnObject = null; 157 159 this.specialfolders = { 158 160 "inbox":"local_inbox", … … 858 860 MailArchiver.prototype.listMessagesOperationOK = function(returnService){ 859 861 var msglist = new Array(); 862 expresso_mail_archive.ServiceReturnObject = new Array(); 863 //window.alert('messages data\n\n' + print_r(returnService.getReturn())); 860 864 /*window.alert('Dados da mensagem:\n->From ' + returnService.getReturn()[0].getFrom() 861 865 +'\n->To ' + returnService.getReturn()[0].getTo() … … 867 871 for(var i=0; i< returnService.getReturn().length; i++){ 868 872 //window.alert('quer deserializar:\n\n' + print_r(returnService.getReturn()[i])); 869 var ExpSerialized = expresso_mail_archive. toExpressoHeader(returnService.getReturn()[i]);873 var ExpSerialized = expresso_mail_archive.pattern.toExpressoHeader(returnService.getReturn()[i]); 870 874 //window.alert('expSerialized ' + i + '\n\n --\n\n' + print_r(ExpSerialized)); 871 875 //var test = connector.unserialize(ExpSerialized); 872 876 //window.alert('unserialized = \n\n' + test); 873 877 msglist.push(connector.unserialize(ExpSerialized));//usando connector.unserialize sobre o header mapeado no layout abaixo 878 expresso_mail_archive.ServiceReturnObject.push(returnService.getReturn()[i]); //add each one service return data into this embeded object array 879 //window.alert('ServiceReturnObject.lenght = ' + expresso_mail_archive.ServiceReturnObject.length + '\n\n:' + expresso_mail_archive.ServiceReturnObject[i]); 874 880 } 875 881 msglist["num_msgs"] = returnService.getReturn().length; 876 882 //window.alert('print_r\n\n' + print_r(msglist)); 883 877 884 expresso_mail_archive.messageslisted = msglist; 878 885 //window.alert('expresso_mail_archive.message_list.length = ' + expresso_mail_archive.message_list.length); … … 880 887 expresso_mail_archive.drawdata = {messagesList:msglist}; 881 888 expresso_mail_archive.drawMessagesList(); 882 883 //window.alert('get ajax...');884 // expresso_mail_archive.getMessageSource();885 889 } 886 890 … … 931 935 return; 932 936 } 937 //window.alert('getMessageHeaders\n\n' + print_r(headerMsg)); 933 938 return(headerMsg); 934 939 } … … 962 967 963 968 var msgBody = returnService.getReturn(); 969 //window.alert('getMessageOperationOK headers get..'); 964 970 var msgHeaders = expresso_mail_archive.getMessageHeaders(expresso_mail_archive.currentmessage); 965 var expSerializedMessage = expresso_mail_archive.toExpressoMessage(msgHeaders, msgBody); 971 //var expSerializedMessage = expresso_mail_archive.toExpressoMessage(msgHeaders, msgBody); 972 var expSerializedMessage = expresso_mail_archive.pattern.toExpressoMail(msgHeaders, msgBody); 966 973 //window.alert('Serialized data\n\n' + print_r(expSerializedMessage)); 967 974 show_msg(expSerializedMessage); … … 972 979 } 973 980 974 //Under develpment this one 975 MailArchiver.prototype.getMessageSource = function(){ 976 //expresso_mail_archive.messagesourcehandler.onreadystatechange = AlerteO(); 977 //expresso_mail_archive.messagesourcehandler.setRequestHeader("SOAPAction", ""); 978 //expresso_mail_archive.messagesourcehandler.setRequestHeader("Access-Control-Allow-Origin", "*"); 979 //expresso_mail_archive.messagesourcehandler.setRequestHeader("Access-Control-Allow-Credentials", "true"); 980 //window.alert('vai chamar via ajax o texto'); 981 // expresso_mail_archive.messagesourcehandler.open("GET", "http://10.200.242.186:4333/mail/Sent/teste.txt", true); 982 //expresso_mail_archive.messagesourcehandler.setRequestHeader("MessageType", "CALL"); 983 //expresso_mail_archive.messagesourcehandler.setRequestHeader("Access-Control-Allow-Origin", "*"); 984 //expresso_mail_archive.messagesourcehandler.setRequestHeader("Access-Control-Allow-Credentials", "true"); 985 //expresso_mail_archive.messagesourcehandler.send(); 986 } 987 988 function AlerteO(){ 989 //window.alert('Ajax lido:\n\nState = ' + expresso_mail_archive.messagesourcehandler.readyState + '\nStatus = ' + expresso_mail_archive.messagesourcehandler.status); 990 } 991 992 // -----------------------------------SERIALIZED DATA TEMPLATES ---------------- 993 MailArchiver.prototype.toExpressoAddress = function(data){ 994 if((typeof(data) != 'undefined') && (data.length > 0)){ 995 /*var dataFormat = expresso_mail_archive.toExpressoFormatNameMail(data); 996 var dataName = dataFormat[0]; 997 var dataEmail = dataFormat[1]; 998 */ 999 //window.alert('em toExpressoFrom com data = \n' + data + '[' + typeof(data) + ']('+data.length+')'); 1000 var Fromdata = eval("(" + data + ")"); 1001 //window.alert('temos ' + Fromdata.mailbox.length + ' destinatarios/remetentes a lidar...'); 1002 //window.alert('name = ' + Fromdata.mailbox["@name"] + '\nlocal part = ' + Fromdata.mailbox["@localPart"] + '\ndomain = ' + Fromdata.mailbox["@domain"]); 1003 1004 //one address 1005 if(typeof(Fromdata.mailbox.length) == 'undefined'){ 1006 var dataName = Fromdata.mailbox["@name"]; 1007 var dataEmail = Fromdata.mailbox["@localPart"] + '@' + Fromdata.mailbox["@domain"]; 1008 if(dataName == 'null') 1009 dataName = dataEmail; 1010 } 1011 //address list: to header(msgs list), only first metters 1012 else{ 1013 var dataName = Fromdata.mailbox[0]["@name"]; 1014 var dataEmail = Fromdata.mailbox[0]["@localPart"] + '@' + Fromdata.mailbox[0]["@domain"]; 1015 if(dataName == 'null') 1016 dataName = dataEmail; 1017 } 1018 1019 var tplFrom = 'a:3:{' 1020 + 's:4:"name";' 1021 + 's:'+dataName.length+':"'+dataName+'";' 1022 + 's:5:"email";' 1023 + 's:'+dataEmail.length+':"'+dataEmail+'";' 1024 + 's:4:"full";' 1025 + 's:'+(dataName.length + dataEmail.length + 3)+':"'+dataName+' <'+dataEmail+'>";' 1026 + '}'; 1027 //window.alert('from = ' + tplFrom); 1028 } 1029 //Data adrress from mailbox is empty, null, or canot be correctly returned by service invocation (will return 'unknow mailbox' string) 1030 else { 1031 tplFrom = 'a:2{s:4:"name";s:14:"Unknow mailbox";s:5:"email";s:15:"Unknow_mailbox";}'; 1032 } 1033 return(tplFrom); 1034 } 1035 1036 MailArchiver.prototype.toExpressoSubject = function(data){ 1037 if((typeof(data) != 'undefined') && (data.length > 0)){ 1038 var tplSbj = 's:'+data.length+':"'+data+'";' 1039 } 1040 //Subject is empty, null, or canot be correctly returned by service invocation (will return 'Message without subject' string) 1041 else { 1042 tplSbj = 's:25:"[Message without subject]";'; 1043 } 1044 return(tplSbj); 1045 } 1046 1047 MailArchiver.prototype.toExpressoAttachmentsHeader = function(data){ 1048 if((typeof(data) != 'undefined') && (data.length > 0)){ 1049 var Attdata = eval("(" + data + ")"); 1050 if(typeof(Attdata.attachment) != 'undefined'){ 1051 var tplAttatch = 'a:2:{' 1052 + 's:5:"names";'; 1053 //More than 1 attachment - because length will be 'undefined' if just one exists 1054 if(Attdata.attachment.length > 0){ 1055 var strnamesatt = ""; 1056 for(var x=0; x<Attdata.attachment.length; x++){ 1057 var attId = Attdata.attachment[x]["@id"]; 1058 var attName = Attdata.attachment[x]["@name"]; 1059 var attSize = Attdata.attachment[x]["@size"]; 1060 var attMediaType = Attdata.attachment[x]["@mediaType"]; 1061 var attSubType = Attdata.attachment[x]["@subType"]; 1062 var attEncoding = Attdata.attachment[x]["@encoding"]; 1063 1064 strnamesatt += attName + ', '; 1065 } 1066 strnamesatt = strnamesatt.substr(0, strnamesatt.length-2); 1067 var intnumberatt = Attdata.attachment.length; 1068 } 1069 //Just one attachment 1070 else{ 1071 var attId = Attdata.attachment["@id"]; 1072 var attName = Attdata.attachment["@name"]; 1073 var attSize = Attdata.attachment["@size"]; 1074 var attMediaType = Attdata.attachment["@mediaType"]; 1075 var attSubType = Attdata.attachment["@subType"]; 1076 var attEncoding = Attdata.attachment["@encoding"]; 1077 strnamesatt = attName; 1078 var intnumberatt = 1; 1079 } 1080 1081 tplAttatch += 's:'+strnamesatt.length+':"'+strnamesatt+'";' 1082 + 's:18:"number_attachments";i:' +intnumberatt+';' 1083 + '}'; 1084 } 1085 else { 1086 tplAttatch = 'a:2:{s:5:"names";b:0;s:18:"number_attachments";i:0;}'; 1087 } 1088 } 1089 //No attatch data 1090 else { 1091 tplAttatch = 'a:2:{s:5:"names";b:0;s:18:"number_attachments";i:0;}'; 1092 } 1093 return(tplAttatch); 1094 } 1095 1096 MailArchiver.prototype.toExpressoDate = function(data){ 1097 var ndate = new Date(data); 1098 //ndate.setTime(data); 1099 var odate = zeroFill(ndate.getDate()) + '/' + zeroFill(ndate.getMonth()+1) + '/' + zeroFill(ndate.getFullYear() + ' ' + zeroFill(ndate.getHours()) + ':' + zeroFill(ndate.getMinutes()) + ':' + zeroFill(ndate.getSeconds())); 1100 return(odate); 1101 } 1102 1103 MailArchiver.prototype.toExpressoFlags = function(data){ 1104 if((data.length > 0) && (typeof(data) != 'undefined')){ 1105 var Tagdata = eval("(" + data + ")"); 1106 //More than 1 attachment - because length will be 'undefined' if just one exists 1107 if(Tagdata.tag.length >= 0){ 1108 var strnamestag = ""; 1109 for(var x=0; x<Tagdata.tag.length; x++){ 1110 var tagvalue = Tagdata.tag[x]["@value"]; 1111 if(tagvalue.toLowerCase().indexOf('recent')!= -1) 1112 strnamestag += 's:6:"Recent";s:1:"N";'; 1113 if(tagvalue.toLowerCase().indexOf('unseen')!= -1) 1114 strnamestag += 's:6:"Unseen";s:1:"U";'; 1115 if(tagvalue.toLowerCase().indexOf('answered')!= -1) 1116 strnamestag += 's:8:"Answered";s:1:"A";'; 1117 if(tagvalue.toLowerCase().indexOf('forwarded')!= -1) 1118 strnamestag += 's:9:"Forwarded";s:1:"F"'; 1119 if(tagvalue.toLowerCase().indexOf('draft')!= -1) 1120 strnamestag += 's:5:"Draft";s:1:"X";'; 1121 if(tagvalue.toLowerCase().indexOf('importance')!= -1) 1122 strnamestag += 's:10:"Importance";s:6:"High";'; 1123 if(tagvalue.toLowerCase().indexOf('flagged')!= -1) 1124 strnamestag += 's:7:"Flagged";s:1:"F";'; 1125 } 1126 var tplTags = strnamestag; 1127 } 1128 else{ 1129 var strnamestag = ""; 1130 var tagvalue = Tagdata.tag["@value"]; 1131 if(tagvalue.toLowerCase().indexOf('recent')!= -1) 1132 strnamestag += 's:6:"Recent";s:1:"N";'; 1133 if(tagvalue.toLowerCase().indexOf('unseen')!= -1) 1134 strnamestag += 's:6:"Unseen";s:1:"U";'; 1135 if(tagvalue.toLowerCase().indexOf('answered')!= -1) 1136 strnamestag += 's:8:"Answered";s:1:"A";'; 1137 if(tagvalue.toLowerCase().indexOf('forwarded')!= -1) 1138 strnamestag += 's:9:"Forwarded";s:1:"F"'; 1139 if(tagvalue.toLowerCase().indexOf('draft')!= -1) 1140 strnamestag += 's:5:"Draft";s:1:"X";'; 1141 if(tagvalue.toLowerCase().indexOf('importance')!= -1) 1142 strnamestag += 's:10:"Importance";s:6:"High";'; 1143 if(tagvalue.toLowerCase().indexOf('flagged')!= -1) 1144 strnamestag += 's:7:"Flagged";s:1:"F";'; 1145 var tplTags = strnamestag; 1146 } 1147 } 1148 else{ 1149 tplTags = 's:6:"Recent";s:1:" ";s:6:"Unseen";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;'; 1150 } 1151 return(tplTags); 1152 } 1153 1154 MailArchiver.prototype.toExpressoHeader = function(data){ 1155 var tplHeader = 'a:16:{' 1156 + 's:11:"ContentType";' 1157 + 's:' + data.getContentType().length + ':"' + data.getContentType() + '";' 1158 + expresso_mail_archive.toExpressoFlags(data.getTags()) 1159 + 's:10:"msg_number";' 1160 + 's:'+data.getId().length+':"'+data.getId()+'";' 1161 + 's:5:"udate";' 1162 + 'i:' + parseInt(data.getDate()/1000) + ';' 1163 + 's:9:"timestamp";' 1164 + 'i:' + parseInt(data.getDate()/1000) + ';' 1165 + 's:4:"from";' 1166 + expresso_mail_archive.toExpressoAddress(data.getFrom()) 1167 + 's:2:"to";' 1168 + expresso_mail_archive.toExpressoAddress(data.getTo()) 1169 + 's:7:"subject";' 1170 + expresso_mail_archive.toExpressoSubject(data.getSubject()) 1171 + 's:4:"Size";' 1172 + 'i:'+data.getSize()+';' 1173 + 's:10:"attachment";' 1174 + expresso_mail_archive.toExpressoAttachmentsHeader(data.getAttachments()) 1175 + '}'; 1176 //window.alert('Serialized data\n\n' + tplHeader + '\ngmtoffset: ' + gmtoffset); 1177 return(tplHeader); 1178 } 1179 1180 MailArchiver.prototype.toExpressoBody = function(mheader){ 1181 var tplBody = 'a:33:{' 1182 + 's:4:"body";N;' 1183 + 's:11:"attachments";N;' 1184 + 's:6:"thumbs";N;' 1185 + 's:9:"signature";N;' 1186 + 's:10:"Importance";s:6:"Normal";' 1187 + 's:6:"Recent";s:1:" ";' 1188 + 's:6:"Unseen";s:1:"N";' 1189 + 's:7:"Deleted";s:1:" ";' 1190 + 's:7:"Flagged";b:0;' 1191 + 's:8:"Answered";s:1:" ";' 1192 + 's:5:"Draft";s:1:" ";' 1193 + 's:10:"msg_number";s:4:"2241";' 1194 + 's:10:"msg_folder";s:5:"INBOX";' 1195 + 's:5:"udate";s:5:"10:01";' 1196 + 's:7:"msg_day";s:10:"10/05/2011";' 1197 + 's:8:"msg_hour";s:5:"10:02";' 1198 + 's:8:"fulldate";s:36:"10/05/2011 10:01 (05:35 horas atras)";' 1199 + 's:9:"smalldate";s:5:"10:04";' 1200 + 's:4:"from";N;' 1201 + 's:6:"sender";a:3:{' 1202 + 's:4:"name";N;' 1203 + 's:5:"email";s:46:"listaregional-pae-bounces@grupos.serpro.gov.br";' 1204 + 's:4:"full";s:46:"listaregional-pae-bounces@grupos.serpro.gov.br";' 1205 + '}' 1206 + 's:10:"toaddress2";s:32:"comunicacao.social@serpro.gov.br";' 1207 + 's:2:"cc";N;' 1208 + 's:3:"bcc";N;' 1209 + 's:8:"reply_to";N;' 1210 + 's:7:"subject";N;' 1211 + 's:4:"Size";s:4:"1234";' 1212 + 's:15:"reply_toaddress";s:45:"com.social <comunicacao.social@serpro.gov.br>";' 1213 + 's:9:"timestamp";i:1305032476;' 1214 + 's:5:"login";i:944889240;' 1215 + 's:6:"header";a:16:{' 1216 + 's:11:"ContentType";s:6:"normal";' 1217 + 's:10:"Importance";s:6:"Normal";' 1218 + 's:6:"Recent";s:1:" ";' 1219 + 's:6:"Unseen";s:1:"N";' 1220 + 's:8:"Answered";s:1:" ";' 1221 + 's:5:"Draft";s:1:" ";' 1222 + 's:7:"Deleted";s:1:" ";' 1223 + 's:7:"Flagged";b:0;' 1224 + 's:10:"msg_number";s:4:"2251";' 1225 + 's:5:"udate";s:10:"10/05/2011";' 1226 + 's:11:"offsetToGMT";i:-10800;' 1227 + 's:8:"aux_date";N;' 1228 + 's:4:"from";a:2:{' 1229 + 's:4:"name";s:10:"com.social";' 1230 + 's:5:"email";s:32:"comunicacao.social@serpro.gov.br";' 1231 + '}' 1232 + 's:2:"to";a:2:{' 1233 + 's:4:"name";s:32:"comunicacao.social@serpro.gov.br";' 1234 + 's:5:"email";s:32:"comunicacao.social@serpro.gov.br";' 1235 + '}' 1236 + 's:7:"subject";s:28:"Primeira leitura - 10/5/2011";' 1237 + 's:4:"Size";N;' 1238 + 's:10:"attachment";a:2:{' 1239 + 's:5:"names";b:0;' 1240 + 's:18:"number_attachments";i:0;' 1241 + '}' 1242 + '}' 1243 + 's:12:"array_attach";N;' 1244 + '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";' 1245 + 's:2:"to";N;' 1246 + '}'; 1247 return(tplBody); 1248 } 1249 1250 MailArchiver.prototype.toExpressoMessage = function(mheader, mbody){ 1251 var strMessage = null; 1252 var strMessage1 = expresso_mail_archive.toExpressoBody(mheader); 1253 //var str3 = connector.unserialize(strMessage1); 1254 //strMessage = eval("(" + strMessage1 + ")"); 1255 strMessage = connector.unserialize(strMessage1); 1256 1257 window.alert('dump strMessage:\n\n' + print_r(strMessage,0)); 1258 1259 strMessage['from'] = mheader["from"]; 1260 //strMessage['from'] = expresso_mail_archive.toExpressoBody(mheader, mbody); 1261 strMessage['subject'] = mheader["subject"]; 1262 strMessage['body'] = mbody; 1263 strMessage['to'] = mheader["to"]; 1264 strMessage['cc'] = mheader["cc"]; 1265 strMessage['local_message'] = true; 1266 strMessage['folder'] = 'local_' + expresso_mail_archive.currentfolder; 1267 strMessage['msg_number'] = mheader["msg_number"]; 1268 //window.alert('strMessage dump\n\n' + print_r(strMessage)); 1269 return(strMessage); 1270 1271 1272 /* 1273 * retorno['from'] = connector.unserialize(rs.field(2)); 1274 retorno['subject'] = rs.field(3); 1275 retorno['body'] = rs.field(4); 1276 //Codigo que as imagens embutidas em emails (com multipart/related ou multipart/mixed) sejam corretamente mostradas em emails arquivados. Os links do 1277 //tipo "./inc/show_embedded_attach.php?msg_folder=[folder]&msg_num=[msg_num]&msg_part=[part]" 1278 //são substituidos pelos links dos anexos capturados pelo gears. 1279 1280 var thumbs= retorno.thumbs; 1281 var anexos= retorno.array_attach; 1282 for (i in anexos) 1283 { 1284 if(anexos[i]['url'] && anexos[i]['url'].match(/((jpg)|(jpeg)|(png)|(gif)|(bmp))/gi)) 1285 { 1286 var er_imagens = new RegExp("\\.\\/inc\\/show_embedded_attach.php\\?msg_folder=[\\w/]+\\&msg_num=[0-9]+\\&msg_part="+anexos[i]['pid']); 1287 var Result_imagens = er_imagens.exec(retorno['body']); 1288 retorno['body'] = retorno['body'].replace(Result_imagens,anexos[i]['url']); 1289 if(thumbs && thumbs[i]){ 1290 er_imagens = new RegExp("\\.\\/inc\\/show_thumbs.php\\?file_type=image\\/[\\w]+\\&msg_num=[0-9]+\\&msg_folder=[\\w/%]+\\&msg_part="+anexos[i]['pid']); 1291 Result_imagens = er_imagens.exec(thumbs[i]); 1292 thumbs[i] = thumbs[i].replace(Result_imagens,"'"+anexos[i]['url']+"'"); 1293 er_imagens = new RegExp("\\.\\/inc\\/show_img.php\\?msg_num=[0-9]+\\&msg_folder=[\\w/%]+\\&msg_part="+anexos[i]['pid']); 1294 Result_imagens = er_imagens.exec(thumbs[i]); 1295 thumbs[i] = thumbs[i].replace(Result_imagens,anexos[i]['url']); 1296 thumbs[i] = thumbs[i].replace(/<IMG/i,'<img width="120"'); 1297 } 1298 } 1299 } 1300 1301 retorno['to'] = connector.unserialize(rs.field(5)); 1302 retorno['cc'] = connector.unserialize(rs.field(6)); 1303 1304 retorno['local_message'] = true; 1305 retorno['msg_folder'] = "local_"+rs.field(7); //Now it's a local folder 1306 retorno['msg_number'] = rs.field(0)+plus_id; //the message number is the rowid 1307 **/ 1308 } 1309 981 982 MailArchiver.prototype.getMessageServiceObject = function(msgid){ 983 for(var i=0; i < expresso_mail_archive.ServiceReturnObject.length; i++){ 984 if (expresso_mail_archive.ServiceReturnObject[i].getId() == msgid){ 985 return(expresso_mail_archive.ServiceReturnObject[i]); 986 } 987 } 988 return(null); 989 } 1310 990 1311 991 MailArchiver.prototype.Query = function(offlow, offup, qdata){
Note: See TracChangeset
for help on using the changeset viewer.