Ignore:
Timestamp:
02/22/13 12:37:16 (11 years ago)
Author:
marcosw
Message:

Ticket #3331 - Melhoria inserida no repositório trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/js/mail_archiver.js

    r7685 r7907  
    575575} 
    576576 
    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")); 
     577MailArchiver.prototype.unarchieveToAttach = function (folder, new_folder, msgs_number){ 
     578    try{ 
     579 
     580        if(typeof(expresso_mail_archive.idMsgsToAttach) == "undefined"){ 
     581            expresso_mail_archive.idMsgsToAttach = new Array(); 
     582        } 
     583        //write_msg(get_lang("Starting to unarchive messages")); 
    592584        expresso_mail_archive.isArchiveOperation = true; 
    593585        if(currentTab.toString().indexOf("_r") != -1){ 
     
    599591                 
    600592        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] != '')) { 
     593            
     594            expresso_mail_archive.messageToAttach = msgs_number; 
     595            if(expresso_mail_archive.messageToAttach) { 
     596                 
    604597                expresso_mail_archive.unarchivecounter = 0; 
    605598                expresso_mail_archive.unarchive_error_counter=0; 
     
    608601                (new_folder != null)?expresso_mail_archive.unarchievenewfolder = new_folder:expresso_mail_archive.unarchievenewfolder='INBOX'; 
    609602                 
    610                 expresso_mail_archive.unarchieveHandler(); 
     603                expresso_mail_archive.unarchieveToAttachHandler(); 
    611604                 
    612605                if(currentTab.toString().indexOf("_r") != -1){ 
     
    628621} 
    629622 
    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';     
     623MailArchiver.prototype.unarchieveToAttachHandler = function(){ 
     624    try{ 
     625        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';     
    640626     
    641627        //Creates a new object to unarchive messages. It's a CXF Add-on CORS component 
     
    647633            for (var w=0; w < expresso_mail_archive.allcompletemessagesbyfolder.length; w++){ 
    648634                                 
    649                 if(expresso_mail_archive.allcompletemessagesbyfolder[w]["msg_number"] == expresso_mail_archive.message_list[expresso_mail_archive.unarchivecounter]){ 
     635                if(expresso_mail_archive.allcompletemessagesbyfolder[w]["msg_number"] == expresso_mail_archive.messageToAttach){ 
    650636                    var timestamp = expresso_mail_archive.allcompletemessagesbyfolder[w]["timestamp"]; 
    651637                     
     
    702688                } 
    703689            } 
     690            var id = expresso_mail_archive.messageToAttach; 
     691            var source =  encodeURIComponent(UnarchiveReqHandler.handler.responseText) + "#@#@#@"; 
     692            var params =  
     693            "&folder="      + escape(expresso_mail_archive.unarchievenewfolder) + 
     694            "&source="      + source +  
     695            "&timestamp="   + timestamp +  
     696            "&madata=true"  +  
     697            "&flags="       + flags + 
     698            "&id="          + id; 
     699 
     700 
     701            var handler_unarchive = function(data){ 
     702                expresso_mail_archive.unarchieveToAttachController(data); 
     703            } 
     704            write_msg(get_lang("Please, Wait the messages from archieve be ready.")); 
     705             
     706             $.ajax({ 
     707                url: "controller.php?action=$this.imap_functions.unarchive_mail", 
     708                success: function(data){ 
     709                    data = connector.unserialize(data); 
     710                    expresso_mail_archive.idMsgsToAttach.push(data.idsMsg); 
     711                    handler_unarchive(data); 
     712                }, 
     713                async: false, 
     714                data:  params, 
     715                type: 'POST', 
     716                 
     717            }); 
     718 
     719        } 
     720 
     721         
     722        UnarchiveReqHandler.handler.open("GET", email, true); 
     723        if(UnarchiveReqHandler.handler.overrideMimeType){ 
     724            UnarchiveReqHandler.handler.overrideMimeType("message/rfc822; charset=windows-1252");  
     725        } 
     726        UnarchiveReqHandler.handler.send(); 
     727    } 
     728    catch(e){ 
     729        write_msg(get_lang('Unarchive error: ' + e)); 
     730    } 
     731} 
     732 
     733MailArchiver.prototype.unarchieveToAttachController = function(data){ 
     734     
     735    if (data){ 
     736        if (data.error != "") { 
     737            expresso_mail_archive.unarchive_error_counter++; 
     738        } 
     739         
     740    } 
     741} 
     742 
     743 
     744/** 
     745 *Unarchieve Message 
     746 * 
     747 *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] 
     748 * 
     749 *@param folder Original Folder of the message 
     750 *@param new_folder The new folder of the message 
     751 *@param msgs_number id of the messages 
     752 */ 
     753MailArchiver.prototype.unarchieve = function (folder, new_folder, msgs_number){ 
     754    try{  
     755        write_msg(get_lang("Starting to unarchive messages")); 
     756        expresso_mail_archive.isArchiveOperation = true; 
     757        if(currentTab.toString().indexOf("_r") != -1){ 
     758            msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 
     759        } 
     760 
     761        if(!msgs_number) 
     762            msgs_number = get_selected_messages();         
     763                 
     764        if (parseInt(msgs_number) > 0 || msgs_number.length > 0){        
     765            expresso_mail_archive.message_list = new Array(); 
     766            expresso_mail_archive.CreateMessageList(msgs_number); 
     767            if((expresso_mail_archive.message_list.length > 0) && (expresso_mail_archive.message_list[0] != '')) { 
     768                expresso_mail_archive.unarchivecounter = 0; 
     769                expresso_mail_archive.unarchive_error_counter=0; 
     770                expresso_mail_archive.getFolderInfo(folder.replace("local_messages_","")); 
     771                expresso_mail_archive.unarchievefolder = expresso_mail_archive.folder.name; 
     772                (new_folder != null)?expresso_mail_archive.unarchievenewfolder = new_folder:expresso_mail_archive.unarchievenewfolder='INBOX'; 
     773                 
     774                expresso_mail_archive.unarchieveHandler(); 
     775                 
     776                if(currentTab.toString().indexOf("_r") != -1){ 
     777                    delete_border(currentTab,'false');   
     778                } 
     779            } 
     780            else{ 
     781                write_msg(get_lang('No selected message.')); 
     782            } 
     783        }                                
     784        else 
     785            write_msg(get_lang('No selected message.')); 
     786         
     787        clear_selected_messages(); 
     788    } 
     789    catch (e){ 
     790        write_msg(get_lang('Unarchive error: ' + e)); 
     791    } 
     792} 
     793 
     794/** 
     795 * 
     796 *Unarchieve Message Handler 
     797 * 
     798 *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] 
     799 * 
     800 **/ 
     801MailArchiver.prototype.unarchieveHandler = function(){ 
     802    try{ 
     803        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';     
     804     
     805        //Creates a new object to unarchive messages. It's a CXF Add-on CORS component 
     806        var UnarchiveReqHandler = new cxf_cors_request_object(); 
     807        UnarchiveReqHandler.init(); 
     808 
     809        //Both XDomainRequest and XMLHttpRequest L2 supports onload event 
     810        UnarchiveReqHandler.handler.onload = function(){             
     811            for (var w=0; w < expresso_mail_archive.allcompletemessagesbyfolder.length; w++){ 
     812                                 
     813                if(expresso_mail_archive.allcompletemessagesbyfolder[w]["msg_number"] == expresso_mail_archive.message_list[expresso_mail_archive.unarchivecounter]){ 
     814                    var timestamp = expresso_mail_archive.allcompletemessagesbyfolder[w]["timestamp"]; 
     815                     
     816                    //Get local tagged message data 
     817                    var flags = new String(""); 
     818                     
     819                    //Forwarded is special one: marks as "answered" and "draft" 
     820                    if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Forwarded"]){ 
     821                        if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Forwarded"] == 'F') 
     822                            flags += 'A:X'+':';                                   
     823                    } 
     824                    else{ 
     825                        //Answered tag 
     826                        if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Answered"]) 
     827                            if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Answered"] == 'A') 
     828                                flags += 'A'+':'; 
     829                            else 
     830                                flags += ':'; 
     831                        else 
     832                            flags += ':';                     
     833 
     834                        //Draft tag 
     835                        if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Draft"]) 
     836                            if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Draft"] == 'X') 
     837                                flags += 'D'+':';                     
     838                            else 
     839                                flags += ':'; 
     840                        else 
     841                            flags += ':'; 
     842                    } 
     843                     
     844                    //Flagged tag 
     845                    if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Flagged"]) 
     846                        if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Flagged"] == 'F') 
     847                            flags += 'F'+':';                                         
     848                        else 
     849                            flags += ':'; 
     850                    else 
     851                        flags += ':'; 
     852                     
     853                    //Unseen tag 
     854                    if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Unseen"]) 
     855                        if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Unseen"] == 'U') 
     856                            flags += 'U';      
     857                        else 
     858                            flags += ''; 
     859                    else 
     860                        flags += ''; 
     861                     
     862                    //Imap tag hash id 
     863                    flags += "#@#@#@";                     
     864                     
     865                    break; 
     866                } 
     867            } 
    704868            var id = expresso_mail_archive.message_list[expresso_mail_archive.unarchivecounter]; 
    705869            var source =  encodeURIComponent(UnarchiveReqHandler.handler.responseText) + "#@#@#@"; 
     
    717881            write_msg(get_lang('Unarchiving message %1 of %2', (expresso_mail_archive.unarchivecounter + 1), expresso_mail_archive.message_list.length)); 
    718882             
    719             cExecute ("$this.imap_functions.unarchive_mail&", handler_unarchive, params); 
     883            //cExecute ("$this.imap_functions.unarchive_mail&", handler_unarchive, params); 
     884 
     885            $.ajax({ 
     886                url: "controller.php?action=$this.imap_functions.unarchive_mail", 
     887                data:  params, 
     888                type: 'POST', 
     889                async: false, 
     890                success: function(data){ 
     891                    handler_unarchive(connector.unserialize(data)); 
     892                }, 
     893            }); 
     894 
     895 
     896 
    720897        } 
    721898         
     
    13981575} 
    13991576 
     1577 
     1578MailArchiver.prototype.getMessagesByFolder = function(folderid, searchType){ 
     1579    try{ 
     1580        if(searchType == "ALL") 
     1581            var query_messages = '{"query":{"folder":[{"@id":"'+folderid+'"}], "order":[{"@asc":"date"}]}}'; 
     1582        else 
     1583            var query_messages = '{"query":{"folder":[{"@id":"'+folderid+'"}], "tags":[{"@contains":"'+searchType+'"}], "order":[{"@asc":"date"}]}}'; 
     1584        ArchiveServices.listMessages(expresso_mail_archive.getMessagesByFolderOperationOK, expresso_mail_archive.getMessagesByFolderOperationFailure, expresso_mail_archive.session.id, query_messages); 
     1585    } 
     1586    catch (e){ 
     1587        expresso_mail_archive.getFaultInfo(); 
     1588    } 
     1589} 
     1590 
     1591MailArchiver.prototype.getMessagesByFolderOperationOK = function(returnService){ 
     1592    var msglist = new Array(); 
     1593    var msglistcomplete = new Array(); 
     1594    var msgAll = new Array(); 
     1595    for(var i=0; i< returnService.getReturn().length; i++){ 
     1596        //Array montado apenas com ids para tratamento de seleção de mensagens independente de paginação 
     1597        msglist.push(returnService.getReturn()[i]._id); 
     1598 
     1599        msgAll.push(returnService.getReturn()[i]); 
     1600 
     1601        //Incremento de contadores para atualização da aba de listagem 
     1602        if(returnService.getReturn()[i]._tags.indexOf("unseen") != -1){ 
     1603            expresso_mail_archive.tot_unseen_msgs_tab++; 
     1604        } 
     1605        expresso_mail_archive.tot_msgs_tab++; 
     1606        //Array montado para operação de desarquivamento 
     1607        var ExpSerialized = expresso_mail_archive.pattern.toExpressoHeader(returnService.getReturn()[i]); 
     1608        msglistcomplete.push(connector.unserialize(ExpSerialized)); 
     1609    } 
     1610    expresso_mail_archive.allmessagesbyfolder = msglist; 
     1611    expresso_mail_archive.allcompletemessagesbyfolder = msglistcomplete; 
     1612    expresso_mail_archive.msgAll = msgAll; 
     1613} 
     1614 
     1615MailArchiver.prototype.getMessagesByFolderOperationFailure = function(ServiceFault){ 
     1616    window.alert('listAllmessagesByFolder FALHOU!\n' + ServiceFault.getReturn()); 
     1617} 
     1618 
     1619 
    14001620//List all messages by folder given and set a array with all messages ids 
    14011621MailArchiver.prototype.listAllMessagesByFolder = function(folderid, searchType){ 
     
    15151735    if(msgfound){ 
    15161736        expresso_mail_archive.currentheaders = headerMsg; 
     1737        expresso_mail_archive.subjectPreview = headerMsg.subject; 
    15171738        return(headerMsg); 
    15181739    } 
     
    15371758            bodies.push(temp); 
    15381759        } 
     1760        expresso_mail_archive.bodyPreview = temp.getReturn(); 
    15391761        return bodies; 
    15401762    } 
     
    15421764        expresso_mail_archive.getFaultInfo(); 
    15431765    } 
     1766} 
     1767 
     1768 
     1769MailArchiver.prototype.getPreviewToAttach = function(id){ 
     1770    expresso_mail_archive.getMessageInfo(id); 
     1771    expresso_mail_archive.getMessageBodies([id]); 
    15441772} 
    15451773 
     
    16181846        return; 
    16191847    }     
     1848    expresso_mail_archive.te = returnService.getReturn(); 
    16201849    var msgBody = returnService.getReturn(); 
    16211850    //var msgHeaders = expresso_mail_archive.getMessageHeaders(expresso_mail_archive.currentmessage); 
     
    20922321        expresso_mail_archive.messageslisted.push(msgitem2);     
    20932322        expresso_mail_archive.getMessageHeaders(serviceReturn.getReturn().getId()); 
     2323 
    20942324    } 
    20952325    else{ 
Note: See TracChangeset for help on using the changeset viewer.