Changeset 5264


Ignore:
Timestamp:
12/16/11 17:03:00 (12 years ago)
Author:
acoutinho
Message:

Ticket #2385 - Sem acao ao marcar flags em mensagens resultantes de pesquisa rapida

Location:
trunk/expressoMail1_2
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/inc/class.imap_functions.inc.php

    r5256 r5264  
    378378        */ 
    379379        function import_msgs($params) { 
     380                 
     381                ob_start(); 
     382                print_r($params); 
     383                $output = ob_get_clean(); 
     384                file_put_contents( "/tmp/acoutinho.log",  $output , FILE_APPEND); 
     385 
     386                 
    380387                if(!$this->mbox) 
    381388                        $this->mbox = $this->open_mbox(); 
    382389 
    383                 if( preg_match('/local_/',$params["folder"]) ) 
    384                 { 
     390                if( preg_match('/local_/',$params["folder"]) ){ 
     391                         
    385392                        // PLEASE, BE CAREFULL!!! YOU SHOULD USE EMAIL CONFIGURATION VALUES (EMAILADMIN MODULE) 
    386393                        $tmp_box = mb_convert_encoding('INBOX'.$this->imap_delimiter.$_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder'].$this->imap_delimiter.'tmpMoveToLocal', "UTF7-IMAP", "UTF-8"); 
    387                         if ( ! imap_createmailbox( $this -> mbox,"{".$this -> imap_server."}$tmp_box" ) ) 
     394                        if ( ! imap_createmailbox( $this->mbox,"{".$this -> imap_server."}$tmp_box" ) ) 
    388395                                return $this->functions->getLang( 'Import to Local : fail...' ); 
    389396                        imap_reopen($this->mbox, "{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$tmp_box); 
    390397                        $params["folder"] = $tmp_box; 
    391398                } 
     399                 
    392400                $errors = array(); 
    393401                $invalid_format = false; 
    394402                $filename = $params['FILES'][0]['name']; 
    395                 $params["folder"] = mb_convert_encoding($params["folder"], "UTF7-IMAP","ISO_8859-1"); 
     403                $params["folder"] = mb_convert_encoding($params["folder"], "UTF7-IMAP","ISO-8859-1, UTF-8"); 
    396404                $quota = imap_get_quotaroot($this->mbox, $params["folder"]); 
     405                 
    397406                if((($quota['limit'] - $quota['usage'])*1024) <= $params['FILES'][0]['size']){ 
    398407                        return array( 'error' => $this->functions->getLang("fail in import:"). 
    399408                                                        " ".$this->functions->getLang("Over quota")); 
    400409                } 
     410                 
    401411                if(substr($filename,strlen($filename)-4)==".zip") { 
    402412                        $zip = zip_open($params['FILES'][0]['tmp_name']); 
    403  
    404413                        if ($zip) { 
    405414                                while ($zip_entry = zip_read($zip)) { 
     
    418427                                zip_close($zip); 
    419428                        } 
    420  
    421                         if ( isset( $tmp_box ) && ! sizeof( $errors ) ) 
    422                         { 
    423  
     429                        if (isset( $tmp_box ) && ! sizeof( $errors )){ 
    424430                                $mc = imap_check($this->mbox); 
    425  
    426431                                $result = imap_fetch_overview( $this -> mbox, "1:{$mc -> Nmsgs}", 0 ); 
    427  
    428432                                $ids = array( ); 
    429433                                foreach ($result as $overview) 
    430434                                        $ids[ ] = $overview -> uid; 
    431  
    432435                                return implode( ',', $ids ); 
    433436                        } 
    434                         } 
    435                 else if(substr($filename,strlen($filename)-4)==".eml") { 
     437                 
     438                }else if(substr($filename,strlen($filename)-4)==".eml") { 
    436439                        $email = implode("",file($params['FILES'][0]['tmp_name'])); 
    437                         $status = @imap_append($this->mbox, 
    438                                                                 "{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$params["folder"], 
    439                                                                         $email 
    440                                                                         ); 
    441                         if(!$status) { 
    442                                 //TODO: remover zip_entry pois ele é tratado apenas ao importar mensagens zipadas 
    443                                 array_push($errors,zip_entry_name($zip_entry)); 
    444                                 zip_entry_close($zip_entry); 
    445                         } 
     440                        $status = imap_append($this->mbox,"{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$params["folder"],$email); 
     441                         
     442                         
     443                        ob_start(); 
     444                        var_dump($status); 
     445                        print($email);                   
     446                        $output = ob_get_clean(); 
     447                        file_put_contents( "/tmp/acoutinho.log",  $output , FILE_APPEND); 
     448                         
     449                        if(!$status) 
     450                                return "Deu Pau :("; 
    446451                         
    447452                        if ( isset( $tmp_box ) && ! sizeof( $errors ) ) { 
     
    457462                        } 
    458463                } 
    459                 else 
    460                 { 
     464                else{ 
    461465                        if ( isset( $tmp_box ) ) 
    462466                                imap_deletemailbox( $this->mbox,"{".$this -> imap_server."}$tmp_box" ); 
     
    38303834        } 
    38313835 
     3836         
     3837        function set_messages_flag_from_search($params){                 
     3838                $error = False; 
     3839                $fileNames = ""; 
     3840                 
     3841                $sel_msgs = explode(",", $params['msg_to_flag']); 
     3842                @reset($sel_msgs); 
     3843                $sorted_msgs = array(); 
     3844                foreach($sel_msgs as $idx => $sel_msg) { 
     3845                        $sel_msg = explode(";", $sel_msg); 
     3846                        if(array_key_exists($sel_msg[0], $sorted_msgs)){ 
     3847                                $sorted_msgs[$sel_msg[0]] .= ",".$sel_msg[1]; 
     3848                        } 
     3849                        else { 
     3850                                $sorted_msgs[$sel_msg[0]] = $sel_msg[1]; 
     3851                        } 
     3852                } 
     3853                unset($sorted_msgs['']);                         
     3854                $array_names_keys = array_keys($sorted_msgs);    
     3855                // Verifica se as n mensagens selecionadas 
     3856                // se encontram em um mesmo folder 
     3857                if (count($sorted_msgs)==1){ 
     3858                        $param['folder'] = $array_names_keys[0]; 
     3859                        $param['msgs_to_set'] = $sorted_msgs[$array_names_keys[0]]; 
     3860                        $param['flag'] = $params['flag']; 
     3861                        $returns[0] = $this->set_messages_flag($param); 
     3862                        return $returns; 
     3863                }else{ 
     3864                        for($i = 0; $i < count($array_names_keys); $i++){  
     3865                                $param['folder'] = $array_names_keys[$i]; 
     3866                                $param['msgs_to_set'] = $sorted_msgs[$array_names_keys[$i]]; 
     3867                                $param['flag'] = $params['flag']; 
     3868                                $returns[$i] = $this->set_messages_flag($param); 
     3869                } 
     3870        } 
     3871        return $returns; 
     3872} 
    38323873        function set_messages_flag($params) 
    3833         {          
    3834                 $folder = $params['folder']; 
     3874        {                
     3875                $folder = mb_convert_encoding($params['folder'], "UTF7-IMAP","UTF-8, ISO-8859-1, UTF7-IMAP"); 
    38353876                $msgs_to_set = $params['msgs_to_set']; 
    38363877                $flag = $params['flag']; 
     
    38403881                $return["msgs_not_to_set"] = ""; 
    38413882                         
    3842                 if(!$this->mbox && !is_resource($this->mbox)) 
    3843                         $this->mbox = $this->open_mbox($folder); 
     3883                $this->mbox = $this->open_mbox($folder); 
    38443884                         
    38453885                if ($flag == "unseen"){ 
  • trunk/expressoMail1_2/js/common_functions.js

    r5209 r5264  
    140140} 
    141141 
    142 function set_msg_as_unread(msg_number){ 
     142function set_msg_as_unread(msg_number, isSearch){ 
    143143        tr_message = Element(msg_number); 
    144144        if ((exist_className(tr_message, 'tr_msg_read') || exist_className(tr_message, 'tr_msg_read2')) && (!exist_className(tr_message, 'tr_msg_unread'))) 
     
    146146        remove_className(tr_message, 'selected_msg'); 
    147147        add_className(tr_message, 'tr_msg_unread'); 
    148         Element("td_message_unseen_"+msg_number).innerHTML = "<img src ='templates/"+template+"/images/unseen.gif' title='"+get_lang('Unseen')+"'>"; 
    149 } 
    150  
    151 function set_msg_as_flagged(msg_number){ 
     148        if(!isSearch) 
     149                Element("td_message_unseen_"+msg_number).innerHTML = "<img src ='templates/"+template+"/images/unseen.gif' title='"+get_lang('Unseen')+"'>"; 
     150} 
     151 
     152function set_msg_as_flagged(msg_number, isSearch){ 
    152153        var msg = Element(msg_number); 
    153154        remove_className(msg, 'selected_msg'); 
    154155        add_className(msg, 'flagged_msg'); 
    155         Element("td_message_important_"+msg_number).innerHTML = "<img src ='templates/"+template+"/images/important.gif' title='"+get_lang('Important')+"'>"; 
    156 } 
    157  
    158 function set_msg_as_unflagged(msg_number){ 
     156        if(isSearch) 
     157                Element("td_message_important_"+msg_number.substr(0,msg_number.indexOf('_'))).innerHTML = "<img src ='templates/"+template+"/images/important.gif' title='"+get_lang('Important')+"'>"; 
     158        else 
     159                Element("td_message_important_"+msg_number).innerHTML = "<img src ='templates/"+template+"/images/important.gif' title='"+get_lang('Important')+"'>"; 
     160} 
     161 
     162function set_msg_as_unflagged(msg_number, isSearch){ 
    159163        var msg = Element(msg_number); 
    160164        remove_className(msg, 'selected_msg'); 
    161165        remove_className(msg, 'flagged_msg'); 
    162         Element("td_message_important_"+msg_number).innerHTML = "&nbsp;&nbsp;&nbsp;"; 
     166        if(isSearch) 
     167                Element("td_message_important_"+msg_number.substr(0,msg_number.indexOf('_'))).innerHTML = "&nbsp;&nbsp;&nbsp;"; 
     168        else 
     169                Element("td_message_important_"+msg_number).innerHTML = "&nbsp;&nbsp;&nbsp;"; 
    163170} 
    164171 
  • trunk/expressoMail1_2/js/local_messages.js

    r5215 r5264  
    10481048         
    10491049         
    1050 local_messages.prototype.set_messages_flag = function(msgs_number, flag) { 
     1050local_messages.prototype.set_messages_flag = function(msgs_number, flag, isSearch){ 
     1051        if(isSearch){ 
     1052                var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
     1053        }else 
     1054                isSearch = false; 
    10511055    this.init_local_messages(); 
    10521056        var no_errors = true; 
     
    10561060                var msgs_to_set = get_selected_messages(); 
    10571061                msgs_to_set= msgs_to_set.split(","); 
    1058     } 
    1059     else { //Just one message 
     1062    }else if(isSearch){ 
     1063                msgs_to_set = msgs_number.split(','); 
     1064        }else { //Just one message 
    10601065            one_message = true; 
    10611066                msgs_to_set = new Array(); 
     
    10771082        switch(flag) { 
    10781083            case "unseen": 
    1079                         set_msg_as_unread(msgs_to_set[i]); 
     1084                        if(!isSearch) 
     1085                                set_msg_as_unread(msgs_to_set[i]); 
     1086                        else 
     1087                                set_msg_as_unread(msgs_to_set[i]+'_s'+id_border, true); 
    10801088                        header["Unseen"] = "U"; 
    10811089                        mail["Unseen"] = "U"; 
     
    10841092                        break; 
    10851093            case "flagged": 
    1086                         set_msg_as_flagged(msgs_to_set[i]); 
     1094                        if(!isSearch) 
     1095                                set_msg_as_flagged(msgs_to_set[i]); 
     1096                        else 
     1097                                set_msg_as_flagged(msgs_to_set[i]+'_s'+id_border, true); 
    10871098                        header["Flagged"] = "F"; 
    10881099                        mail["Flagged"] = "F"; 
     
    10941105                                no_errors = false; 
    10951106                        else { 
    1096                             set_msg_as_unflagged(msgs_to_set[i]); 
     1107                                if(!isSearch) 
     1108                                        set_msg_as_unflagged(msgs_to_set[i]); 
     1109                                else 
     1110                                        set_msg_as_unflagged(msgs_to_set[i]+'_s'+id_border, true); 
    10971111                            header["Flagged"] = "N"; 
    10981112                                mail["Flagged"] = "N"; 
     
    11051119                        mail["Unseen"] = "N"; 
    11061120                        mail["header"]["Unseen"] = "N"; 
    1107                         set_msg_as_read(msgs_to_set[i],true); 
     1121                        if(!isSearch) 
     1122                                set_msg_as_read(msgs_to_set[i],true); 
     1123                        else 
     1124                                set_msg_as_read(msgs_to_set[i]+'_s'+id_border, true); 
    11081125                        unseen = 0; 
    11091126                        break; 
  • trunk/expressoMail1_2/js/main.js

    r5257 r5264  
    24862486} 
    24872487 
     2488function set_messages_flag_search_local(flag){ 
     2489        var msgs_flag = this.get_selected_messages_search(); 
     2490        if(local_messages.prototype.set_messages_flag(msgs_flag, flag, true)){ 
     2491                var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
     2492                var msgs = msgs_flag.split(','); 
     2493                for(var i = 0; i < msgs.length; i++){ 
     2494                        Element("search_local_msg"+id_border+"_check_box_message_"+msgs[i]).checked = false; 
     2495                } 
     2496                draw_tree_folders(); 
     2497                Element('chk_box_select_all_messages_search_local').checked = false; 
     2498                refresh(); 
     2499                write_msg(get_lang('The messages were marked with success!'));           
     2500        }else{ 
     2501                write_msg(get_lang('Error marking messages.')); 
     2502        } 
     2503} 
     2504 
     2505function set_messages_flag_search(flag){ 
     2506         
     2507        var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
     2508        var msgs_flag = this.get_selected_messages_search(); 
     2509        if (!msgs_flag){ 
     2510                write_msg(get_lang('No selected message.')); 
     2511                return; 
     2512        } 
     2513        var selected_param = ""; 
     2514        msgs_to_flag = msgs_flag.split(","); 
     2515        search = true; 
     2516        for (i = 0; i < msgs_to_flag.length; i++){ 
     2517                var tr = Element(msgs_to_flag[i]+'_s'+id_border); 
     2518                var msg_to_flag = (tr.getAttribute('name') == null?get_current_folder():tr.getAttribute('name')); 
     2519                selected_param += ','+msg_to_flag+';'+tr.id.replace(/_[a-zA-Z0-9]+/,""); 
     2520        } 
     2521         
     2522        var handler_set_messages_flag = function(data){ 
     2523                var errors = false; 
     2524                var notErrors = false; 
     2525                for (var i = 0; i < data.length; i++){ 
     2526                        var notArray = true; 
     2527                        if(data[i].msgs_to_set != ''){ 
     2528                                var msgs = []; 
     2529                                if(data[i].msgs_to_set.indexOf(',') > 0){ 
     2530                                        msgs = data[i].msgs_to_set.split(',') 
     2531                                        notArray = false; 
     2532                                }else 
     2533                                        msgs[0] = data[i].msgs_to_set; 
     2534                                         
     2535                                for (var j = 0; j < msgs.length; j++){ 
     2536                                        switch(data[i].flag){ 
     2537                                                case "unseen": 
     2538                                                        set_msg_as_unread(msgs[j]+'_s'+id_border, true); 
     2539                                                        Element("search_"+id_border+"_check_box_message_"+msgs[j]).checked = false; 
     2540                                                        break; 
     2541                                                case "seen": 
     2542                                                        set_msg_as_read(msgs[j]+'_s'+id_border, true); 
     2543                                                        Element("search_"+id_border+"_check_box_message_"+msgs[j]).checked = false; 
     2544                                                        break; 
     2545                                                case "flagged": 
     2546                                                        set_msg_as_flagged(msgs[j]+'_s'+id_border, true); 
     2547                                                        document.getElementById("search_"+id_border+"_check_box_message_"+msgs[j]).checked = false; 
     2548                                                        break; 
     2549                                                case "unflagged": 
     2550                                                        set_msg_as_unflagged(msgs[j]+'_s'+id_border, true); 
     2551                                                        Element("search_"+id_border+"_check_box_message_"+msgs[j]).checked = false; 
     2552                                                        break; 
     2553                                        } 
     2554                                        notErrors = true; 
     2555                                } 
     2556                        }else{ 
     2557                                errors = true; 
     2558                        } 
     2559                } 
     2560 
     2561                 
     2562                draw_tree_folders(); 
     2563                Element('chk_box_select_all_messages_search').checked = false; 
     2564                refresh(); 
     2565                 
     2566                if(errors && notErrors) 
     2567                        write_msg(get_lang('Some messages were not marked with success!')); 
     2568                else if(notErrors) 
     2569                        write_msg(get_lang('The messages were marked with success!')); 
     2570                else 
     2571                        write_msg(get_lang('Error marking messages.')); 
     2572        } 
     2573        cExecute ("$this.imap_functions.set_messages_flag_from_search&msg_to_flag="+selected_param+"&flag="+flag, handler_set_messages_flag); 
     2574} 
    24882575 
    24892576// Get checked messages 
    2490 function set_messages_flag(flag, msgs_to_set){ 
     2577function set_messages_flag(flag, msgs_to_set){   
     2578        if(currentTab != 0 && currentTab.indexOf("search_local")  >= 0){ 
     2579                return set_messages_flag_search_local(flag); 
     2580        } 
     2581        if (currentTab != 0 && currentTab.indexOf("search_")  >= 0){ 
     2582                return set_messages_flag_search(flag); 
     2583        } 
     2584         
    24912585        var handler_set_messages_flag = function (data){ 
    24922586                if(!verify_session(data)) 
  • trunk/expressoMail1_2/js/search.js

    r5235 r5264  
    781781                td_element0 = createTDElement(1,0); 
    782782                chk_box_element = document.createElement("INPUT"); 
    783                 chk_box_element.id  = "chk_box_select_all_messages"; 
     783                if(border_id.indexOf('local') > 0) 
     784                        chk_box_element.id  = "chk_box_select_all_messages_search_local"; 
     785                else 
     786                        chk_box_element.id  = "chk_box_select_all_messages_search"; 
    784787                chk_box_element.setAttribute("type", "checkbox"); 
    785788                chk_box_element.className = "checkbox"; 
  • trunk/expressoMail1_2/setup/phpgw_pt-br.lang

    r5261 r5264  
    736736Unable to remove the message (s) of shared folders which you do not have permission.    expressoMail1_2 pt-br   Não foi possível remover as mensagens da(s) pastas compartilhadas as quais você não possui permissão. 
    737737Error processing some messages. expressoMail1_2 pt-br   Erro ao processar algumas mensagens. 
     738Some messages were not marked with success!     expressoMail1_2 pt-br   Algumas mensagens não foram marcadas com sucesso! 
     739The messages were marked with success!  expressoMail1_2 pt-br   As mensagens foram marcadas com sucesso! 
     740Error marking messages. expressoMail1_2 pt-br   Erro ao marcar as mensagens. 
Note: See TracChangeset for help on using the changeset viewer.