Changeset 7888 for sandbox


Ignore:
Timestamp:
02/18/13 13:48:17 (11 years ago)
Author:
thiago
Message:

Ticket #3331 - Implementado a parte de arquivamento, e colocado informações em ingles.

Location:
sandbox/2.5.1-expresso1/expressoMail1_2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • sandbox/2.5.1-expresso1/expressoMail1_2/inc/class.imap_functions.inc.php

    r7885 r7888  
    26802680                return $return; 
    26812681        } 
    2682          
    2683     function delete_msg_archive_by_flag($params){ 
    2684         $folder = "INBOX/Trash"; 
    2685          
    2686         $mbox_stream = @imap_open("{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$folder, $this->username, $this->password) or die(serialize(array('imap_error' => $this->parse_error(imap_last_error())))); 
    2687  
    2688         $messages = imap_search($mbox_stream, 'KEYWORD "$archiverMsg"', SE_UID); 
    2689  
    2690         foreach($messages as $i => $id){ 
    2691             if(imap_delete($mbox_stream, $id, FT_UID)){ 
    2692  
    2693             } 
    2694         } 
    2695  
    2696         $return = array( 
    2697             "result" => "ok" 
    2698         ); 
    2699  
    2700         return json_encode($return); 
    2701     } 
    2702  
    2703     function get_last_msg_by_id($params){ 
     2682 
     2683    function get_info_msg_archiver($params){ 
    27042684         $folder = "INBOX/Trash"; 
    27052685         $mbox_stream = $this->open_mbox($folder); 
    27062686 
    2707         $messages = imap_search($mbox_stream, 'KEYWORD "$archiverMsg"', SE_UID); 
    2708  
    2709         foreach($messages as $i => $id){ 
     2687        foreach($params['idMsgs'] as $i => $id){ 
    27102688            $name = imap_headerinfo($mbox_stream, imap_msgno($mbox_stream ,$id)); 
    2711  
    27122689            $return[] =  array( 
    27132690                'uid' => $id, 
     
    27172694            ); 
    27182695        } 
    2719         //volta aqui 
    27202696         
    27212697        return json_encode($return); 
     
    29962972 
    29972973            $header = $this->get_header($msg_numb); 
     2974 
    29982975            $header_ = imap_fetchheader($this->mbox, $msg_numb, FT_UID); 
    29992976            $pattern = '/^[ \t]*Disposition-Notification-To:.*/mi'; 
     
    49184895        $error = array(); 
    49194896 
     4897 
     4898 
    49204899        foreach($sources as $index=>$src) 
    49214900        { 
    49224901            if($src!="") 
    49234902            { 
     4903                     
     4904                 
     4905 
    49244906                //If it is a MailArchiver incomming data 
    49254907                if($params['madata']) 
     
    49344916 
    49354917                //volta aqui 
    4936  
    4937                 $this->mbox = $this->open_mbox($dest_folder); 
    4938                 imap_setflag_full($this->mbox, $insert['msg_no'], '$archiverMsg' , ST_UID); 
     4918                $return['idsMsg'] = $insert['msg_no']; 
    49394919 
    49404920                if($insert['error']) 
  • sandbox/2.5.1-expresso1/expressoMail1_2/js/abas.js

    r7885 r7888  
    684684    $.each(msgAttachments[ID], function(i, each){ 
    685685        
    686         if(typeof($.parseJSON(each).folder) == "undefined")  return false; 
     686         if(typeof(each) == "undefined")  return true; 
    687687         
    688688       if($.parseJSON(each).folder.indexOf("local_messages_") != -1){ 
  • sandbox/2.5.1-expresso1/expressoMail1_2/js/mail_archiver.js

    r7885 r7888  
    575575} 
    576576 
    577  
    578  
    579  
    580  
    581  
    582  
    583  
    584  
    585  
    586  
    587  
    588577MailArchiver.prototype.unarchieveToAttach = function (folder, new_folder, msgs_number){ 
    589     try{  
     578    try{ 
     579 
     580        if(typeof(expresso_mail_archive.idMsgsToAttach) == "undefined"){ 
     581            expresso_mail_archive.idMsgsToAttach = new Array(); 
     582        } 
    590583        //write_msg(get_lang("Starting to unarchive messages")); 
    591584        expresso_mail_archive.isArchiveOperation = true; 
     
    599592        if (parseInt(msgs_number) > 0 || msgs_number.length > 0){        
    600593            
    601             expresso_mail_archive.message_list = new Array(); 
    602             expresso_mail_archive.message_list.push(msgs_number); 
    603             if((expresso_mail_archive.message_list.length > 0) && (expresso_mail_archive.message_list[0] != '')) { 
     594            expresso_mail_archive.messageToAttach = msgs_number; 
     595            if(expresso_mail_archive.messageToAttach) { 
    604596                 
    605                 expresso_mail_archive.unarchieveToAttachHandler(); 
    606  
    607597                expresso_mail_archive.unarchivecounter = 0; 
    608598                expresso_mail_archive.unarchive_error_counter=0; 
     
    611601                (new_folder != null)?expresso_mail_archive.unarchievenewfolder = new_folder:expresso_mail_archive.unarchievenewfolder='INBOX'; 
    612602                 
    613                  
     603                expresso_mail_archive.unarchieveToAttachHandler(); 
    614604                 
    615605                if(currentTab.toString().indexOf("_r") != -1){ 
     
    631621} 
    632622 
    633 /** 
    634  * 
    635  *Unarchieve Message Handler 
    636  * 
    637  *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] 
    638  * 
    639  **/ 
    640623MailArchiver.prototype.unarchieveToAttachHandler = function(){ 
    641  
    642     try{ 
    643         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[0] + '.eml';     
     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';     
    644626     
    645627        //Creates a new object to unarchive messages. It's a CXF Add-on CORS component 
     
    651633            for (var w=0; w < expresso_mail_archive.allcompletemessagesbyfolder.length; w++){ 
    652634                                 
    653                 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){ 
    654636                    var timestamp = expresso_mail_archive.allcompletemessagesbyfolder[w]["timestamp"]; 
    655637                     
     
    706688                } 
    707689            } 
    708             var id = expresso_mail_archive.message_list[expresso_mail_archive.unarchivecounter]; 
     690            var id = expresso_mail_archive.messageToAttach; 
    709691            var source =  encodeURIComponent(UnarchiveReqHandler.handler.responseText) + "#@#@#@"; 
    710692            var params =  
     
    716698            "&id="          + id; 
    717699 
     700 
    718701            var handler_unarchive = function(data){ 
    719702                expresso_mail_archive.unarchieveToAttachController(data); 
    720  
    721  
    722             } 
    723             write_msg(get_lang('Unarchiving message %1 of %2', (expresso_mail_archive.unarchivecounter + 1), expresso_mail_archive.message_list.length)); 
     703            } 
     704            write_msg(get_lang("Please, Wait the messages from archieve be ready.")); 
    724705             
    725             //cExecute ("$this.imap_functions.unarchive_mail&", handler_unarchive, params); 
    726  
    727706             $.ajax({ 
    728707                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, 
    729714                data:  params, 
    730715                type: 'POST', 
    731                 async: false, 
    732                 success: function(data){ 
    733                     handler_unarchive(connector.unserialize(data)); 
    734                 }, 
    735             });  
    736  
    737         } 
     716                 
     717            }); 
     718 
     719        } 
     720 
    738721         
    739722        UnarchiveReqHandler.handler.open("GET", email, true); 
     
    748731} 
    749732 
    750 /** 
    751  * 
    752  *Unarchieve Message Controller 
    753  * 
    754  *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] 
    755  * 
    756  **/ 
    757733MailArchiver.prototype.unarchieveToAttachController = function(data){ 
    758     expresso_mail_archive.unarchivecounter++; 
    759734     
    760735    if (data){ 
     
    763738        } 
    764739         
    765         if (data.archived && preferences.keep_archived_messages == "0") { 
    766             expresso_mail_archive.deleteMessages(data.archived[0]); 
    767         } 
    768          
    769     } 
    770  
    771     if (expresso_mail_archive.unarchivecounter < expresso_mail_archive.message_list.length){ 
    772         expresso_mail_archive.unarchieveHandler(); 
    773     } else { 
    774         expresso_mail_archive.message_list = new Array(); 
    775         expresso_mail_archive.isArchiveOperation = false; 
    776     } 
    777 } 
    778  
    779  
    780  
    781  
    782  
    783  
    784  
    785  
    786  
    787  
    788  
    789  
    790  
    791  
    792  
    793  
    794  
    795  
    796  
    797  
    798  
    799  
    800  
    801  
    802  
     740    } 
     741} 
    803742 
    804743 
  • sandbox/2.5.1-expresso1/expressoMail1_2/js/main.js

    r7885 r7888  
    2727var topContact = 0; 
    2828 
    29 //Os IE's < 9 não possuem suporte a trim() introduzida no JavaScript 1.8.1 
     29//Os IE's < 9 não possuem suporte a trim() introduzida no JavaScript 1.8.1 
    3030if(!String.prototype.trim){   
    3131        String.prototype.trim = function(){ 
     
    181181                    } 
    182182                } 
    183                 if (preferences.use_local_messages==1) { //O I.E 7 estava se atrapalhando caso esses loads fossem feitos após as chamadas ajax. Antes não apresentou problemas... 
     183                if (preferences.use_local_messages==1) { //O I.E 7 estava se atrapalhando caso esses loads fossem feitos após as chamadas ajax. Antes não apresentou problemas... 
    184184                        connector.loadScript('mail_sync'); 
    185185                        setTimeout('auto_archiving()', 30000); 
     
    240240                //       
    241241 
    242                 //Troca da forma de construção de menu para o plugin jquery.contextMenu 
     242                //Troca da forma de construção de menu para o plugin jquery.contextMenu 
    243243                //ConstructMenuTools(); 
    244244                //MAILARCHIVER-00 
    245                 //if ( (preferences.use_local_messages==1) && (expresso_local_messages.is_offline_installed()) )  //Precisa ser feito após a renderização da caixa de emails 
     245                //if ( (preferences.use_local_messages==1) && (expresso_local_messages.is_offline_installed()) )  //Precisa ser feito após a renderização da caixa de emails 
    246246                        //check_mail_in_queue(); 
    247247                 
     
    250250                        loadApplet(); 
    251251                } 
    252                 // Fim da inserção da applet 
     252                // Fim da inserção da applet 
    253253                cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu);      
    254254                 
     
    315315        } 
    316316 
    317         // Versão 
     317        // Versão 
    318318        Element('divAppboxHeader').innerHTML = title_app; 
    319319 
     
    344344                '<td style="padding-left:17px" width=33% id="content_quota" align=left></td>' + 
    345345                '<td width=33% height=16px align=center nowrap><font face=Verdana, Arial, Helvetica, sans-serif color=#000066 size=2>' + 
    346                 '<b>ExpressoMail Offline</b><font size=1><b> - Versão 1.0</b></font></td>' + 
     346                '<b>ExpressoMail Offline</b><font size=1><b> - Versão 1.0</b></font></td>' + 
    347347                '<td width=33% id="div_menu_c3" align=right></td>' + 
    348348                '</tr></table>'; 
    349349 
    350                 //Troca da forma de construção de menu para o plugin jquery.contextMenu 
     350                //Troca da forma de construção de menu para o plugin jquery.contextMenu 
    351351                //ConstructMenuTools(); 
    352352 
     
    366366/** 
    367367 * Carrega a applet java no objeto search_div 
    368  * @author Mário César Kolling <mario.kolling@serpro.gov.br> 
     368 * @author Mário César Kolling <mario.kolling@serpro.gov.br> 
    369369 */ 
    370370 
     
    434434} 
    435435/* 
    436         funcão que remove todos os anexos... 
     436        funcão que remove todos os anexos... 
    437437*/ 
    438438function remove_all_attachments(folder,msg_num) { 
     
    560560                // Verifica se existe o objeto applet 
    561561                if (!Element('cert_applet')){ 
    562                         // se não existir, mostra mensagem de erro. 
     562                        // se não existir, mostra mensagem de erro. 
    563563                        write_msg(get_lang('The preference "%1" isn\'t enabled.', get_lang('Enable digitally sign/cipher the message?'))); 
    564564                } else { 
    565565                        // se existir prepara os dados para serem enviados e chama a 
    566                         // operação na applet 
     566                        // operação na applet 
    567567 
    568568                   // if ((msg_info.DispositionNotificationTo) && ((msg_info.Unseen == 'U') || (msg_info.Recent == 'N'))){ 
     
    599599                var id_msg_read = ID+"_r_"+folderName; 
    600600         
    601         //Evita a tentativa de criação de uma aba cujo ID já existe 
     601        //Evita a tentativa de criação de uma aba cujo ID já existe 
    602602        if (Element("border_id_"+id_msg_read) && currentTab > 0)  
    603603                    id_msg_read += "n"; 
     
    666666 
    667667                        if (confNotification) { 
    668                         /* Adequação a nova funcionalidade. Agora, a confirmação de leitura é uma preferência do usuário. */ 
     668                        /* Adequação a nova funcionalidade. Agora, a confirmação de leitura é uma preferência do usuário. */ 
    669669                                if(preferences.confirm_read_message) { 
    670670                                        $.Zebra_Dialog(get_lang("Would you like to send the read receipt?"), { 
     
    747747                         
    748748                } 
    749                 /* Busca  nas pastas indexadas para ver se há novas mensagens com a flag $FilteredMessage */ 
     749                /* Busca  nas pastas indexadas para ver se há novas mensagens com a flag $FilteredMessage */ 
    750750                cExecute ("$this.imap_functions.getFlaggedAlertMessages&folders="+fromRules, handlerMessageFilter); 
    751751 
     
    799799                        if (data[0] && data[0].msg_folder != current_folder) // Bad request 
    800800                                return false; 
    801                         /* removido incremento da variável pois estava incrementando mais do que o necessário 
    802                         * devido ao incremento realizado em seguida, quando novas são recebidas */ 
     801                        /* removido incremento da variável pois estava incrementando mais do que o necessário 
     802                        * devido ao incremento realizado em seguida, quando novas são recebidas */ 
    803803                        //totalFolderMsgs += data.new_msgs; 
    804804                                 
     
    10101010 
    10111011        var msgs = $("#tbody_box tr"); 
    1012         //Se a classe abaixo (somente ela) não existir a barra de seleção azul deve voltar ao topo. 
     1012        //Se a classe abaixo (somente ela) não existir a barra de seleção azul deve voltar ao topo. 
    10131013        if(!msgs.hasClass("current_selected_shortcut_msg")) 
    10141014        { 
     
    10221022function delete_msgs(folder, msgs_number, border_ID, show_success_msg,archive, prev_message){    
    10231023            if( preferences.use_local_messages == 1 && expresso_local_messages.isArchiving( msgs_number, folder ) ){ 
    1024                           alert( "Impossivel deletar mensagens que ainda estão sendo arquivadas." ); 
     1024                          alert( "Impossivel deletar mensagens que ainda estão sendo arquivadas." ); 
    10251025                          return; 
    10261026                        } 
     
    10801080                } 
    10811081 
    1082                 //Se pref. usar mensagens locais ativaada e não for operação de arquivamento exibe mensagem de remoção. 
     1082                //Se pref. usar mensagens locais ativaada e não for operação de arquivamento exibe mensagem de remoção. 
    10831083                if(preferences.use_local_messages == 1){ 
    10841084                        if(!expresso_mail_archive.isArchiveOperation){ 
     
    11431143                                                 delete selectedPagingMsgs[data.msgs_number[i]];  
    11441144                                } 
    1145                 // removido decremento da variável pois estava decrementando em outros lugares 
     1145                // removido decremento da variável pois estava decrementando em outros lugares 
    11461146                                // totalFolderMsgs = totalFolderMsgs - data.msgs_number.length; 
    11471147                } 
     
    11821182        var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
    11831183 
    1184         //Validação para não poder manipular mensagens locais na busca 
     1184        //Validação para não poder manipular mensagens locais na busca 
    11851185        if (currentTab.indexOf('search_local') != -1 || proxy_mensagens.is_local_folder(new_folder)) 
    11861186        { 
     
    11971197         
    11981198        if( preferences.use_local_messages == 1 && expresso_local_messages.isArchiving( selected_messages, folder ) ){ 
    1199           alert( "Impossivel mover mensagens que ainda estão sendo arquivadas." ); 
     1199          alert( "Impossivel mover mensagens que ainda estão sendo arquivadas." ); 
    12001200          return; 
    12011201        } 
     
    13461346        var folder_error = new_folder_name; 
    13471347        if( preferences.use_local_messages == 1 && expresso_local_messages.isArchiving( msgs_number, folder ) ){ 
    1348             alert( "Impossivel mover mensagens que ainda estão sendo arquivadas." ); 
     1348            alert( "Impossivel mover mensagens que ainda estão sendo arquivadas." ); 
    13491349            return; 
    13501350        } 
     
    13661366                        }else{ 
    13671367                                write_msg(get_lang('Error moving message.')+" "+get_lang('Permission denied to folder "%1".', new_folder_name)); 
    1368                                 /*Verifica se a pasta destino é a "Trash" e se a pasta origem e destino são do mesma estrutura compartilhada*/ 
     1368                                /*Verifica se a pasta destino é a "Trash" e se a pasta origem e destino são do mesma estrutura compartilhada*/ 
    13691369                                if(new_folder_name == "Trash" && folder.split("/")[1] == new_folder.split("/")[1]){ 
    13701370                                        alert(get_lang("You can not remove the message with the preference 'Send to Trash' enabled. There is no permission to move messages to the trash folder.")); 
     
    14141414                                        } 
    14151415                                } 
    1416                                 //se houver pagina anterior a paginação deve ser refeita 
     1416                                //se houver pagina anterior a paginação deve ser refeita 
    14171417                                else  
    14181418                                { 
     
    15051505                if ( preferences.use_shortcuts == '1') { 
    15061506                        var all_messages = Element('tbody_box').childNodes; 
    1507                         // verificar se a msg selecionada com o checkbox é a mesma selecionada com o shortcut 
     1507                        // verificar se a msg selecionada com o checkbox é a mesma selecionada com o shortcut 
    15081508                        var msg_list_shortcut = get_selected_messages_shortcut().split(','); 
    15091509                        if(data.msgs_number.length > 0 && msg_list_shortcut.length > 0 && data.msgs_number.toString() == msg_list_shortcut.toString()){ 
     
    15261526                } 
    15271527 
    1528                 //Se pref. usar mensagens locais ativada e não for operação de arquivamento exibe mensagem de remoção. 
     1528                //Se pref. usar mensagens locais ativada e não for operação de arquivamento exibe mensagem de remoção. 
    15291529                if(preferences.use_local_messages == 1){ 
    15301530                        if(!expresso_mail_archive.isArchiveOperation){ 
     
    15561556                        draw_paging(n_total_msg); 
    15571557                        Element('tot_m').innerHTML = n_total_msg; 
    1558             // removido decremento da variável pois estava decrementando em outros lugares 
     1558            // removido decremento da variável pois estava decrementando em outros lugares 
    15591559                        //totalFolderMsgs -= data.msgs_number.length; 
    15601560                } 
     
    15731573                } 
    15741574        } catch (e) {}  
    1575     //Validação para recuperar o id caso não seja aba de listagem 
     1575    //Validação para recuperar o id caso não seja aba de listagem 
    15761576        if (currentTab == 0 && msgs_number == "selected") 
    15771577                msgs_number = get_selected_messages(); 
     
    15831583                } 
    15841584 
    1585         // se a aba estiver aberta e selecionada, apenas a msg da aba é movida 
     1585        // se a aba estiver aberta e selecionada, apenas a msg da aba é movida 
    15861586        if(currentTab.toString().indexOf("_r") != -1 && currentTab == border_ID) 
    15871587        { 
     
    16021602         
    16031603                expresso_mail_archive.update_counters = true; 
    1604         //Folder de onde sai a mensagem é local (armazenamento local) 
     1604        //Folder de onde sai a mensagem é local (armazenamento local) 
    16051605 
    16061606        if(msgs_number=='selected'){ 
     
    16391639        else{ 
    16401640        if (proxy_mensagens.is_local_folder(new_folder)){ 
    1641             //esta tirando de um folder não local para um folder local (arquivamento) 
     1641            //esta tirando de um folder não local para um folder local (arquivamento) 
    16421642            if(msgs_number=='selected'){ 
    16431643                archive_msgs(folder, new_folder); 
     
    16481648        } 
    16491649        else{ 
    1650             //esta tirando de um folder não local para outro folder não local (move) 
     1650            //esta tirando de um folder não local para outro folder não local (move) 
    16511651            //move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name); 
    16521652                        if (parseInt(msgs_number) > 0 || msgs_number.length > 0){ 
     
    17151715    }    
    17161716 
    1717     //Código adicionado para o correto funcionamento da seleção independente de paginação. 
     1717    //Código adicionado para o correto funcionamento da seleção independente de paginação. 
    17181718    $.each(msgs_number.split(","), function(index, value){ 
    17191719        delete selectedPagingMsgs[value]; 
    17201720    }); 
    1721     // removido decremento da variável pois estava decrementando em outros lugares 
     1721    // removido decremento da variável pois estava decrementando em outros lugares 
    17221722    //totalFolderMsgs = totalFolderMsgs - msgs_number.split(",").length; 
    17231723    selectAllFolderMsgs(false); 
     
    17351735 
    17361736 
    1737       // se a aba estiver aberta e selecionada, apenas a msg da aba é movida 
     1737      // se a aba estiver aberta e selecionada, apenas a msg da aba é movida 
    17381738      if(currentTab.toString().indexOf("_r") != -1) 
    17391739      { 
     
    17711771 
    17721772        if( !id_msgs ){ 
    1773             write_msg( "Todas as mensagens já foram arquivadas anteriormente." ); 
     1773            write_msg( "Todas as mensagens já foram arquivadas anteriormente." ); 
    17741774            return; 
    17751775        } 
     
    17841784                msgs_info[i] = connector.unserialize( data[i] ); 
    17851785 
    1786             //vejo se já tinha mensagens locais 
     1786            //vejo se já tinha mensagens locais 
    17871787            var h = expresso_local_messages.has_local_mails(); 
    17881788             
     
    18241824 
    18251825    if(typeof (currentTab) == "string" && currentTab.indexOf("local") != -1){   
    1826         alert("Impossével manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais."); 
     1826        alert("Impossével manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais."); 
    18271827        return true; 
    18281828    } 
     
    18771877 
    18781878         if( !id_msgs ){ 
    1879               write_msg( "Todas as mensagens já foram arquivadas anteriormente." ); 
     1879              write_msg( "Todas as mensagens já foram arquivadas anteriormente." ); 
    18801880              return; 
    18811881          } 
     
    18901890                //msgs_info[i] = connector.unserialize( data[i] ); 
    18911891 
    1892             //vejo se já tinha mensagens locais 
     1892            //vejo se já tinha mensagens locais 
    18931893            //var h = expresso_local_messages.has_local_mails(); 
    18941894             
     
    21122112 
    21132113                          
    2114                         /* Verifica se está na tela de pesquisa. */ /* 
     2114                        /* Verifica se está na tela de pesquisa. */ /* 
    21152115                        if(selected_messages.indexOf("_") != -1)  
    21162116                        {  
    21172117                                results_search_messages = selected_messages;  
    2118                                 /* Retira a informação da aba */ /* 
     2118                                /* Retira a informação da aba */ /* 
    21192119                                selected_messages = selected_messages.substring(0,selected_messages.indexOf("_")); 
    21202120        } 
     
    26482648            openTab.imapBox[new_border_ID] = folder_message.value; 
    26492649            document.getElementById('font_border_id_' + new_border_ID).innerHTML = data.subject; 
    2650             title = "Edição: " + html_entities(data.subject); 
     2650            title = "Edição: " + html_entities(data.subject); 
    26512651 
    26522652            data.to = Element("to_values_" + border_ID).value; 
     
    27372737} 
    27382738 
    2739 //DESENHA OS RETANGULOS PARA OS E-MAIL NA OPÇÃO REPLY 
     2739//DESENHA OS RETANGULOS PARA OS E-MAIL NA OPÇÃO REPLY 
    27402740function draw_reply_boxes_by_field(field, value, context){ 
    27412741        array = break_comma(value); 
     
    27832783        var attachments = $("#attachments_" + old_id_border).find("a");  
    27842784                if(openTab.imapBox[new_border_ID].split("local").length > 1 && attachments.length > 0){ 
    2785                         alert("Não é possivel utilizar os anexos das mensagens locais, favor desarquivar para ter acesso aos anexos"); 
     2785                        alert("Não é possivel utilizar os anexos das mensagens locais, favor desarquivar para ter acesso aos anexos"); 
    27862786                        return false; 
    27872787                } 
     
    29882988 
    29892989        if(openTab.imapBox[new_border_ID].split("local").length > 1 && attachments.length > 0){ 
    2990                 alert("Não é possivel utilizar os anexos das mensagens locais, favor desarquivar para ter acesso aos anexos"); 
     2990                alert("Não é possivel utilizar os anexos das mensagens locais, favor desarquivar para ter acesso aos anexos"); 
    29912991                return false; 
    29922992        } 
     
    31173117                        } 
    31183118                        else { // crypt 
    3119                                 //TODO: Colocar mensagem de erro, e finalizar o método. 
     3119                                //TODO: Colocar mensagem de erro, e finalizar o método. 
    31203120                                operation = 'nop'; 
    31213121                        } 
     
    32293229} 
    32303230 
    3231 /*Função que grava o destinatário nos contatos dinâmicos*/ 
     3231/*Função que grava o destinatário nos contatos dinâmicos*/ 
    32323232function save_dynamic_contacts(array){ 
    32333233                 
     
    32653265 
    32663266/** 
    3267  * Método chamado pela applet para retornar o resultado da assinatura/decifragem do e-mail. 
     3267 * Método chamado pela applet para retornar o resultado da assinatura/decifragem do e-mail. 
    32683268 * para posterior envio ao servidor. 
    3269  * @author Mário César Kolling <mario.kolling@serpro.gov.br>, Bruno Vieira da Costa <bruno.vieira-costa@serpro.gov.br> 
     3269 * @author Mário César Kolling <mario.kolling@serpro.gov.br>, Bruno Vieira da Costa <bruno.vieira-costa@serpro.gov.br> 
    32703270 * @param smime O e-mail decifrado/assinado 
    3271  * @param ID O ID do e-mail, para saber em que aba esse e-mail será mostrado. 
    3272  * @param operation A operação que foi realizada pela applet (assinatura ou decifragem) 
     3271 * @param ID O ID do e-mail, para saber em que aba esse e-mail será mostrado. 
     3272 * @param operation A operação que foi realizada pela applet (assinatura ou decifragem) 
    32733273 */ 
    32743274function appletReturn(smime, ID, operation, folder){ 
     
    33013301        { 
    33023302                ID_tmp = ID; 
    3303                 // Lá a variável e chama a nova função cExecuteForm 
     3303                // Lá a variável e chama a nova função cExecuteForm 
    33043304                // Processa e envia para o servidor web 
    33053305                // Faz o request do connector novamente. Talvez implementar no connector 
    3306                 // para manter coerência. 
     3306                // para manter coerência. 
    33073307 
    33083308                var handler_send_smime = function(data){ 
     
    33163316                textArea.value += smime; 
    33173317 
    3318                 // Lá a variável e chama a nova função cExecuteForm 
     3318                // Lá a variável e chama a nova função cExecuteForm 
    33193319                // Processa e envia para o servidor web 
    33203320                // Faz o request do connector novamente. Talvez implementar no connector 
    3321                 // para manter coerência. 
     3321                // para manter coerência. 
    33223322                if (is_ie){ 
    33233323                        var i = 0; 
     
    33353335 
    33363336/*  
    3337  * Método que verifica se existe algum item de 'words' em 'body'. 
    3338  * Se houver, retorna a primeira ocorrência encontrada de words, caso contrário retorna false. 
     3337 * Método que verifica se existe algum item de 'words' em 'body'. 
     3338 * Se houver, retorna a primeira ocorrência encontrada de words, caso contrário retorna false. 
    33393339 */ 
    33403340function verifyBodyWords(body, words) 
     
    33773377        var content_body  = RichTextEditor.getData('body_'+ID);      
    33783378        /*  
    3379                 Funcionalidade que verifica se o usuário escreveu a palavra anexo no corpo da mensagem e não anexou nenhum arquivo. 
    3380                 Esta funcionalidade é ativada nas preferências do módulo ExpressoMail. 
     3379                Funcionalidade que verifica se o usuário escreveu a palavra anexo no corpo da mensagem e não anexou nenhum arquivo. 
     3380                Esta funcionalidade é ativada nas preferências do módulo ExpressoMail. 
    33813381        */       
    3382         /* Lista de palavras que vão ser procuradas no corpo do email, referente às variantes da palavra anexo em português, inglês e espanhol. */ 
    3383         if(language == "pt-br") //Português brasileiro 
     3382        /* Lista de palavras que vão ser procuradas no corpo do email, referente às variantes da palavra anexo em português, inglês e espanhol. */ 
     3383        if(language == "pt-br") //Português brasileiro 
    33843384                var words = ['anexo', 'anexos', 'anexada', 'anexado', 'anexei', 'anexando', 'anexaste', 'anexastes', 'anexamos', 'anexaram']; 
    33853385        else if(language == "es-es") //Espanhol 
    33863386                var words = ['anexo','adjunto', 'adjuntos', 'adjuntado','adjuntamos']; 
    3387         else //Inglês ('en') 
     3387        else //Inglês ('en') 
    33883388                var words = ['attach', 'attachment', 'attached', 'annex', 'appending']; 
    33893389 
     
    34143414                zebraDiscardEventDialog = true; 
    34153415                window.setTimeout(function() { 
    3416                         $.Zebra_Dialog('Existem anexos sendo enviados para o servidor. Caso envie sua mensagem agora estes arquivos serão perdidos.', { 
     3416                        $.Zebra_Dialog('Existem anexos sendo enviados para o servidor. Caso envie sua mensagem agora estes arquivos serão perdidos.', { 
    34173417                                'type':     'question', 
    34183418                                'overlay_opacity': '0.5', 
     
    35233523                mailData.input_from = $(content).find('select[name="input_from"]').val(); 
    35243524 
    3525  
    3526     //volta aqui 
    3527  
     3525    // VERIFY IF EXISTS MESSAGE TO ATTACH 
    35283526    if(typeof mailData.attachments == "object"){ 
    35293527 
     3528        // VERIFY IF EXISTS MESSAGE OF ARCHIVE 
    35303529        if(mailData.attachments.archiver.length){ 
    35313530 
     3531            // CREATE ONE VARIABLE TO STORE ALL THE MESSAGES INFORMATION 
    35323532            var archiver = new Array(); 
    3533             var msgsId = new Array(); 
    3534             $.each(mailData.attachments.archiver, function(i, each){ 
    3535               expresso_mail_archive.unarchieveToAttach(each.folder,"INBOX/Trash",each.uid); //folder, new_folder, msgs_number 
    3536                
    3537             }); 
    3538              $.ajax({ 
    3539                     url: "controller.php?action=$this.imap_functions.get_last_msg_by_id", 
    3540                     data:  archiver, 
    3541                     type: 'POST', 
    3542                     async: false, 
    3543                     success: function(data){ 
    3544                         data = connector.unserialize(data); 
    3545                         archiver.push(data); 
    3546                     }, 
    3547               }); 
    3548  
    3549             mailData.attachments = mailData.attachments.imap; 
    3550  
    3551 //TypeError: archiver is null 
    3552             archiver = $.parseJSON(archiver[0]); 
    3553             if(archiver.length){ 
    3554                 $.each(archiver, function(i, each){ 
    3555                     msgsId.push(archiver[i].uid); 
    3556                     mailData.attachments.push(JSON.stringify(archiver[i])); 
    3557                 }); 
    3558             } 
    3559  
    3560             mailData.attachments = JSON.stringify(mailData.attachments); 
    3561  
     3533 
     3534            // UNARCHIEVE ALL THE MESSAGES TO IMAP TRASH 
     3535           $.each(mailData.attachments.archiver, function(i, each){ 
     3536             expresso_mail_archive.unarchieveToAttach(each.folder,"INBOX/Trash",each.uid); 
     3537           }); 
     3538 
     3539            // FIX THE PROBLEM WITH ASYNC 
     3540            // noReady is calling always that the variable is not complete with all the messages ids 
     3541            notReady = function(){ 
     3542                setTimeout(function(){ 
     3543                if(mailData.attachments.archiver.length == expresso_mail_archive.idMsgsToAttach.length){ 
     3544                    // THIS FUNCTION IS FOR TO GET THE INFORMATION OF THE MESSAGE NEWLY UNARCHIVED 
     3545                    readyToFetch(); 
     3546                    // THIS FUNCTION IS FOR TO SEND THE MESSAGE WITH ATTACHMENT 
     3547                    readyToSend(); 
     3548                } else { 
     3549                    // IF THE ARRAY DON'T HAVE ALL THE MESSAGES IDS, OKAY, NO PROBLEM... CALL THIS FUNCTION AGAIN! 
     3550                    noReady(); 
     3551                } 
     3552              },30); 
     3553            }; 
     3554            notReady(); 
     3555 
     3556             // THIS FUNCTION IS FOR TO GET THE INFORMATION OF THE MESSAGE NEWLY UNARCHIVED 
     3557             readyToFetch = function(){ 
     3558                 $.ajax({ 
     3559                        url: "controller.php?action=$this.imap_functions.get_info_msg_archiver", 
     3560                        data:  {"idMsgs":expresso_mail_archive.idMsgsToAttach}, 
     3561                        type: 'POST', 
     3562                        async: false, 
     3563                        success: function(data){ 
     3564                            data = connector.unserialize(data); 
     3565                            archiver.push(data); 
     3566                        }, 
     3567                  }); 
     3568 
     3569                // HERE, THE MESSAGES IMAP ARE READY FOR TO SEND... 
     3570                mailData.attachments = mailData.attachments.imap; 
     3571 
     3572                // BUT, I NEED TO PREPARE THE MESSAGE ARCHIVE FOR TO SEND. 
     3573                archiver = $.parseJSON(archiver[0]); 
     3574                if(archiver.length){ 
     3575                    $.each(archiver, function(i, each){ 
     3576                        mailData.attachments.push(JSON.stringify(archiver[i])); 
     3577                    }); 
     3578                } 
     3579 
     3580                // GOOD, NOW THE ATTACHMENTS ARE READY TO SEND! 
     3581                mailData.attachments = JSON.stringify(mailData.attachments); 
     3582            }; 
    35623583        } else { 
     3584            // IF THIS MESSAGE JUST HAVE IMAP MESSAGES 
    35633585            mailData.attachments = JSON.stringify(mailData.attachments.imap); 
     3586            setTimeout(function(){ readyToSend() }, 30); 
    35643587        } 
    35653588    } else { 
     3589        // IF THIS MESSAGE DON'T HAVE ATTACHMENT, CALL READYTOSEND. 
     3590        setTimeout(function(){ readyToSend() }, 30); 
    35663591        mailData.attachments = []; 
    35673592    } 
    35683593 
    3569     delete_msg_archive_by_flag = function(){ 
    3570         $.ajax({ 
    3571             url: "controller.php?action=$this.imap_functions.delete_msg_archive_by_flag", 
    3572             data:  [], 
    3573             type: 'POST', 
    3574             async: false, 
    3575             success: function(data){ 
    3576                 data = connector.unserialize(data); 
    3577                 data = $.parseJSON(data).result; 
    3578                 write_msg(data); 
    3579             }, 
    3580          }); 
    3581     } 
     3594    // THIS FUNCTION IS FOR TO SEND THE MESSAGE WITH ATTACHMENT OR NOT. 
     3595    readyToSend = function(){ 
    35823596     
    3583         if(stringEmail != ""){ 
    3584                 $.ajax({ 
    3585                         url: "controller.php?action=$this.imap_functions.send_mail", 
    3586             data:  mailData, 
    3587             type: 'POST', 
    3588             async: false, 
    3589             beforeSend: function(jqXHR, settings){ 
    3590                 write_msg( get_lang( 'Sending the message...' ) ); 
    3591                 $(content).find('button.send').button('option', 'disabled', true); 
    3592             }, 
    3593             success: function(data){ 
    3594                 send_message_return(connector.unserialize(data),ID); 
    3595                 delete_msgs("INBOX/Trash",msgsId, false, false); 
    3596                         }, 
    3597                         error: function(){ 
    3598                                 write_msg(get_lang( 'Error trying to send the message. Retry in a few seconds...' ) ); 
    3599                 $(content).find('button.send').button('option', 'disabled', false); 
    3600                 var interval = setInterval(function(){ 
    3601                                                 send_valided_message(ID,folder,folder_name); 
    3602                                                 clearInterval(interval); 
    3603                                 },15000); 
    3604                                 return; 
    3605                         } 
    3606                 }); 
    3607         }else{ 
    3608                 write_msg(get_lang("message without receiver")); 
    3609                 return; 
    3610         } 
    3611  
     3597        if(stringEmail != ""){ 
     3598                $.ajax({ 
     3599                        url: "controller.php?action=$this.imap_functions.send_mail", 
     3600                data:  mailData, 
     3601                type: 'POST', 
     3602                async: false, 
     3603                beforeSend: function(jqXHR, settings){ 
     3604                    write_msg( get_lang( 'Sending the message...' ) ); 
     3605                    $(content).find('button.send').button('option', 'disabled', true); 
     3606                }, 
     3607                success: function(data){ 
     3608                    send_message_return(connector.unserialize(data),ID); 
     3609                    // HERE, I NEED TO DELETE THE MESSAGES THAT WERE UNARCHIVE FROM ARCHIVE. 
     3610                    delete_msgs("INBOX/Trash",expresso_mail_archive.idMsgsToAttach, false, false); 
     3611                        }, 
     3612                        error: function(){ 
     3613                                write_msg(get_lang( 'Error trying to send the message. Retry in a few seconds...' ) ); 
     3614                    $(content).find('button.send').button('option', 'disabled', false); 
     3615                    var interval = setInterval(function(){ 
     3616                                                send_valided_message(ID,folder,folder_name); 
     3617                                                clearInterval(interval); 
     3618                                },15000); 
     3619                                return; 
     3620                        } 
     3621                }); 
     3622        }else{ 
     3623                write_msg(get_lang("message without receiver")); 
     3624                return; 
     3625        } 
     3626        delete(expresso_mail_archive.idMsgsToAttach); 
     3627    }; 
    36123628 
    36133629} 
     
    36193635        if((campo.replace(/^\s+|\s+$/g,"")) != ""){ 
    36203636                        if(invalidEmail[0] == true){ 
    3621                                 write_msg("Erro de SMTP: Os endereços de destinatário a seguir falharam: "+ invalidEmail[1]); 
     3637                                write_msg("Erro de SMTP: Os endereços de destinatário a seguir falharam: "+ invalidEmail[1]); 
    36223638                                return false; 
    36233639                        }else{ 
    36243640                                if(semicolon.length > 1){ 
    3625                                         var stringError = "Erro de SMTP: Os endereços devem ser separados apenas por vírgula: "; 
     3641                                        var stringError = "Erro de SMTP: Os endereços devem ser separados apenas por vírgula: "; 
    36263642                                        for(var i= 0; i < semicolon.length; i++){ 
    36273643                                                stringError = stringError + semicolon[i]; 
     
    41044120 
    41054121 
    4106 /*PERMITE A IMPRESSÃO DE UMA LISTA DE MENSAGENS E SEU CONTEÚDO*/ 
     4122/*PERMITE A IMPRESSÃO DE UMA LISTA DE MENSAGENS E SEU CONTEÚDO*/ 
    41074123function print_messages_bodies(){ 
    41084124        var messages = {}; 
     
    41264142                        return "<tr><td width=7%><font size='2'><b>"+label+" </b></font></td><td><font size='2'>"+data+"</font></td></tr>"; 
    41274143                } 
    4128                 /*INSERE AS MENSAGENS NO DOCUMENTO DE IMPRESSÃO*/ 
     4144                /*INSERE AS MENSAGENS NO DOCUMENTO DE IMPRESSÃO*/ 
    41294145                $.each(data,function(index,message){ 
    41304146                        var html = "<table><tbody>"; 
     
    43314347function print_all(){ 
    43324348    if(typeof (currentTab) == "string" && currentTab.indexOf("local") != -1){   
    4333         alert("Impossével manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais."); 
     4349        alert("Impossével manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais."); 
    43344350        return true; 
    43354351    } 
     
    43444360                return print_messages_list(); 
    43454361        } 
    4346     var msg = 'Algumas mensagens foram selecionadas para impressão. Deseja imprimir o conteúdo de cada uma delas? Caso contrário, apenas uma lista das mensagens selecionadas será impressa.'; 
     4362    var msg = 'Algumas mensagens foram selecionadas para impressão. Deseja imprimir o conteúdo de cada uma delas? Caso contrário, apenas uma lista das mensagens selecionadas será impressa.'; 
    43474363    $.Zebra_Dialog(msg, { 
    43484364            'type':     'question', 
    4349             'buttons': ['Sim','Não'], 
     4365            'buttons': ['Sim','Não'], 
    43504366            'overlay_opacity': '0.5', 
    43514367                'custom_class': 'custom-zebra-filter', 
     
    44374453                        if(to) { 
    44384454                                if(!printListTO) 
    4439                                         to = 'Os destinatários não estão sendo exibidos para esta impressão'; 
     4455                                        to = 'Os destinatários não estão sendo exibidos para esta impressão'; 
    44404456                                html += "<tr><td width=7%><font size='2'>" + get_lang('To') + ": </font></td><td><font size='2'>"+to+"</font></td></tr>"; 
    44414457                        } 
    44424458                        if (cc) { 
    44434459                                if(!printListCC) 
    4444                                         cc = 'Os destinatários não estão sendo exibidos para esta impressão'; 
     4460                                        cc = 'Os destinatários não estão sendo exibidos para esta impressão'; 
    44454461                                html += "<tr><td width=7%><font size='2'>" + get_lang('Cc') + ": </font></td><td><font size='2'>"+cc+"</font></td></tr>"; 
    44464462                        } 
    44474463                        if (cco) { 
    44484464                                if(!printListCCO) 
    4449                                         cco = 'Os destinatários não estão sendo exibidos para esta impressão'; 
     4465                                        cco = 'Os destinatários não estão sendo exibidos para esta impressão'; 
    44504466                                html += "<tr><td width=7%><font size='2'>" + get_lang('Cco') + ": </font></td><td><font size='2'>"+cco+"</font></td></tr>"; 
    44514467                        } 
     
    47814797                msgs_number = get_selected_messages(); 
    47824798 
    4783         //TODO: REFATORAR O CÓDIGO PARA EVITAR recodificação 
     4799        //TODO: REFATORAR O CÓDIGO PARA EVITAR recodificação 
    47844800        if(currentTab == 0) 
    47854801                msgs_number = get_selected_messages(); 
     
    48354851                msgs_number = get_selected_messages(); 
    48364852 
    4837         //TODO: REFATORAR O CÓDIGO PARA EVITAR recodificação 
     4853        //TODO: REFATORAR O CÓDIGO PARA EVITAR recodificação 
    48384854        if(currentTab == 0) 
    48394855                msgs_number = get_selected_messages(); 
     
    48484864{ 
    48494865    if(typeof (currentTab) == "string" && currentTab.indexOf("local") != -1){   
    4850         alert("Impossível manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais."); 
     4866        alert("Impossível manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais."); 
    48514867        return true; 
    48524868    } 
     
    50295045                        if ( er.test(folder.id) ) 
    50305046                        { 
    5031                                 alert( "Mensagens não podem ser importadas em pastas locais" ); 
     5047                                alert( "Mensagens não podem ser importadas em pastas locais" ); 
    50325048                                //archive_msgs('INBOX/Lixeira/tmpMoveToLocal',wfolders_tree._selected.id,data); 
    50335049                                //cExecute('$this.imap_functions.delete_mailbox',function(){},'del_past=INBOX/Lixeira/tmpMoveToLocal'); 
     
    50485064} 
    50495065 
    5050 //Normalização dos dados evita ter que reemplementar toda as funcionalidades do calendar 
     5066//Normalização dos dados evita ter que reemplementar toda as funcionalidades do calendar 
    50515067function decodeCreateSchedulable(type, ID){ 
    50525068        var startEvent = new Date();   
     
    51645180        if(typeof(Encoder) == "undefined"){ 
    51655181                /* 
    5166                 * Deve-se centralizar as informações do usuário logado afim de não incluir 
     5182                * Deve-se centralizar as informações do usuário logado afim de não incluir 
    51675183                * arquivos de modulos distintos para este fim. 
    51685184                */ 
     
    52175233                wfolders.makeWindow('null','import'); 
    52185234} 
    5219     //Verifica o contexto de importação 
     5235    //Verifica o contexto de importação 
    52205236    function decodeOwner(){ 
    52215237        owner = User.me.id; 
     
    53395355                                    break;  
    53405356                                case 6: 
    5341                                         var acceptedSuggestion = confirm("Deseja atualizar o evento/tarefa de acordo com a sugestão ?"); 
     5357                                        var acceptedSuggestion = confirm("Deseja atualizar o evento/tarefa de acordo com a sugestão ?"); 
    53425358                                        $.ajax({ 
    53435359                                            url: "controller.php?action="+import_url+'&from_ajax=true&id_user='+User.me.id+'&selected=true&cirus_delimiter='+cyrus_delimiter+'&acceptedSuggestion='+acceptedSuggestion+"&from="+document.getElementById('from_values_'+currentTab).value+'&uidAccount='+decodeOwner(), 
     
    53515367                                        case 4: 
    53525368                                        case 9: 
    5353                                             alert('Seu evento/tarefa não possui alterações!'); 
     5369                                            alert('Seu evento/tarefa não possui alterações!'); 
    53545370                                            return; 
    53555371                                            break; 
    53565372                                        case 11: 
    5357                                             alert('Este evento/tarefa já fora importando por algum dos particpantes e já se encontra disponível em sua agenda compartilhada!'); 
     5373                                            alert('Este evento/tarefa já fora importando por algum dos particpantes e já se encontra disponível em sua agenda compartilhada!'); 
    53585374                                            return; 
    53595375                                            break; 
     
    54405456        else { 
    54415457                expresso_local_messages.set_as_sent(rowid_message); 
    5442                 if(document.getElementById('_action')) { //Não posso manter esse elemento, pois o connector irá criar outro com o mesmo id para a próxima mensagem. 
     5458                if(document.getElementById('_action')) { //Não posso manter esse elemento, pois o connector irá criar outro com o mesmo id para a próxima mensagem. 
    54435459                        el =document.getElementById('_action'); 
    54445460                        father = el.parentNode; 
     
    55685584} 
    55695585 
    5570                 /* Funçãoo que chama a tela para o usuário reportar um erro no email. */ 
     5586                /* Funçãoo que chama a tela para o usuário reportar um erro no email. */ 
    55715587                function reports_window(currentTab){  
    55725588                        ID_msg = currentTab.substr(0,currentTab.indexOf("_"));  
Note: See TracChangeset for help on using the changeset viewer.