Changeset 3872


Ignore:
Timestamp:
03/16/11 09:55:31 (11 years ago)
Author:
thiagoaos
Message:

Ticket #1629 - Corrigido o desarquivamento de mensagens mantendo a flag de importante.

Location:
branches/2.2/expressoMail1_2
Files:
2 edited

Legend:

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

    r3860 r3872  
    38363836///expressoMail1_2/imap.py para inserir uma msg com o horário correto pois isso não é porssível com a função imap_append do php. 
    38373837 
    3838     function insert_email($source,$folder,$timestamp){ 
     3838    function insert_email($source,$folder,$timestamp,$flagged){ 
    38393839        $username = $_SESSION['phpgw_info']['expressomail']['user']['userid']; 
    38403840        $password = $_SESSION['phpgw_info']['expressomail']['user']['passwd']; 
     
    38463846        { 
    38473847            imap_createmailbox($mbox_stream,imap_utf7_encode("{".$imap_server."}".$folder)); 
    3848        } 
     3848        } 
    38493849        if($timestamp){ 
    38503850            $tempDir = ini_get("session.save_path"); 
     
    38593859        } 
    38603860        $status = imap_status($mbox_stream, "{".$this->imap_server.":".$this->imap_port."}".$folder, SA_UIDNEXT); 
     3861                         
    38613862        $return['msg_no'] = $status->uidnext - 1; 
    3862                 $return['error'] = imap_last_error(); 
     3863                                $return['error'] = imap_last_error(); 
     3864                                 
     3865                                if(!$return['error']) 
     3866                                        if($flagged && $flagged == "F") 
     3867                                                $this->set_messages_flag(array('folder'=>$folder,'msgs_to_set'=>$return['msg_no'],'flag'=>'flagged')); 
     3868 
    38633869        if($mbox_stream) 
    3864                         imap_close($mbox_stream); 
     3870                                        imap_close($mbox_stream); 
    38653871        return $return; 
    3866  
    38673872    } 
    38683873 
     
    39483953        $sources = explode("#@#@#@",$params['source']); 
    39493954        $timestamps = explode("#@#@#@",$params['timestamp']); 
     3955        $flaggeds = explode("#@#@#@",$params['flagged']); 
     3956 
    39503957        foreach($sources as $index=>$src) 
    39513958        { 
    39523959            if($src!="") 
    39533960            { 
    3954                                 $source = $this->treat_base64_from_post($src); 
    3955                                 $insert = $this->insert_email($source,$dest_folder,$timestamps[$index]); 
    3956             } 
    3957                 } 
     3961                                                        $source = $this->treat_base64_from_post($src); 
     3962                                                        $insert = $this->insert_email($source,$dest_folder,$timestamps[$index],$flaggeds[$index]); 
     3963                        } 
     3964                                } 
    39583965         
    39593966        return $insert; 
  • branches/2.2/expressoMail1_2/js/local_messages.js

    r3870 r3872  
    381381        //Codigo que as imagens embutidas em emails (com multipart/related ou multipart/mixed) sejam corretamente mostradas em emails arquivados. Os links do 
    382382        //tipo "./inc/show_embedded_attach.php?msg_folder=[folder]&msg_num=[msg_num]&msg_part=[part]" 
    383         //são substituidos pelos links dos anexos capturados pelo gears. 
     383        //são substituidos pelos links dos anexos capturados pelo gears. 
    384384 
    385385        var thumbs= retorno.thumbs; 
     
    713713        for (var i in mail.thumbs) {  
    714714                /* 
    715                  * Os thumbs contêm aspas simples que impactam na sql.  
     715                 * Os thumbs contêm aspas simples que impactam na sql.  
    716716                 * Aqui eu substituo as aspas simples por duas simples(escape no sqlite), 
    717                  * Caso já venham duas juntas, elas continuam sem serem duplicadas. 
     717                 * Caso já venham duas juntas, elas continuam sem serem duplicadas. 
    718718                 */ 
    719719                mail.thumbs[i] = mail.thumbs[i].replace(/([^'])'([^'])('?)/g,"$1''$2$3$3"); 
     
    907907    var id_folder = rs.field(0); 
    908908    rs.close(); 
    909     this.dbGears.execute("update mail set id_folder="+id_folder+" where rowid in ("+msgs_number.toString()+")"); //usando statement nï¿œo tava funcionando quando tinha mais de um email... 
     909    this.dbGears.execute("update mail set id_folder="+id_folder+" where rowid in ("+msgs_number.toString()+")"); //usando statement não tava funcionando quando tinha mais de um email... 
    910910    this.finalize(); 
    911911} 
     
    11281128 
    11291129    if (!AJAX) { 
    1130         alert('ERRO :(Seu navegador não suporta a aplicação usada neste site'); 
     1130        alert('ERRO :(Seu navegador não suporta a aplicação usada neste site'); 
    11311131        return false; 
    11321132    } 
     
    11491149 
    11501150//Por Bruno Costa(bruno.vieira-costa@serpro.gov.br - Dessarquiva msgs locais pegando o codigo fonte das mesmas e mandando via POST para o servidor 
    1151 //para que elas sejam inseridas no imap pela funᅵᅵo  imap_functions.unarchive_mail. 
     1151//para que elas sejam inseridas no imap pela função  imap_functions.unarchive_mail. 
    11521152local_messages.prototype.unarchive_msgs = function (folder,new_folder,msgs_number){ 
    11531153 
     
    11581158    var handler_unarchive = function(data) 
    11591159    { 
    1160         if(data.error == '') 
    1161             write_msg(get_lang('All messages are successfully unarchived')); 
    1162         else 
    1163             alert(data.error); 
     1160                if(data.error == '') 
     1161                    write_msg(get_lang('All messages are successfully unarchived')); 
     1162                else 
     1163                    alert(data.error); 
    11641164    } 
    11651165 
     
    11701170    if(msgs_number =='selected' || !msgs_number) 
    11711171    { 
    1172         msgs_number = get_selected_messages() 
    1173         if (!msgs_number){ 
    1174             write_msg(get_lang('No selected message.')); 
    1175             return; 
    1176         } 
    1177         var rs = this.dbGears.execute("select mail,timestamp from mail where rowid in ("+msgs_number+")"); 
    1178         var source=""; 
    1179         var timestamp=""; 
    1180         while(rs.isValidRow()) { 
    1181             mail=connector.unserialize(rs.field(0)); 
    1182             mail.msg_source?source_tmp = escape(mail.msg_source):source_tmp = escape(this.get_src(mail.url_export_file)); 
    1183 //          source_tmp=escape(this.get_src(mail.url_export_file)); 
    1184             source+="#@#@#@"+source_tmp; 
    1185             timestamp+="#@#@#@"+rs.field(1); 
    1186             rs.next(); 
    1187         } 
    1188         rs.close(); 
    1189         this.finalize(); 
     1172                msgs_number = get_selected_messages() 
     1173                if (!msgs_number){ 
     1174                    write_msg(get_lang('No selected message.')); 
     1175                    return; 
     1176                } 
     1177                var rs = this.dbGears.execute("select mail,timestamp from mail where rowid in ("+msgs_number+")"); 
     1178                var source=""; 
     1179                var     flagged=""; 
     1180                var timestamp=""; 
     1181         
     1182                while(rs.isValidRow()) { 
     1183                        mail=connector.unserialize(rs.field(0)); 
     1184                        mail.msg_source?source_tmp = escape(mail.msg_source):source_tmp = escape(this.get_src(mail.url_export_file)); 
     1185 
     1186                        flagged+="#@#@#@"+mail["Flagged"]; 
     1187                        source+="#@#@#@"+source_tmp; 
     1188                        timestamp+="#@#@#@"+rs.field(1); 
     1189                        rs.next(); 
     1190                } 
     1191                rs.close(); 
     1192                this.finalize(); 
    11901193    } 
    11911194    else 
    11921195    { 
    1193         var rs = this.dbGears.execute("select mail,timestamp from mail where rowid="+msgs_number); 
    1194         mail=connector.unserialize(rs.field(0)); 
    1195         var source =""; 
    1196 //      source = this.get_src(mail.url_export_file); 
    1197         mail.msg_source?source = mail.msg_source:source = this.get_src(mail.url_export_file); 
    1198         timestamp=rs.field(1); 
    1199         rs.close(); 
    1200         this.finalize(); 
    1201     } 
    1202     params="&folder="+new_folder+"&source="+source+"&timestamp="+timestamp; 
     1196                var rs = this.dbGears.execute("select mail,timestamp from mail where rowid="+msgs_number); 
     1197                mail=connector.unserialize(rs.field(0)); 
     1198                var source =""; 
     1199 
     1200                mail.msg_source?source = mail.msg_source:source = this.get_src(mail.url_export_file); 
     1201                flagged = mail["Flagged"]; 
     1202                timestamp=rs.field(1); 
     1203                rs.close(); 
     1204                this.finalize(); 
     1205    } 
     1206    params="&folder="+new_folder+"&source="+source+"&timestamp="+timestamp+"&flagged="+flagged; 
    12031207    cExecute ("$this.imap_functions.unarchive_mail&", handler_unarchive, params); 
    12041208} 
     
    17331737                var tempNomeArquivo = rs_attach.field(0).split("/"); 
    17341738                var nomeArquivo = tempNomeArquivo[tempNomeArquivo.length-1]; 
    1735                 nomeArquivo = nomeArquivo.substring(0,nomeArquivo.length - 4); //Anexos no gears sï¿œo todos com extensï¿œo .php. tenho que tirar a extensï¿œo para ficar o nome real do arquivo. 
     1739                nomeArquivo = nomeArquivo.substring(0,nomeArquivo.length - 4); //Anexos no gears sᅵo todos com extensᅵo .php. tenho que tirar a extensᅵo para ficar o nome real do arquivo. 
    17361740                is_local_forward = true; 
    17371741                tmp_field = addForwardedFile('queue_' + rs.field(8), nomeArquivo, 'nothing'); 
Note: See TracChangeset for help on using the changeset viewer.