Ignore:
Timestamp:
10/08/13 16:20:46 (11 years ago)
Author:
douglas
Message:

Ticket #0000 - Copiadas as alterações do Trunk. Versão final 2.5.1.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.5/expressoMail1_2/js/mail_archiver.js

    r8126 r8232  
    427427            
    428428                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 
    436437                 
    437438                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);  
    439440                    if(typeof(expresso_mail_archive.folder) != "undefined"){ 
    440441                        //window.alert('folder.path -> ' + expresso_mail_archive.folder.path); 
     
    575576} 
    576577 
    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")); 
     578MailArchiver.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")); 
    592587        expresso_mail_archive.isArchiveOperation = true; 
    593588        if(currentTab.toString().indexOf("_r") != -1){ 
     
    599594                 
    600595        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                 
    604600                expresso_mail_archive.unarchivecounter = 0; 
    605601                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_",""));  
    607603                expresso_mail_archive.unarchievefolder = expresso_mail_archive.folder.name; 
    608604                (new_folder != null)?expresso_mail_archive.unarchievenewfolder = new_folder:expresso_mail_archive.unarchievenewfolder='INBOX'; 
    609605                 
    610                 expresso_mail_archive.unarchieveHandler(); 
     606                expresso_mail_archive.unarchieveToAttachHandler(callback); 
    611607                 
    612608                if(currentTab.toString().indexOf("_r") != -1){ 
     
    628624} 
    629625 
    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';     
     626MailArchiver.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';     
    640629     
    641630        //Creates a new object to unarchive messages. It's a CXF Add-on CORS component 
     
    647636            for (var w=0; w < expresso_mail_archive.allcompletemessagesbyfolder.length; w++){ 
    648637                                 
    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){ 
    650639                    var timestamp = expresso_mail_archive.allcompletemessagesbyfolder[w]["timestamp"]; 
    651640                     
     
    702691                } 
    703692            } 
     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            "&timestamp="   + 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 
     737MailArchiver.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 */ 
     757MailArchiver.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 **/ 
     826MailArchiver.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            } 
    704893            var id = expresso_mail_archive.message_list[expresso_mail_archive.unarchivecounter]; 
    705894            var source =  encodeURIComponent(UnarchiveReqHandler.handler.responseText) + "#@#@#@"; 
     
    717906            write_msg(get_lang('Unarchiving message %1 of %2', (expresso_mail_archive.unarchivecounter + 1), expresso_mail_archive.message_list.length)); 
    718907             
    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 
    720922        } 
    721923         
     
    8461048    expresso_mail_archive.message_list = new Array(); 
    8471049 
    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);  
    8511053 
    8521054    // This is necessary 'couse we can get a delete operation while an unarchive operation 
     
    9561158        expresso_mail_archive.message_list = new Array();   
    9571159 
    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);   
    9611163               
    9621164        expresso_mail_archive.resetObject(); 
     
    12581460        if(folderId == 'local_root') 
    12591461            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_", ""); 
    12631465        ArchiveServices.getFolderInfo(expresso_mail_archive.getFolderInfoOperationOK, expresso_mail_archive.getFolderInfoOperationFailure, expresso_mail_archive.session.id, folderId); 
    12641466    } 
     
    12961498 
    12971499MailArchiver.prototype.deleteAllMessages = function(folderId){ 
    1298     try{ 
     1500    try{     
    12991501        var objfolder = new Object(); 
    1300         objfolder.folder = folderId; 
     1502        objfolder.folder = folderId;  
    13011503 
    13021504        var query_data = expresso_mail_archive.queryconfig.query(objfolder); 
     
    13371539        } 
    13381540        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; 
    13431545        //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>'; 
    13441546        //var testing_data_json_mapped = '{"query":{"@lowerIndex":"0", "@upperIndex":"50", "folder":[{"@id":"'+folderid+'"}], "order":[{"@asc":"date", "@desc":"subject"}]}}'; 
    13451547        var query_data = expresso_mail_archive.queryconfig.query(objfolder); 
    1346         expresso_mail_archive.getFolderInfo(folderid); 
     1548 
     1549        expresso_mail_archive.getFolderInfo(folderid);  
    13471550        expresso_mail_archive.currentfolder = folderid; 
    13481551         
     
    14041607} 
    14051608 
     1609 
     1610MailArchiver.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 
     1623MailArchiver.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 
     1647MailArchiver.prototype.getMessagesByFolderOperationFailure = function(ServiceFault){ 
     1648    window.alert('listAllmessagesByFolder FALHOU!\n' + ServiceFault.getReturn()); 
     1649} 
     1650 
     1651 
    14061652//List all messages by folder given and set a array with all messages ids 
    14071653MailArchiver.prototype.listAllMessagesByFolder = function(folderid, searchType){ 
     
    15211767    if(msgfound){ 
    15221768        expresso_mail_archive.currentheaders = headerMsg; 
     1769        expresso_mail_archive.subjectPreview = headerMsg.subject; 
    15231770        return(headerMsg); 
    15241771    } 
     
    15431790            bodies.push(temp); 
    15441791        } 
     1792        expresso_mail_archive.bodyPreview = temp.getReturn(); 
    15451793        return bodies; 
    15461794    } 
     
    15481796        expresso_mail_archive.getFaultInfo(); 
    15491797    } 
     1798} 
     1799 
     1800 
     1801MailArchiver.prototype.getPreviewToAttach = function(id){ 
     1802    expresso_mail_archive.getMessageInfo(id); 
     1803    expresso_mail_archive.getMessageBodies([id]); 
    15501804} 
    15511805 
     
    16241878        return; 
    16251879    }     
     1880    expresso_mail_archive.te = returnService.getReturn(); 
    16261881    var msgBody = returnService.getReturn(); 
    16271882    //var msgHeaders = expresso_mail_archive.getMessageHeaders(expresso_mail_archive.currentmessage); 
     
    19182173            var filters = eval('(' + expresso_mail_archive.queryconfig.pharseSearchFields(fields) + ')'); 
    19192174 
     2175 
     2176 
    19202177            if(folderlist.indexOf("#") != -1) 
    19212178                filters.folder = folderlist.substr(0, folderlist.indexOf("#")); 
     
    19282185 
    19292186            expresso_mail_archive.querydata = expresso_mail_archive.search_queryconfig.query(filters); 
    1930              
     2187 
     2188 
     2189 
    19312190            //var query_data = '<?xml version="1.0" encoding="UTF-8"?><query subject="teste"><folder id="inbox"/><order asc="date"/></query>'; 
    19322191            ArchiveServices.listMessages(expresso_mail_archive.searchOperationOK, expresso_mail_archive.searchOperationFailure, expresso_mail_archive.session.id, expresso_mail_archive.querydata);         
     
    19622221             
    19632222        //expresso_mail_archive.queryresult = msglist;         
    1964         expresso_mail_archive.search_queryresult = msglist;     
     2223        expresso_mail_archive.search_queryresult = msglist;  
    19652224        //expresso_mail_archive.messageslisted = msglist2; 
    19662225        expresso_mail_archive.search_message_list = msglist2; 
     
    20962355        var ExpSerialized2 = expresso_mail_archive.pattern.toExpressoHeader(serviceReturn.getReturn()); 
    20972356        var msgitem2 = connector.unserialize(ExpSerialized2); 
     2357        if(!expresso_mail_archive.messageslisted){ 
     2358            expresso_mail_archive.messageslisted = []; 
     2359        } 
    20982360        expresso_mail_archive.messageslisted.push(msgitem2);     
    20992361        expresso_mail_archive.getMessageHeaders(serviceReturn.getReturn().getId()); 
     2362 
    21002363    } 
    21012364    else{ 
Note: See TracChangeset for help on using the changeset viewer.