Changeset 4955


Ignore:
Timestamp:
08/18/11 18:07:14 (10 years ago)
Author:
cassiano.dalpizzol
Message:

Ticket #1269 - Implementação do desarquivamento no mailarchiver

Location:
sandbox/expressoMail1_2/MailArchiver/2.2/expressoMail1_2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • sandbox/expressoMail1_2/MailArchiver/2.2/expressoMail1_2/inc/class.imap_functions.inc.php

    r4893 r4955  
    40774077    { 
    40784078        $dest_folder = $params['folder']; 
    4079         $sources = explode("#@#@#@",$params['source']); 
     4079        $sources = str_replace("\n", "\r\n", explode("#@#@#@",$params['source'])); 
    40804080        $timestamps = explode("#@#@#@",$params['timestamp']); 
    40814081        $flags = explode("#@#@#@",$params['flags']); 
    4082  
     4082         
    40834083        foreach($sources as $index=>$src) 
    40844084        { 
  • sandbox/expressoMail1_2/MailArchiver/2.2/expressoMail1_2/js/mail_archiver.js

    r4942 r4955  
    161161                            "outbox":"local_outbox",  
    162162                            "trash":"local_trash" 
    163                           }; 
     163                          };                           
     164    this.unarchivecounter = 0; 
     165    this.unarchievefolder = null; 
     166    this.unarchievenewfolder = null; 
     167                           
    164168} 
    165169 
     
    401405 
    402406/** 
     407 *Unarchieve Message 
     408 * 
     409 *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] 
     410 * 
     411 *@param folder Original Folder of the message 
     412 *@param new_folder The new folder of the message 
     413 *@param msgs_number id of the messages 
     414 */ 
     415MailArchiver.prototype.unarchieve = function (folder, new_folder, msgs_number){ 
     416    try{  
     417        expresso_mail_archive.message_list = new Array(); 
     418        expresso_mail_archive.CreateMessageList(msgs_number); 
     419        if((expresso_mail_archive.message_list.length > 0) && (expresso_mail_archive.message_list[0] != '')) { 
     420            expresso_mail_archive.unarchivecounter = 0; 
     421            expresso_mail_archive.unarchievefolder = folder; 
     422            expresso_mail_archive.unarchievenewfolder = new_folder; 
     423            expresso_mail_archive.unarchieveHandler(); 
     424        } 
     425        else{ 
     426            write_msg(get_lang('No selected message.')); 
     427        } 
     428    } 
     429    catch (e){ 
     430        write_msg(get_lang('Unarchive error: ' + e)); 
     431    } 
     432} 
     433 
     434/** 
     435 * 
     436 *Unarchieve Message Handler 
     437 * 
     438 *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] 
     439 * 
     440 **/ 
     441MailArchiver.prototype.unarchieveHandler = function(){ 
     442    var email = 'http://127.0.0.1:4333/mail/' + expresso_mail_archive.unarchievefolder.substr(6).charAt(0).toUpperCase() + expresso_mail_archive.unarchievefolder.substr(7) + '/'+ expresso_mail_archive.message_list[expresso_mail_archive.unarchivecounter] + '.eml'; 
     443    expresso_mail_archive.messagesourcehandler.onreadystatechange = function(){ 
     444        if (expresso_mail_archive.messagesourcehandler.readyState==4 && expresso_mail_archive.messagesourcehandler.status==200){ 
     445            for (var w=0; w < expresso_mail_archive.messageslisted.length; w++){ 
     446                if(expresso_mail_archive.messageslisted[w]["msg_number"] == expresso_mail_archive.message_list[expresso_mail_archive.unarchivecounter]){ 
     447                    var timestamp = expresso_mail_archive.messageslisted[w]["timestamp"]; 
     448                    var flags  = "#@#@#@" + (expresso_mail_archive.messageslisted[w]["Answered"]!=undefined)?'A':''; 
     449                        flags +=            (expresso_mail_archive.messageslisted[w]["Draft"]   !=undefined)?'D':''; 
     450                        flags +=            (expresso_mail_archive.messageslisted[w]["Flagged"] !=undefined)?'F':''; 
     451                        flags +=            (expresso_mail_archive.messageslisted[w]["Unseen"]  !=undefined)?'U':''; 
     452                    break; 
     453                } 
     454            } 
     455            var source = "#@#@#@" + escape(expresso_mail_archive.messagesourcehandler.responseText); 
     456            //var flags+="#@#@#@"+ mail["Answered"] +":"+mail["Draft"]+":"+mail["Flagged"]+":"+mail["Unseen"]; 
     457            var params =  
     458            "&folder="      + expresso_mail_archive.unarchievenewfolder +  
     459            "&source="      + source +  
     460            "&timestamp="   + timestamp +  
     461            "&flags="       + flags; 
     462            var handler_unarchive = function(){ 
     463                expresso_mail_archive.unarchieveController(); 
     464            } 
     465            write_msg(get_lang('Unarchieving ' + (expresso_mail_archive.unarchivecounter + 1) + ' of ' +  expresso_mail_archive.message_list.length)); 
     466            cExecute ("$this.imap_functions.unarchive_mail&", handler_unarchive, params); 
     467        } 
     468    } 
     469    write_msg(get_lang('Opening message ' + (expresso_mail_archive.unarchivecounter + 1) + ' for Unarchieve')); 
     470    expresso_mail_archive.messagesourcehandler.open("GET", email, true); 
     471    expresso_mail_archive.messagesourcehandler.send(); 
     472} 
     473 
     474/** 
     475 * 
     476 *Unarchieve Message Controller 
     477 * 
     478 *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] 
     479 * 
     480 **/ 
     481MailArchiver.prototype.unarchieveController = function(){ 
     482    expresso_mail_archive.unarchivecounter++; 
     483    if (expresso_mail_archive.unarchivecounter < expresso_mail_archive.message_list.length){ 
     484        expresso_mail_archive.unarchieveHandler(); 
     485    } 
     486    else{ 
     487        if (expresso_mail_archive.message_list.length==1){ 
     488            write_msg(get_lang('Message successfully unarchived')); 
     489        } 
     490        else{ 
     491            write_msg(get_lang('Messages successfully unarchived')); 
     492        } 
     493    } 
     494} 
     495 
     496/** 
    403497 *Archieve Delete Message 
    404498 * 
    405499 *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] 
    406500 * 
    407  *@param msg_number Unique identification of the message 
     501 *@param msgs_number Unique identification of the message 
    408502 */ 
    409503MailArchiver.prototype.deleteMessages = function(msgs_number){ 
     
    416510                                           expresso_mail_archive.message_list); 
    417511        } 
     512        else{ 
     513            write_msg(get_lang('No selected message.')); 
     514        } 
    418515    } 
    419516    catch (e){ 
    420         return (e); 
     517        window.alert('Delete error: ' + e); 
    421518    } 
    422519} 
     
    474571                                       ); 
    475572        } 
    476         else { 
    477             throw "Error moving the messages!"; 
     573        else{ 
     574            write_msg(get_lang('No selected message.')); 
    478575        } 
    479576    } 
    480577    catch (e){ 
    481         return (e); 
     578        window.alert('Move error: ' + e); 
    482579    } 
    483580} 
     
    509606MailArchiver.prototype.moveMessagesOperationFailure = function(error_message){ 
    510607    if(expresso_mail_archive.message_list.length > 1){ 
    511         write_msg(get_lang("Error deleting messages.") + ' ' + error_message.getReturn()); 
     608        write_msg(get_lang("Error moving messages.") + ' ' + error_message.getReturn()); 
    512609    }else{ 
    513         write_msg(get_lang("Error deleting message.") + ' ' + error_message.getReturn()); 
     610        write_msg(get_lang("Error moving message.") + ' ' + error_message.getReturn()); 
    514611    }  
    515612} 
     
    784881    expresso_mail_archive.drawMessagesList(); 
    785882     
    786     window.alert('get ajax...'); 
    787     expresso_mail_archive.getMessageSource(); 
     883    //window.alert('get ajax...'); 
     884   // expresso_mail_archive.getMessageSource(); 
    788885} 
    789886 
     
    877974//Under develpment this one 
    878975MailArchiver.prototype.getMessageSource = function(){ 
    879     expresso_mail_archive.messagesourcehandler.onreadystatechange = AlerteO(); 
     976    //expresso_mail_archive.messagesourcehandler.onreadystatechange = AlerteO(); 
    880977    //expresso_mail_archive.messagesourcehandler.setRequestHeader("SOAPAction", ""); 
    881978    //expresso_mail_archive.messagesourcehandler.setRequestHeader("Access-Control-Allow-Origin", "*"); 
    882979    //expresso_mail_archive.messagesourcehandler.setRequestHeader("Access-Control-Allow-Credentials", "true"); 
    883     window.alert('vai chamar via ajax o texto'); 
    884     expresso_mail_archive.messagesourcehandler.open("GET", "http://10.200.242.186:4333/mail/Sent/teste.txt", 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); 
    885982    //expresso_mail_archive.messagesourcehandler.setRequestHeader("MessageType", "CALL"); 
    886983    //expresso_mail_archive.messagesourcehandler.setRequestHeader("Access-Control-Allow-Origin", "*"); 
    887984    //expresso_mail_archive.messagesourcehandler.setRequestHeader("Access-Control-Allow-Credentials", "true");     
    888     expresso_mail_archive.messagesourcehandler.send(); 
     985    //expresso_mail_archive.messagesourcehandler.send(); 
    889986} 
    890987 
    891988function AlerteO(){ 
    892     window.alert('Ajax lido:\n\nState = ' + expresso_mail_archive.messagesourcehandler.readyState + '\nStatus = ' + expresso_mail_archive.messagesourcehandler.status); 
     989    //window.alert('Ajax lido:\n\nState = ' + expresso_mail_archive.messagesourcehandler.readyState + '\nStatus = ' + expresso_mail_archive.messagesourcehandler.status); 
    893990} 
    894991 
  • sandbox/expressoMail1_2/MailArchiver/2.2/expressoMail1_2/js/messages_controller.js

    r4910 r4955  
    246246        } 
    247247 
    248         messages_proxy.prototype.proxy_move_messages = function (folder, msgs_number, border_ID, new_folder, new_folder_name) { 
    249                 if (! folder || folder == 'null') 
    250                         folder = Element("input_folder_"+msgs_number+"_r") ? Element("input_folder_"+msgs_number+"_r").value : (openTab.imapBox[currentTab] ? openTab.imapBox[currentTab]:get_current_folder()); 
    251                 if ((this.is_local_folder(folder)) && (this.is_local_folder(new_folder))) { //Move entre pastas nï¿œo locais... 
    252                         if (folder == new_folder){ 
    253                                 write_msg(get_lang('The origin folder and the destination folder are the same.')); 
    254                                 return; 
    255                         } 
    256                         if(msgs_number=='selected') 
    257                                 msgs_number = get_selected_messages(); 
    258                         if (new_folder == 'local_root') 
    259                                 alert(get_lang("Select a folder!")); 
    260                         if (parseInt(msgs_number) > 0 || msgs_number.length > 0) { 
    261                                 expresso_local_messages.move_messages(new_folder.substr(6), msgs_number); 
    262                                 this.aux_interface_remove_mails(msgs_number, new_folder_name, border_ID); 
    263                                 draw_tree_local_folders(); 
    264                         } 
    265                         else  
    266                                 write_msg(get_lang('No selected message.')); 
    267                 } 
    268                 else 
    269                         if ((!this.is_local_folder(folder)) && (!this.is_local_folder(new_folder))) { //Move entre pastas locais... 
    270                                 move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name); 
    271                         } 
    272                         else if ((!this.is_local_folder(folder)) && (this.is_local_folder(new_folder))) { 
    273                                 if(msgs_number=='selected') 
    274                                         archive_msgs(folder,new_folder); 
    275                                 else 
    276                                         archive_msgs(folder,new_folder,msgs_number); 
    277                                 draw_tree_local_folders(); 
    278                         } 
    279                         else { 
    280                 //Por Bruno Costa (bruno.vieira-costa@serpro.gov.br) permite o desarquivamento de menssagens chamando a funᅵᅵo unarchive_msgs quando uma msg ï¿œ movida de uma pasta local para uma pasta remota. 
    281  
    282                                 expresso_local_messages.unarchive_msgs(folder,new_folder,msgs_number); 
    283                 //write_msg(get_lang("you can't move mails from local to server folders")); 
    284                         } 
    285                  
    286                  
     248        messages_proxy.prototype.proxy_move_messages = function (folder, msgs_number, border_ID, new_folder, new_folder_name) {                            
     249            if (! folder || folder == 'null'){ 
     250                folder = get_current_folder(); 
     251                if (!this.is_local_folder(folder)){ 
     252                    folder = Element("input_folder_"+msgs_number+"_r") ? Element("input_folder_"+msgs_number+"_r").value : (openTab.imapBox[currentTab] ? openTab.imapBox[currentTab]:get_current_folder());                     
     253                } 
     254            } 
     255            if (folder == new_folder){ 
     256                write_msg(get_lang('The origin folder and the destination folder are the same.')); 
     257                return; 
     258            } 
     259             
     260            if (this.is_local_folder(folder)){ 
     261                //Folder de onde sai a mensagem é local (armazenamento local) 
     262                 
     263                if (new_folder == 'local_root'){ 
     264                    alert(get_lang("Select a folder!")); 
     265                } 
     266                 
     267                if(msgs_number=='selected'){ 
     268                    msgs_number = get_selected_messages(); 
     269                } 
     270                 
     271                if (parseInt(msgs_number) > 0 || msgs_number.length > 0) { 
     272                    if (this.is_local_folder(new_folder)){ 
     273                        //esta tirando de um folder local para outro folder local 
     274                        expresso_mail_archive.moveMessages(new_folder.substr(6), msgs_number); 
     275                    } 
     276                    else{ 
     277                        //esta tirando de um folder local para um folder IMAP (desarquivamento) 
     278                        if(!new_folder){ 
     279                            new_folder = 'INBOX'; 
     280                        } 
     281                        if(currentTab.toString().indexOf("_r") != -1){ 
     282                            msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 
     283                        }                       
     284                        expresso_mail_archive.unarchieve(folder, new_folder, msgs_number); 
     285                    } 
     286                } 
     287                else{ 
     288                    write_msg(get_lang('No selected message.')); 
     289                } 
     290            }else{ 
     291                if (this.is_local_folder(new_folder)){ 
     292                    //esta tirando de um folder não local para um folder local (arquivamento) 
     293                    if(msgs_number=='selected'){ 
     294                        archive_msgs(folder, new_folder); 
     295                    } 
     296                    else{ 
     297                        archive_msgs(folder, new_folder, msgs_number); 
     298                    } 
     299                } 
     300                else{ 
     301                    //esta tirando de um folder não local para outro folder não local (move) 
     302                    move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name); 
     303                } 
     304            } 
    287305        } 
    288306         
Note: See TracChangeset for help on using the changeset viewer.