Changeset 8232 for branches/2.5/expressoMail1_2/js/mail_archiver.js
- Timestamp:
- 10/08/13 16:20:46 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.5/expressoMail1_2/js/mail_archiver.js
r8126 r8232 427 427 428 428 var fcaption = ""; 429 430 if(destination_folder.substr(0,5) == 'local'){ 431 expresso_mail_archive.folder_destination = destination_folder.replace("local_messages_",""); 432 } 433 else{ 434 expresso_mail_archive.folder_destination = destination_folder; 435 } 429 430 if(destination_folder.substr(0,5) == 'local'){ 431 expresso_mail_archive.folder_destination = destination_folder.replace("local_messages_",""); 432 } 433 else{ 434 expresso_mail_archive.folder_destination = destination_folder; 435 } 436 436 437 437 438 if(!expresso_mail_archive.archivefolder){ 438 expresso_mail_archive.getFolderInfo(expresso_mail_archive.folder_destination); 439 expresso_mail_archive.getFolderInfo(expresso_mail_archive.folder_destination); 439 440 if(typeof(expresso_mail_archive.folder) != "undefined"){ 440 441 //window.alert('folder.path -> ' + expresso_mail_archive.folder.path); … … 575 576 } 576 577 577 578 579 580 /** 581 *Unarchieve Message 582 * 583 *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] 584 * 585 *@param folder Original Folder of the message 586 *@param new_folder The new folder of the message 587 *@param msgs_number id of the messages 588 */ 589 MailArchiver.prototype.unarchieve = function (folder, new_folder, msgs_number){ 590 try{ 591 write_msg(get_lang("Starting to unarchive messages")); 578 MailArchiver.prototype.unarchieveToAttach = function (folder, new_folder, msgs_number, callback){ 579 try{ 580 581 if(typeof callback !== 'function') callback = function(){}; 582 583 if(typeof(expresso_mail_archive.idMsgsToAttach) == "undefined"){ 584 expresso_mail_archive.idMsgsToAttach = new Array(); 585 } 586 //write_msg(get_lang("Starting to unarchive messages")); 592 587 expresso_mail_archive.isArchiveOperation = true; 593 588 if(currentTab.toString().indexOf("_r") != -1){ … … 599 594 600 595 if (parseInt(msgs_number) > 0 || msgs_number.length > 0){ 601 expresso_mail_archive.message_list = new Array(); 602 expresso_mail_archive.CreateMessageList(msgs_number); 603 if((expresso_mail_archive.message_list.length > 0) && (expresso_mail_archive.message_list[0] != '')) { 596 597 expresso_mail_archive.messageToAttach = msgs_number; 598 if(expresso_mail_archive.messageToAttach) { 599 604 600 expresso_mail_archive.unarchivecounter = 0; 605 601 expresso_mail_archive.unarchive_error_counter=0; 606 expresso_mail_archive.getFolderInfo(folder.replace("local_messages_","")); 602 expresso_mail_archive.getFolderInfo(folder.replace("local_messages_","")); 607 603 expresso_mail_archive.unarchievefolder = expresso_mail_archive.folder.name; 608 604 (new_folder != null)?expresso_mail_archive.unarchievenewfolder = new_folder:expresso_mail_archive.unarchievenewfolder='INBOX'; 609 605 610 expresso_mail_archive.unarchieve Handler();606 expresso_mail_archive.unarchieveToAttachHandler(callback); 611 607 612 608 if(currentTab.toString().indexOf("_r") != -1){ … … 628 624 } 629 625 630 /** 631 * 632 *Unarchieve Message Handler 633 * 634 *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] 635 * 636 **/ 637 MailArchiver.prototype.unarchieveHandler = function(){ 638 try{ 639 var email = mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/mail/' + expresso_mail_archive.session.id +'/'+ expresso_mail_archive.folder.path + '/'+ expresso_mail_archive.message_list[expresso_mail_archive.unarchivecounter] + '.eml'; 626 MailArchiver.prototype.unarchieveToAttachHandler = function(uCallback){ 627 try{ 628 var email = mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/mail/' + expresso_mail_archive.session.id +'/'+ expresso_mail_archive.folder.path + '/'+ expresso_mail_archive.messageToAttach + '.eml'; 640 629 641 630 //Creates a new object to unarchive messages. It's a CXF Add-on CORS component … … 647 636 for (var w=0; w < expresso_mail_archive.allcompletemessagesbyfolder.length; w++){ 648 637 649 if(expresso_mail_archive.allcompletemessagesbyfolder[w]["msg_number"] == expresso_mail_archive.message _list[expresso_mail_archive.unarchivecounter]){638 if(expresso_mail_archive.allcompletemessagesbyfolder[w]["msg_number"] == expresso_mail_archive.messageToAttach){ 650 639 var timestamp = expresso_mail_archive.allcompletemessagesbyfolder[w]["timestamp"]; 651 640 … … 702 691 } 703 692 } 693 var id = expresso_mail_archive.messageToAttach; 694 var source = encodeURIComponent(UnarchiveReqHandler.handler.responseText) + "#@#@#@"; 695 var params = 696 "&folder=" + escape(expresso_mail_archive.unarchievenewfolder) + 697 "&source=" + source + 698 "×tamp=" + timestamp + 699 "&madata=true" + 700 "&flags=" + flags + 701 "&id=" + id; 702 703 704 var handler_unarchive = function(data){ 705 expresso_mail_archive.unarchieveToAttachController(data); 706 } 707 write_msg(get_lang("Please, Wait the messages from archieve be ready.")); 708 709 $.ajax({ 710 url: "controller.php?action=$this.imap_functions.unarchive_mail", 711 success: function(data){ 712 data = connector.unserialize(data); 713 expresso_mail_archive.idMsgsToAttach.push(data.idsMsg); 714 handler_unarchive(data); 715 uCallback(data); 716 }, 717 async: false, 718 data: params, 719 type: 'POST', 720 721 }); 722 723 } 724 725 726 UnarchiveReqHandler.handler.open("GET", email, true); 727 if(UnarchiveReqHandler.handler.overrideMimeType){ 728 UnarchiveReqHandler.handler.overrideMimeType("message/rfc822; charset=windows-1252"); 729 } 730 UnarchiveReqHandler.handler.send(); 731 } 732 catch(e){ 733 write_msg(get_lang('Unarchive error: ' + e)); 734 } 735 } 736 737 MailArchiver.prototype.unarchieveToAttachController = function(data){ 738 739 if (data){ 740 if (data.error != "") { 741 expresso_mail_archive.unarchive_error_counter++; 742 } 743 744 } 745 } 746 747 748 /** 749 *Unarchieve Message 750 * 751 *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] 752 * 753 *@param folder Original Folder of the message 754 *@param new_folder The new folder of the message 755 *@param msgs_number id of the messages 756 */ 757 MailArchiver.prototype.unarchieve = function (folder, new_folder, msgs_number){ 758 try{ 759 760 var aclShare = false; 761 $.ajax({ 762 url: 'controller.php?' + $.param( { action: '$this.imap_functions.verifyShareFolder', folder: new_folder } ), 763 success: function( data ){ 764 data = connector.unserialize( data ); 765 if(data != null){ 766 if(!data.status){ 767 aclShare = true; 768 } 769 } 770 771 }, 772 async: false 773 }); 774 775 if(aclShare){ 776 write_msg(get_lang("You don't have permission for this operation in this shared folder!")); 777 return false; 778 } 779 780 write_msg(get_lang("Starting to unarchive messages")); 781 expresso_mail_archive.isArchiveOperation = true; 782 if(currentTab.toString().indexOf("_r") != -1){ 783 msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 784 } 785 786 if(!msgs_number) 787 msgs_number = get_selected_messages(); 788 789 if (parseInt(msgs_number) > 0 || msgs_number.length > 0){ 790 expresso_mail_archive.message_list = new Array(); 791 expresso_mail_archive.CreateMessageList(msgs_number); 792 if((expresso_mail_archive.message_list.length > 0) && (expresso_mail_archive.message_list[0] != '')) { 793 expresso_mail_archive.unarchivecounter = 0; 794 expresso_mail_archive.unarchive_error_counter=0; 795 expresso_mail_archive.getFolderInfo(folder.replace("local_messages_","")); 796 expresso_mail_archive.unarchievefolder = expresso_mail_archive.folder.name; 797 (new_folder != null)?expresso_mail_archive.unarchievenewfolder = new_folder:expresso_mail_archive.unarchievenewfolder='INBOX'; 798 799 expresso_mail_archive.unarchieveHandler(); 800 801 if(currentTab.toString().indexOf("_r") != -1){ 802 delete_border(currentTab,'false'); 803 } 804 } 805 else{ 806 write_msg(get_lang('No selected message.')); 807 } 808 } 809 else 810 write_msg(get_lang('No selected message.')); 811 812 clear_selected_messages(); 813 } 814 catch (e){ 815 write_msg(get_lang('Unarchive error: ' + e)); 816 } 817 } 818 819 /** 820 * 821 *Unarchieve Message Handler 822 * 823 *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] 824 * 825 **/ 826 MailArchiver.prototype.unarchieveHandler = function(){ 827 try{ 828 var email = mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/mail/' + expresso_mail_archive.session.id +'/'+ expresso_mail_archive.folder.path + '/'+ expresso_mail_archive.message_list[expresso_mail_archive.unarchivecounter] + '.eml'; 829 830 //Creates a new object to unarchive messages. It's a CXF Add-on CORS component 831 var UnarchiveReqHandler = new cxf_cors_request_object(); 832 UnarchiveReqHandler.init(); 833 834 //Both XDomainRequest and XMLHttpRequest L2 supports onload event 835 UnarchiveReqHandler.handler.onload = function(){ 836 for (var w=0; w < expresso_mail_archive.allcompletemessagesbyfolder.length; w++){ 837 838 if(expresso_mail_archive.allcompletemessagesbyfolder[w]["msg_number"] == expresso_mail_archive.message_list[expresso_mail_archive.unarchivecounter]){ 839 var timestamp = expresso_mail_archive.allcompletemessagesbyfolder[w]["timestamp"]; 840 841 //Get local tagged message data 842 var flags = new String(""); 843 844 //Forwarded is special one: marks as "answered" and "draft" 845 if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Forwarded"]){ 846 if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Forwarded"] == 'F') 847 flags += 'A:X'+':'; 848 } 849 else{ 850 //Answered tag 851 if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Answered"]) 852 if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Answered"] == 'A') 853 flags += 'A'+':'; 854 else 855 flags += ':'; 856 else 857 flags += ':'; 858 859 //Draft tag 860 if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Draft"]) 861 if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Draft"] == 'X') 862 flags += 'D'+':'; 863 else 864 flags += ':'; 865 else 866 flags += ':'; 867 } 868 869 //Flagged tag 870 if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Flagged"]) 871 if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Flagged"] == 'F') 872 flags += 'F'+':'; 873 else 874 flags += ':'; 875 else 876 flags += ':'; 877 878 //Unseen tag 879 if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Unseen"]) 880 if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Unseen"] == 'U') 881 flags += 'U'; 882 else 883 flags += ''; 884 else 885 flags += ''; 886 887 //Imap tag hash id 888 flags += "#@#@#@"; 889 890 break; 891 } 892 } 704 893 var id = expresso_mail_archive.message_list[expresso_mail_archive.unarchivecounter]; 705 894 var source = encodeURIComponent(UnarchiveReqHandler.handler.responseText) + "#@#@#@"; … … 717 906 write_msg(get_lang('Unarchiving message %1 of %2', (expresso_mail_archive.unarchivecounter + 1), expresso_mail_archive.message_list.length)); 718 907 719 cExecute ("$this.imap_functions.unarchive_mail&", handler_unarchive, params); 908 //cExecute ("$this.imap_functions.unarchive_mail&", handler_unarchive, params); 909 910 $.ajax({ 911 url: "controller.php?action=$this.imap_functions.unarchive_mail", 912 data: params, 913 type: 'POST', 914 async: false, 915 success: function(data){ 916 handler_unarchive(connector.unserialize(data)); 917 }, 918 }); 919 920 921 720 922 } 721 923 … … 846 1048 expresso_mail_archive.message_list = new Array(); 847 1049 848 expresso_mail_archive.currentfolder = folder.replace("local_messages_",""); 849 850 expresso_mail_archive.listMessages(expresso_mail_archive.currentfolder); 1050 expresso_mail_archive.currentfolder = folder.replace("local_messages_",""); 1051 1052 expresso_mail_archive.listMessages(expresso_mail_archive.currentfolder); 851 1053 852 1054 // This is necessary 'couse we can get a delete operation while an unarchive operation … … 956 1158 expresso_mail_archive.message_list = new Array(); 957 1159 958 expresso_mail_archive.getFolderInfo(expresso_mail_archive.currentfolder); 959 expresso_mail_archive.getFolderInfo(expresso_mail_archive.folder_destination); 960 expresso_mail_archive.listMessages(expresso_mail_archive.currentfolder); 1160 expresso_mail_archive.getFolderInfo(expresso_mail_archive.currentfolder); 1161 expresso_mail_archive.getFolderInfo(expresso_mail_archive.folder_destination); 1162 expresso_mail_archive.listMessages(expresso_mail_archive.currentfolder); 961 1163 962 1164 expresso_mail_archive.resetObject(); … … 1258 1460 if(folderId == 'local_root') 1259 1461 folderId = ""; 1260 var exp_verifyId = RegExp("^messages\_[0-9|a-z]+\-[0-9|a-z|\-]+$"); 1261 if(exp_verifyId.test(folderId)) 1262 folderId = folderId.replace("messages_", ""); 1462 var exp_verifyId = RegExp("^messages\_[0-9|a-z]+\-[0-9|a-z|\-]+$"); 1463 if(exp_verifyId.test(folderId)) 1464 folderId = folderId.replace("messages_", ""); 1263 1465 ArchiveServices.getFolderInfo(expresso_mail_archive.getFolderInfoOperationOK, expresso_mail_archive.getFolderInfoOperationFailure, expresso_mail_archive.session.id, folderId); 1264 1466 } … … 1296 1498 1297 1499 MailArchiver.prototype.deleteAllMessages = function(folderId){ 1298 try{ 1500 try{ 1299 1501 var objfolder = new Object(); 1300 objfolder.folder = folderId; 1502 objfolder.folder = folderId; 1301 1503 1302 1504 var query_data = expresso_mail_archive.queryconfig.query(objfolder); … … 1337 1539 } 1338 1540 var objfolder = new Object(); 1339 var exp_verifyId = RegExp("^messages\_[0-9|a-z]+\-[0-9|a-z|\-]+$"); 1340 if(exp_verifyId.test(folderid)) 1341 folderid = folderid.replace("messages_", ""); 1342 objfolder.folder = folderid; 1541 var exp_verifyId = RegExp("^messages\_[0-9|a-z]+\-[0-9|a-z|\-]+$"); 1542 if(exp_verifyId.test(folderid)) 1543 folderid = folderid.replace("messages_", ""); 1544 objfolder.folder = folderid; 1343 1545 //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>'; 1344 1546 //var testing_data_json_mapped = '{"query":{"@lowerIndex":"0", "@upperIndex":"50", "folder":[{"@id":"'+folderid+'"}], "order":[{"@asc":"date", "@desc":"subject"}]}}'; 1345 1547 var query_data = expresso_mail_archive.queryconfig.query(objfolder); 1346 expresso_mail_archive.getFolderInfo(folderid); 1548 1549 expresso_mail_archive.getFolderInfo(folderid); 1347 1550 expresso_mail_archive.currentfolder = folderid; 1348 1551 … … 1404 1607 } 1405 1608 1609 1610 MailArchiver.prototype.getMessagesByFolder = function(folderid, searchType){ 1611 try{ 1612 if(searchType == "ALL") 1613 var query_messages = '{"query":{"folder":[{"@id":"'+folderid+'"}], "order":[{"@asc":"date"}]}}'; 1614 else 1615 var query_messages = '{"query":{"folder":[{"@id":"'+folderid+'"}], "tags":[{"@contains":"'+searchType+'"}], "order":[{"@asc":"date"}]}}'; 1616 ArchiveServices.listMessages(expresso_mail_archive.getMessagesByFolderOperationOK, expresso_mail_archive.getMessagesByFolderOperationFailure, expresso_mail_archive.session.id, query_messages); 1617 } 1618 catch (e){ 1619 expresso_mail_archive.getFaultInfo(); 1620 } 1621 } 1622 1623 MailArchiver.prototype.getMessagesByFolderOperationOK = function(returnService){ 1624 var msglist = new Array(); 1625 var msglistcomplete = new Array(); 1626 var msgAll = new Array(); 1627 for(var i=0; i< returnService.getReturn().length; i++){ 1628 //Array montado apenas com ids para tratamento de seleção de mensagens independente de paginação 1629 msglist.push(returnService.getReturn()[i]._id); 1630 1631 msgAll.push(returnService.getReturn()[i]); 1632 1633 //Incremento de contadores para atualização da aba de listagem 1634 if(returnService.getReturn()[i]._tags.indexOf("unseen") != -1){ 1635 expresso_mail_archive.tot_unseen_msgs_tab++; 1636 } 1637 expresso_mail_archive.tot_msgs_tab++; 1638 //Array montado para operação de desarquivamento 1639 var ExpSerialized = expresso_mail_archive.pattern.toExpressoHeader(returnService.getReturn()[i]); 1640 msglistcomplete.push(connector.unserialize(ExpSerialized)); 1641 } 1642 expresso_mail_archive.allmessagesbyfolder = msglist; 1643 expresso_mail_archive.allcompletemessagesbyfolder = msglistcomplete; 1644 expresso_mail_archive.msgAll = msgAll; 1645 } 1646 1647 MailArchiver.prototype.getMessagesByFolderOperationFailure = function(ServiceFault){ 1648 window.alert('listAllmessagesByFolder FALHOU!\n' + ServiceFault.getReturn()); 1649 } 1650 1651 1406 1652 //List all messages by folder given and set a array with all messages ids 1407 1653 MailArchiver.prototype.listAllMessagesByFolder = function(folderid, searchType){ … … 1521 1767 if(msgfound){ 1522 1768 expresso_mail_archive.currentheaders = headerMsg; 1769 expresso_mail_archive.subjectPreview = headerMsg.subject; 1523 1770 return(headerMsg); 1524 1771 } … … 1543 1790 bodies.push(temp); 1544 1791 } 1792 expresso_mail_archive.bodyPreview = temp.getReturn(); 1545 1793 return bodies; 1546 1794 } … … 1548 1796 expresso_mail_archive.getFaultInfo(); 1549 1797 } 1798 } 1799 1800 1801 MailArchiver.prototype.getPreviewToAttach = function(id){ 1802 expresso_mail_archive.getMessageInfo(id); 1803 expresso_mail_archive.getMessageBodies([id]); 1550 1804 } 1551 1805 … … 1624 1878 return; 1625 1879 } 1880 expresso_mail_archive.te = returnService.getReturn(); 1626 1881 var msgBody = returnService.getReturn(); 1627 1882 //var msgHeaders = expresso_mail_archive.getMessageHeaders(expresso_mail_archive.currentmessage); … … 1918 2173 var filters = eval('(' + expresso_mail_archive.queryconfig.pharseSearchFields(fields) + ')'); 1919 2174 2175 2176 1920 2177 if(folderlist.indexOf("#") != -1) 1921 2178 filters.folder = folderlist.substr(0, folderlist.indexOf("#")); … … 1928 2185 1929 2186 expresso_mail_archive.querydata = expresso_mail_archive.search_queryconfig.query(filters); 1930 2187 2188 2189 1931 2190 //var query_data = '<?xml version="1.0" encoding="UTF-8"?><query subject="teste"><folder id="inbox"/><order asc="date"/></query>'; 1932 2191 ArchiveServices.listMessages(expresso_mail_archive.searchOperationOK, expresso_mail_archive.searchOperationFailure, expresso_mail_archive.session.id, expresso_mail_archive.querydata); … … 1962 2221 1963 2222 //expresso_mail_archive.queryresult = msglist; 1964 expresso_mail_archive.search_queryresult = msglist; 2223 expresso_mail_archive.search_queryresult = msglist; 1965 2224 //expresso_mail_archive.messageslisted = msglist2; 1966 2225 expresso_mail_archive.search_message_list = msglist2; … … 2096 2355 var ExpSerialized2 = expresso_mail_archive.pattern.toExpressoHeader(serviceReturn.getReturn()); 2097 2356 var msgitem2 = connector.unserialize(ExpSerialized2); 2357 if(!expresso_mail_archive.messageslisted){ 2358 expresso_mail_archive.messageslisted = []; 2359 } 2098 2360 expresso_mail_archive.messageslisted.push(msgitem2); 2099 2361 expresso_mail_archive.getMessageHeaders(serviceReturn.getReturn().getId()); 2362 2100 2363 } 2101 2364 else{
Note: See TracChangeset
for help on using the changeset viewer.