Ignore:
Timestamp:
09/04/12 11:43:49 (12 years ago)
Author:
airton
Message:

Ticket #3088 - Melhoria no arquivamento local - Funcionalidade de arquivamento de mensagens

Location:
sandbox/2.5.0-expresso1/expressoMail1_2
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • sandbox/2.5.0-expresso1/expressoMail1_2/inc/class.exporteml.inc.php

    r7040 r7157  
    478478        } 
    479479 
     480         
     481         
     482        /* Airton 
     483         * Fazendo o port de um método necessário para o funcionamento do arquivamento local 
     484         */ 
     485        //MAILARCHIVER  
     486        function js_source_var($params) { 
     487                $this-> folder = $params['folder']; 
     488                if(!$this->folder){ 
     489                   $aux = explode(';',$params['msgs_to_export']); 
     490                   $this->folder = $aux[0]; 
     491                   $id_number = $aux[1]; 
     492                } 
     493                else{ 
     494                        $id_number = $params['msgs_to_export']; 
     495                } 
     496                $this->folder = mb_convert_encoding($this->folder, "UTF7-IMAP","ISO_8859-1"); 
     497                $tempDir = ini_get("session.save_path"); 
     498 
     499                $this->connectImap(); 
     500                $header         = $this-> getHeader($id_number); 
     501                $body           = $this-> getBody($id_number); 
     502 
     503                imap_close($this->mbox_stream); 
     504                 
     505                $input = $header . "\r\n\r\n" . $body; 
     506                $input = preg_replace('/\x1d/', '', $input); //remove special char control detected (hex 1D) 
     507                 
     508                return($input); 
     509        }  
     510        /*Airton  
     511         * Fim do método portado 
     512         */  
     513         
     514         
     515         
     516         
     517         
    480518    function export_msg_data($id_msg,$folder) { 
    481519                $this->folder = $folder; 
  • sandbox/2.5.0-expresso1/expressoMail1_2/inc/class.imap_functions.inc.php

    r7070 r7157  
    54365436        } 
    54375437 
     5438         
     5439        /* Airton 
     5440         * Fazendo um port dos métodos necessários para o arquivamento de mensagens 
     5441         */ 
     5442        //MailArchiver -> get offsettogmt as a global javascript variable, invoked at "main.js", init() 
     5443    function get_offset_gmt(){ 
     5444        return($this->functions->CalculateDateOffset()); 
     5445    } 
     5446     
     5447    //MailArchiver -> get message flags only, invoked at archive operation 
     5448    function get_msg_flags($args){        
     5449                $msg_folder = $args['folder']; 
     5450        $msg_n = $args['msg_number']; 
     5451         
     5452        $arr_msg = explode(",", $msg_n); 
     5453        
     5454        for($i=0; $i<count($arr_msg); $i++){ 
     5455                         
     5456            if(!$this->mbox || !is_resource($this->mbox)) 
     5457                $this->mbox = $this->open_mbox($msg_folder); 
     5458         
     5459            if(!is_resource($this->mbox)) 
     5460                return(false); 
     5461                        
     5462            $header = @imap_headerinfo($this->mbox, imap_msgno($this->mbox, $arr_msg[$i]), 80, 255); 
     5463                 
     5464            if (!is_object($header)) 
     5465                return false; 
     5466 
     5467            $taglist[$i]["msgid"] = $msg_n; 
     5468            $taglist[$i]["unseen"] = $header->Unseen; 
     5469            $taglist[$i]["recent"] = $header->Recent; 
     5470            $taglist[$i]["flagged"] = $header->Flagged; 
     5471            $taglist[$i]["draft"] = $header->Draft; 
     5472            $taglist[$i]["answered"] = $header->Answered; 
     5473            $taglist[$i]["deleted"] = $header->Deleted; 
     5474         
     5475            if($header->Answered =='A' && $header->Draft == 'X') 
     5476                $taglist[$i]['forwarded'] = 'F'; 
     5477            else 
     5478                $taglist[$i]['forwarded'] = ' '; 
     5479         
     5480            if($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_important_flag']) { 
     5481                $flag = preg_match('/importance *: *(.*)\r/i',imap_fetchheader($this->mbox, imap_msgno($this->mbox, $arr_msg[$i])),$importance); 
     5482                $taglist[$i]["importance"] = $flag==0?"Normal":$importance[1]; 
     5483            } 
     5484        } 
     5485                return $taglist;         
     5486    }     
     5487        /* Airton 
     5488         * Fim dos métodos  
     5489         */ 
     5490         
    54385491} 
    54395492?> 
  • sandbox/2.5.0-expresso1/expressoMail1_2/js/doiMenuData.js

    r7053 r7157  
    128128                        "move": {"name": get_lang("Move to")+"...", "icon": "move", callback: function(key, opt){ wfolders.makeWindow('', 'move_to'); }}, 
    129129                        "remove": {"name": get_lang("Delete"),      "icon": "delete", callback: function(key, opt){ proxy_mensagens.delete_msgs('null','selected','null'); }}, 
    130                         "export": {"name": get_lang("Export"),      "icon": "export", callback: function(key, opt){ proxy_mensagens.export_all_messages(); }} 
     130                        "export": {"name": get_lang("Export"),      "icon": "export", callback: function(key, opt){ proxy_mensagens.export_all_messages(); }}, 
     131                        /* Airton 
     132                                TO-DO: Esse menu só deve aparecer quando a preferência de arquivamento local estiver ativada 
     133                                Como aqui dentro não dá pra fazer um if, fazer isso no início do método, passar toda essa linha para uma string e depois só colocar a variável aqui embaixo 
     134                        */    
     135                        "archive": {"name": get_lang("Archive"), "icon": "archive", callback: function(key, opt){ proxy_mensagens.archive_message('inbox', 'get_selected_messages'); }} 
    131136                } 
    132137        }); 
  • sandbox/2.5.0-expresso1/expressoMail1_2/js/mail_archiver.js

    r7150 r7157  
    403403MailArchiver.prototype.Archive = function(source_folder,destination_folder,msgs_id){ 
    404404    //window.alert('tentando arquivar a mensagem [' + msgs_id + '], do folder ['+source_folder+'] para a pasta destino ['+destination_folder+']'); 
    405     modal('archive_queue'); 
     405    //modal('archive_queue'); 
    406406     
    407407    try{ 
    408          
    409408        //Sets the folders properties: destination and origin 
    410409        expresso_mail_archive.folder_origin = source_folder; 
    411          
    412410        expresso_mail_archive.CreateMessageList(msgs_id); 
    413411        var tagsHandler = function(data){ 
     
    456454                    try{ 
    457455                        //Archive services needs session id, message source and destination folder 
    458                         ArchiveServices.archive(expresso_mail_archive.getArchiveOperationOK, expresso_mail_archive.getArchiveOperationFailure, expresso_mail_archive.session.id, expresso_mail_archive.folder_destination, data); 
     456                                                ArchiveServices.archive(expresso_mail_archive.getArchiveOperationOK, expresso_mail_archive.getArchiveOperationFailure, expresso_mail_archive.session.id, expresso_mail_archive.folder_destination, data); 
    459457                    } 
    460458                    catch(e){ 
     
    464462                 
    465463                //document.getElementById('main_title').innerHTML = get_lang('Archiving message %1 of %2 on folder %3', expresso_mail_archive.messages_processed, expresso_mail_archive.total_messages, fcaption); 
    466                 document.getElementById('text_archive_queue').innerHTML = get_lang('Archiving message %1 of %2 on folder %3', expresso_mail_archive.messages_processed+1, expresso_mail_archive.total_messages, fcaption); 
     464                //document.getElementById('text_archive_queue').innerHTML = get_lang('Archiving message %1 of %2 on folder %3', expresso_mail_archive.messages_processed+1, expresso_mail_archive.total_messages, fcaption); 
    467465                cExecute("$this.exporteml.js_source_var",arch_handler,"folder="+url_decode(source_folder)+"&msgs_to_export="+expresso_mail_archive.message_list[0]);                 
    468466            } 
    469467            else{ 
    470                 close_lightbox(); 
     468                //close_lightbox(); 
    471469                write_msg(get_lang('Archive operation error: getting online message flags fails. Achievement will not be done'),true); 
    472470                expresso_mail_archive.archivefolder = null; 
     
    493491    catch(e){ 
    494492        //window.alert(get_lang("Archive error: %1", (e.description)?e.description:e)); 
    495         expresso_mail_archive.getFaultInfo(); 
     493                expresso_mail_archive.getFaultInfo(); 
    496494    } 
    497495} 
  • sandbox/2.5.0-expresso1/expressoMail1_2/js/messages_controller.js

    r7150 r7157  
    711711                } 
    712712        } 
     713         
     714 
     715 
     716        /* Airton 
     717        * Método que vai chamar efetivamente o método Archive. 
     718        * TO-DO: Tirar desse arquivo o método e passar pra outro arquivo 
     719        */ 
     720        messages_proxy.prototype.archive_message = function(folder, msgs_number) { 
     721                if(msgs_number == 'get_selected_messages') 
     722                        msgs_number = get_selected_messages(); 
     723 
     724                var array_msgs = msgs_number.split(","); 
     725 
     726                // No momento só estou arquivando uma primeira mensagem. 
     727                // Ver qual é o padrão de parâmetro que o serviço espera para mandar mais de uma mensagem para arquivar 
     728                expresso_mail_archive.Archive("INBOX", "inbox", array_msgs[0]); 
     729                //expresso_mail_archive.Archive("INBOX", "inbox", msgs_number); 
     730        } 
     731 
     732 
     733         
    713734        /* 
    714735        messages_proxy.prototype.proxy_export_all_msg=function(){ 
  • sandbox/2.5.0-expresso1/expressoMail1_2/templates/default/main.css

    r7113 r7157  
    130130.context-menu-item.icon-delete-box{ background-image: url(images/user_delete.png); } 
    131131.context-menu-item.icon-quick-search-contact{ background-image: url(images/zoom.png); } 
     132/* Airton. Adicionando o ícone da opção de arquivar do menu de contexto do expressoMail */ 
     133.context-menu-item.icon-archive{ background-image: url(images/archive.png); } 
    132134 
    133135 
Note: See TracChangeset for help on using the changeset viewer.