Changeset 5085 for sandbox/expressoMail1_2
- Timestamp:
- 09/11/11 09:16:08 (12 years ago)
- Location:
- sandbox/expressoMail1_2/MailArchiver/2.2/expressoMail1_2
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
sandbox/expressoMail1_2/MailArchiver/2.2/expressoMail1_2/inc/class.imap_functions.inc.php
r4955 r5085 15 15 'import_msgs' => True, 16 16 'msgs_to_archive' => True, 17 'get_offset_gmt' => True 17 'get_offset_gmt' => True, 18 'get_msg_flags' => True 18 19 ); 19 20 … … 4145 4146 return($this->functions->CalculateDateOffset()); 4146 4147 } 4148 4149 //MailArchiver -> get message flags only, invoked at archive operation 4150 function get_msg_flags($args){ 4151 $msg_folder = $args['folder']; 4152 $msg_n = $args['msg_number']; 4153 4154 $arr_msg = explode(",", $msg_n); 4155 4156 for($i=0; $i<count($arr_msg); $i++){ 4157 4158 if(!$this->mbox || !is_resource($this->mbox)) 4159 $this->mbox = $this->open_mbox($msg_folder); 4160 4161 if(!is_resource($this->mbox)) 4162 return(false); 4163 4164 $header = @imap_headerinfo($this->mbox, imap_msgno($this->mbox, $arr_msg[$i]), 80, 255); 4165 4166 if (!is_object($header)) 4167 return false; 4168 4169 $taglist[$i]["msgid"] = $msg_n; 4170 $taglist[$i]["unseen"] = $header->Unseen; 4171 $taglist[$i]["recent"] = $header->Recent; 4172 $taglist[$i]["flagged"] = $header->Flagged; 4173 $taglist[$i]["draft"] = $header->Draft; 4174 $taglist[$i]["answered"] = $header->Answered; 4175 $taglist[$i]["deleted"] = $header->Deleted; 4176 4177 if($header->Answered =='A' && $header->Draft == 'X') 4178 $taglist[$i]['forwarded'] = 'F'; 4179 else 4180 $taglist[$i]['forwarded'] = ' '; 4181 4182 if($header->Flagged != "F" && $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_important_flag']) { 4183 $flag = preg_match('/importance *: *(.*)\r/i', 4184 imap_fetchheader($this->mbox, imap_msgno($this->mbox, $msg_number)) 4185 ,$importance); 4186 $taglist[$i]["flagged"] = $flag==0?false:strtolower($importance[1])=="high"?"F":false; 4187 } 4188 } 4189 4190 return $taglist; 4191 } 4147 4192 } 4148 4193 ?> -
sandbox/expressoMail1_2/MailArchiver/2.2/expressoMail1_2/js/MAExpressoPattern.js
r5049 r5085 71 71 72 72 MAPattern.prototype.toExpressoAttachmentsHeader = function(data){ 73 if((typeof(data) != 'undefined') && (data.length > 0)){73 if((typeof(data) != 'undefined') && (data.length > 2)){ 74 74 var Attdata = eval("(" + data + ")"); 75 75 if(typeof(Attdata.attachment) != 'undefined'){ … … 185 185 186 186 MAPattern.prototype.toExpressoHeader = function(data){ 187 var tplHeader = 'a: 16:{'187 var tplHeader = 'a:26:{' 188 188 + 's:11:"ContentType";' 189 189 + 's:' + data.getContentType().length + ':"' + data.getContentType() + '";' … … 382 382 var objTag = eval('(' + tagData + ')'); 383 383 var tplHMail = ""; 384 384 385 if(objTag.tag){ 385 386 //More than 1 attachment - because length will be 'undefined' if just one exists 386 387 if(objTag.tag.length >= 0){ … … 423 424 tplHMail += 's:7:"Flagged";s:1:" ";'; 424 425 } 426 } 425 427 426 428 //No header to tag … … 442 444 var srlData = ""; 443 445 444 //There are attacments, map them446 //There are attacments, map all them 445 447 if(typeof(objAtt.attachment) != 'undefined'){ 446 448 srlData = 's:12:"array_attach";a:' + objAtt.attachment.length + ':{'; 447 449 for(var m=0; m<objAtt.attachment.length; m++){ 448 //TODO "download" parametr at webservice => var urllink = 'http://10.200.242.186:4333/part/'+objAtt.attachment[m]["@id"]+'/download';449 //var urllink = 'http://10.200.242.186:4333/part/'+objAtt.attachment[m]["@id"];450 //var urllink = mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/part/'+objAtt.attachment[m]["@id"];451 450 var urllink = mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/part/download/'+objAtt.attachment[m]["@id"]; 452 451 srlData += 's:1:"' + m + '";' … … 468 467 MAPattern.prototype.toExpressoMailURLExportFile = function(path, file){ 469 468 var srlData = 's:15:"url_export_file";'; 470 //var urllink = 'http://10.200.242.186:4333/mail/'+path+'/'+file+'/download';471 //var urllink = 'http://10.200.242.186:4333/mail/'+path+'/'+file;472 469 var urllink = mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/mail/'+path+'/'+file; 473 470 srlData += 's:' + urllink.length + ':"' + urllink + '";' … … 578 575 retorno['msg_folder'] = "local_"+rs.field(7); //Now it's a local folder 579 576 retorno['msg_number'] = rs.field(0)+plus_id; //the message number is the rowid 580 **/ 577 **/ 578 } 579 580 MAPattern.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); 581 611 } 582 612 --> -
sandbox/expressoMail1_2/MailArchiver/2.2/expressoMail1_2/js/MAQueryConfig.js
r5070 r5085 110 110 //window.alert('setbounds low = ' + low + ' high = ' + high); 111 111 this.lowerIndex = '"@lowerIndex":"'+(parseInt(low)-1)+'",'; 112 this.upperIndex = '"@upperIndex":"'+(parseInt(high) -1)+'",';112 this.upperIndex = '"@upperIndex":"'+(parseInt(high))+'",'; 113 113 } 114 114 //From receives a array of structutred data, by the model -
sandbox/expressoMail1_2/MailArchiver/2.2/expressoMail1_2/js/mail_archiver.js
r5073 r5085 170 170 this.unarchievefolder = null; 171 171 this.unarchievenewfolder = null; 172 172 this.taglist = null; 173 173 } 174 174 … … 351 351 352 352 MailArchiver.prototype.CreateMessageList = function(msg_list){ 353 //window.alert('criando messagelist de arquivamento.'); 354 355 // for(var j=0; j<expresso_mail_archive.messageslisted.length; j++){ 356 // window.alert('\nAnswered = ' + expresso_mail_archive.messageslisted[j]["Answered"] + '\nFlagged = ' + expresso_mail_archive.messageslisted[j]["Flagged"] + '\nUnseen = ' + expresso_mail_archive.messageslisted[j]["Unseen"] + '\nDraft = ' + expresso_mail_archive.messageslisted[j]["Draft"]); 357 // } 358 353 359 if((msg_list != null) && (msg_list != "") && (msg_list != " ")){ 354 360 if (expresso_mail_archive.message_list.length == 0){ … … 360 366 } 361 367 } 368 362 369 //Push message list to process the only one 363 else expresso_mail_archive.message_list.push(msg_list); 370 else { 371 //window.alert('testando marcadores default...\n->Answered = ' +expresso_mail_archive.messageslisted[i]["Answered"] + '\n->Unseen = '+expresso_mail_archive.messageslisted[i]["Unseen"]); 372 expresso_mail_archive.message_list.push(msg_list); 373 } 364 374 } 365 375 } … … 367 377 else expresso_mail_archive.message_list = new Array(); 368 378 } 379 369 380 370 381 //Archive Operation … … 374 385 document.getElementById('main_title').innerHTML = get_lang("Starting to archive messages"); 375 386 expresso_mail_archive.CreateMessageList(msgs_id); 387 388 var tagsHandler = function(data){ 389 if(data){ 390 var datah = eval(data); 391 //window.alert('unseen = ' +datah["unseen"] + '\nrecent = ' + datah["recent"] + '\nflagged = ' + datah["flagged"] + '\ndraft = ' + datah["draft"] + '\nanswered = ' + datah["answered"] + '\ndeleted = ' + datah["deleted"] + '\nforwarded = ' + datah["forwarded"]); 392 expresso_mail_archive.taglist = datah; 393 } 394 } 376 395 377 396 if((expresso_mail_archive.message_list.length > 0) && (expresso_mail_archive.message_list[0] != '')){ 397 398 //Get all tags from current archiving message 399 var pardata = "&folder=" + url_encode(current_folder)+ "&msg_number="+ expresso_mail_archive.message_list[0]; 400 cExecute("$this.imap_functions.get_msg_flags", tagsHandler, pardata); 378 401 379 402 //Sets the message counter … … 386 409 expresso_mail_archive.folder_destination = destination_folder.substr(6,destination_folder.length); 387 410 else 388 expresso_mail_archive.folder_destination = destination_folder; 411 expresso_mail_archive.folder_destination = destination_folder; 389 412 390 413 var fcaption = expresso_mail_archive.folder_destination; … … 418 441 } 419 442 catch(e){ 420 window.alert( 'Archive error: %1', e);443 window.alert(get_lang("Archive error: %1", (e.description)?e.description:e)); 421 444 } 422 445 } … … 424 447 //Archive callback OK 425 448 MailArchiver.prototype.getArchiveOperationOK = function(status_message){ 449 //message must be tagged 450 var arcid = status_message.getReturn().getId(); 451 var tlist = expresso_mail_archive.pattern.tagConfig(expresso_mail_archive.taglist, arcid); 452 if(tlist != null){ 453 try{ 454 ArchiveServices.tagMessages(expresso_mail_archive.tagMessagesOperationOK, expresso_mail_archive.tagMessagesOperationFailure, sessid, tlist); 455 }catch (e){ 456 window.alert('ArchiveServices.tagMessages failed at: ' + (e.description)?e.description:e); 457 } 458 } 459 //archivement allready done, update controll data and interface 426 460 expresso_mail_archive.messages_processed++; 427 461 if(expresso_mail_archive.message_list.length > 1){ … … 674 708 //Store folder data at this format: {folder name, number of messages contained, folder has child nodes, folder id, folder parent id, folder full path} 675 709 //var folderData = new Array(folderlist.getReturn()[i].getName(), folderlist.getReturn()[i].getMessageCount(), folderChild, folderlist.getReturn()[i].getId(), folderlist.getReturn()[i].getParentId(), folderlist.getReturn()[i].getPath()); 676 var folderData = {name: folderlist.getReturn()[i].getName(), messages: folderlist.getReturn()[i].getMessageCount(), haschild: folderChild, id: folderlist.getReturn()[i].getId(), parentid: folderlist.getReturn()[i].getParentId(), path: folderlist.getReturn()[i].getPath() };710 var folderData = {name: folderlist.getReturn()[i].getName(), messages: folderlist.getReturn()[i].getMessageCount(), haschild: folderChild, id: folderlist.getReturn()[i].getId(), parentid: folderlist.getReturn()[i].getParentId(), path: folderlist.getReturn()[i].getPath(), unseen: folderlist.getReturn()[i].getUnseenCount()}; 677 711 //window.alert('folder ' + folderData.name + ' tem ' + folderData.messages + ' mensagens.'); 678 712 lfolders.push(folderData); … … 735 769 folder_caption = expresso_mail_archive.folders[i]["name"]; 736 770 } 737 var n_demo = new dNode({id: localBaseName + expresso_mail_archive.folders[i]["id"], caption: folder_caption, onClick: "change_folder('"+ localBaseName + expresso_mail_archive.folders[i]["id"] +"','"+ localBaseName + expresso_mail_archive.folders[i]["id"]+"', '" + expresso_mail_archive.drawdata.treeName + "')", plusSign:expresso_mail_archive.folders[i]["haschild"]}); 738 //var n_demo = new dNode({id: localBaseName + expresso_mail_archive.folders[i]["name"], caption: folder_caption, onClick: "change_folder('"+ localBaseName + expresso_mail_archive.folders[i]["name"] +"','"+ localBaseName + expresso_mail_archive.folders[i]["name"]+"', '" + expresso_mail_archive.drawdata.treeName + "')", plusSign:expresso_mail_archive.folders[i]["haschild"]}); 771 772 if(expresso_mail_archive.folders[i]["unseen"] == "0") 773 var n_demo = new dNode({id: localBaseName + expresso_mail_archive.folders[i]["id"], caption: folder_caption, onClick: "change_folder('"+ localBaseName + expresso_mail_archive.folders[i]["id"] +"','"+ localBaseName + expresso_mail_archive.folders[i]["id"]+"', '" + expresso_mail_archive.drawdata.treeName + "')", plusSign:expresso_mail_archive.folders[i]["haschild"]}); 774 else 775 //var nn = new dNode({id:data[i].folder_id, caption:lang_folder(data[i].folder_name) + '<font style=color:red> (</font><span id="dftree_'+data[i].folder_id+'_unseen" style=color:red>'+data[i].folder_unseen+'</span><font style=color:red>)</font>', onClick:"change_folder('"+data[i].folder_id+"','"+data[i].folder_name+"')", plusSign:data[i].folder_hasChildren}); 776 var n_demo = new dNode({id: localBaseName + expresso_mail_archive.folders[i]["id"], caption: folder_caption + '<font style=color:red> (</font><span id="dftree_'+expresso_mail_archive.folders[i]["id"]+'_unseen" style=color:red>'+expresso_mail_archive.folders[i]["unseen"]+'</span><font style=color:red>)</font>', onClick: "change_folder('"+ localBaseName + expresso_mail_archive.folders[i]["id"] +"','"+ localBaseName + expresso_mail_archive.folders[i]["id"]+"', '" + expresso_mail_archive.drawdata.treeName + "')", plusSign:expresso_mail_archive.folders[i]["haschild"]}); 777 778 //var n_demo = new dNode({id: localBaseName + expresso_mail_archive.folders[i]["name"], caption: folder_caption, onClick: "change_folder('"+ localBaseName + expresso_mail_archive.folders[i]["name"] +"','"+ localBaseName + expresso_mail_archive.folders[i]["name"]+"', '" + expresso_mail_archive.drawdata.treeName + "')", plusSign:expresso_mail_archive.folders[i]["haschild"]}); 739 779 740 780 //Adjust the id node names … … 872 912 //getFolderInfo callback OK 873 913 MailArchiver.prototype.getFolderInfoOperationOK = function(returnService){ 874 var folder_info = {id : returnService.getReturn().getId(), name : returnService.getReturn().getName(), parent : returnService.getReturn().getParentId(), numfolders: returnService.getReturn().getFolderCount(), nummessages: returnService.getReturn().getMessageCount() };914 var folder_info = {id : returnService.getReturn().getId(), name : returnService.getReturn().getName(), parent : returnService.getReturn().getParentId(), numfolders: returnService.getReturn().getFolderCount(), nummessages: returnService.getReturn().getMessageCount(), unseen: returnService.getReturn().getUnseenCount()}; 875 915 expresso_mail_archive.folder = folder_info; 876 916 } … … 936 976 } 937 977 msglist["num_msgs"] = returnService.getReturn().length; 978 msglist["tot_unseen"] = expresso_mail_archive.folder.unseen; 938 979 //window.alert('print_r\n\n' + print_r(msglist)); 939 980 … … 986 1027 draw_paging(folder_num_msgs); 987 1028 Element("tot_m").innerHTML = folder_num_msgs; 1029 Element('new_m').innerHTML = data_to_draw['tot_unseen'] ? '<font color="RED">'+data_to_draw['tot_unseen']+'</font>' : 0; 988 1030 //update_menu(); 989 1031
Note: See TracChangeset
for help on using the changeset viewer.