Changeset 3380


Ignore:
Timestamp:
10/20/10 14:37:02 (14 years ago)
Author:
brunocosta
Message:

Ticket #1312 - Restaurada a busca no arquivamento local com códifo da 2.1

Location:
branches/2.2/expressoMail1_2
Files:
6 edited

Legend:

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

    r3369 r3380  
    721721 
    722722                $return = "";  
    723                 if( (!isset($this->prefs['preview_msg_subject']) || ($this->prefs['preview_msg_subject'] != "1")) &&   
    724                         (!isset($this->prefs['preview_msg_tip']    ) || ($this->prefs['preview_msg_tip']     != "1")) )  
     723                if( (!isset($this->preferences['preview_msg_subject']) || ($this->preferences['preview_msg_subject'] != "1")) &&   
     724                        (!isset($this->preferences['preview_msg_tip']    ) || ($this->preferences['preview_msg_tip']     != "1")) )  
    725725                {  
    726726                        $return['body'] = "";  
     
    31913191 
    31923192        function search_msg($params = ''){ 
    3193             $mbox_stream = ""; 
    3194             if(strpos($params['condition'],"#")===false) { //local messages? It shouldn't be necessary, should it? FIXME 
    3195                     $search=false; 
    3196             } 
    3197             else { 
    3198                     $search = explode(",",$params['condition']); 
    3199             } 
    3200             $params['page'] = $params['page']*1; 
    3201  
    3202             if(is_array($search)){ 
    3203                 $search = array_unique($search); // Remove duplicated folders 
    3204                 $search_criteria = ''; 
    3205                 $search_result_number = $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['search_result_number']; 
    3206                 foreach($search as $tmp) 
     3193                $retorno = ""; 
     3194                $mbox_stream = ""; 
     3195                if(strpos($params['condition'],"#")===false) { //local messages 
     3196                        $search=false; 
     3197                } 
     3198                else { 
     3199                        $search = explode(",",$params['condition']); 
     3200                } 
     3201 
     3202                if($search){ 
     3203                        $search_criteria = ''; 
     3204                        $search_result_number = $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['search_result_number']; 
     3205                        foreach($search as $tmp) 
     3206                        { 
     3207                                $tmp1 = explode("##",$tmp); 
     3208                                $sum = 0; 
     3209                                $name_box = $tmp1[0]; 
     3210                                unset($filter); 
     3211                                foreach($tmp1 as $index => $criteria) 
     3212                                { 
     3213                                    if ($index != 0 && strlen($criteria) != 0) 
     3214                                    { 
     3215                                        $filter_array = explode("<=>",html_entity_decode(rawurldecode($criteria))); 
     3216                                        $filter .= " ".$filter_array[0]; 
     3217                                        if (strlen($filter_array[1]) != 0){ 
     3218                                            if (trim($filter_array[0]) != 'BEFORE' && 
     3219                                                trim($filter_array[0]) != 'SINCE' && 
     3220                                                trim($filter_array[0]) != 'ON') 
     3221                                            { 
     3222                                                // Remove accents from criteria, because method remove accents is broken. 
     3223                                                $filter .= '"'.strtr($filter_array[1], 
     3224                                                    "áàâãäéèêëíìîïóòôõöúùûüçÁÀÂÃÄÉÈÊËÍÌÎÏÓÒÔÕÖÚÙÛÜÇ", 
     3225                                                    "aaaaaeeeeiiiiooooouuuucAAAAAEEEEIIIIOOOOOUUUUC").'"'; 
     3226                                            } 
     3227                                            else { 
     3228                                                $filter .= '"'.$this->make_search_date($filter_array[1]).'"'; 
     3229                                            } 
     3230                                        } 
     3231                                    } 
     3232                                } 
     3233                                $name_box = mb_convert_encoding(utf8_decode($name_box), "UTF7-IMAP", "ISO_8859-1" ); 
     3234 
     3235                                //Este bloco tem a finalidade de transformar o login (quando numerico) das pastas compartilhadas em common name 
     3236                                if ($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['uid2cn'] && substr($name_box,0,4) == 'user') 
     3237                                { 
     3238                                        $folder_name = explode($this->imap_delimiter,$name_box); 
     3239                                        $this->ldap = new ldap_functions(); 
     3240                                        if ($cn = $this->ldap->uid2cn($folder_name[1])) 
     3241                                        { 
     3242                                                $folder_name[1] = $cn; 
     3243                                        } 
     3244                                        $folder_name = implode($this->imap_delimiter,$folder_name); 
     3245                                } 
     3246                                else 
     3247                                        $folder_name = mb_convert_encoding(utf8_decode($name_box), "UTF7-IMAP", "ISO_8859-1" ); 
     3248 
     3249                                if(!is_resource($mbox_stream)) 
     3250                                        $mbox_stream = $this->open_mbox($name_box); 
     3251                                else 
     3252                                        imap_reopen($mbox_stream, "{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$name_box); 
     3253 
     3254                                if (preg_match("/^.?\bALL\b/", $filter)){ // Quick Search, note: this ALL isn't the same ALL from imap_search 
     3255 
     3256                                        $all_criterias = array ("TO","SUBJECT","FROM","CC"); 
     3257 
     3258                                        foreach($all_criterias as $criteria_fixed) 
     3259                                        { 
     3260                                                $_filter = $criteria_fixed . substr($filter,4); 
     3261 
     3262                                                $search_criteria = imap_search($mbox_stream, $_filter, SE_UID); 
     3263                                                // Testa aqui 
     3264                                                if($search_criteria) // && count($search_criteria) < $search_result_number) 
     3265                                                { 
     3266                                                        foreach($search_criteria as $new_search){ 
     3267                                                                if ($search_result_number != '65536' && $sum == $search_result_number) 
     3268                                                                { 
     3269                                                                  return $retorno ? $sum . "=sumResults=" . $retorno : "none"; 
     3270                                                                } 
     3271 
     3272                                                                $m_token = trim("##". mb_convert_encoding( $folder_name, "ISO_8859-1", "UTF7-IMAP" ) . "--" . mb_convert_encoding( $name_box, "ISO_8859-1", "UTF7-IMAP" ) . "--" . $this->get_msg($new_search,$name_box,$mbox_stream) . "--".$new_search."##"."\n"); 
     3273                                                                if(!@strstr($retorno,$m_token)) 
     3274                                                                { 
     3275                                                                    $retorno .= $m_token; 
     3276                                                                    $sum++; 
     3277                                                                } 
     3278                                                        } 
     3279                                                } 
     3280                                        } 
     3281                                } 
     3282                                else { 
     3283                                        $search_criteria = imap_search($mbox_stream, $filter, SE_UID); 
     3284                                        if( is_array( $search_criteria) ) 
     3285                                        { 
     3286                                                foreach($search_criteria as $new_search) 
     3287                                                { 
     3288                                                    if ($search_result_number != '65536' && $sum == $search_result_number) 
     3289                                                    { 
     3290                                                        return $retorno ? $sum . "=sumResults=" . $retorno : "none"; 
     3291                                                    } 
     3292                                                    $retorno .= trim("##". mb_convert_encoding( $folder_name, "ISO_8859-1", "UTF7-IMAP" ) . "--" . mb_convert_encoding( $name_box, "ISO_8859-1", "UTF7-IMAP" ) . "--" . $this->get_msg($new_search,$name_box,$mbox_stream) . "--" . $new_search."##"."\n"); 
     3293                                                    $sum++; 
     3294                                                } 
     3295                                        } 
     3296                                } 
     3297 
     3298//                                $acumulated_results += $sum; 
     3299// 
     3300//                                if ($search_result_number != '65536' && $acumulated_results >= $search_result_number) 
     3301//                                { 
     3302//                                    return "many results"; 
     3303//                                } 
     3304                        } 
     3305                } 
     3306                if($mbox_stream) 
     3307                        imap_close($mbox_stream); 
     3308 
     3309                if ($retorno){ 
     3310                    return $retorno; 
     3311                } 
     3312                else 
    32073313                { 
    3208                     $tmp1 = explode("##",$tmp); 
    3209                     $sum = 0; 
    3210                     $name_box = $tmp1[0]; 
    3211                     unset($filter); 
    3212                     foreach($tmp1 as $index => $criteria) 
    3213                     { 
    3214                         if ($index != 0 && strlen($criteria) != 0) 
    3215                         { 
    3216                             $filter_array = explode("<=>",rawurldecode($criteria)); 
    3217                             $filter .= " ".$filter_array[0]; 
    3218                             if (strlen($filter_array[1]) != 0){ 
    3219                                 if (trim($filter_array[0]) != 'BEFORE' && 
    3220                                     trim($filter_array[0]) != 'SINCE' && 
    3221                                     trim($filter_array[0]) != 'ON') 
    3222                                 { 
    3223                                     $filter .= '"'.$filter_array[1].'"'; 
    3224                                 } 
    3225                                 else 
    3226                                     { 
    3227                                         $filter .= '"'.$this->make_search_date($filter_array[1]).'"'; 
    3228                                     } 
    3229                             } 
    3230                         } 
    3231                     } 
    3232                     $name_box = mb_convert_encoding(utf8_decode($name_box), "UTF7-IMAP", "ISO_8859-1" ); 
    3233                     $filter = $this->remove_accents($filter); 
    3234                     //Este bloco tem a finalidade de transformar o login (quando numerico) das pastas compartilhadas em common name 
    3235                     if ($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['uid2cn'] && substr($name_box,0,4) == 'user') 
    3236                     { 
    3237                         $folder_name = explode($this->imap_delimiter,$name_box); 
    3238                         $this->ldap = new ldap_functions(); 
    3239                         if ($cn = $this->ldap->uid2cn($folder_name[1])) 
    3240                         { 
    3241                             $folder_name[1] = $cn; 
    3242                         } 
    3243                         $folder_name = implode($this->imap_delimiter,$folder_name); 
    3244                     } 
    3245                     else 
    3246                     { 
    3247                         $folder_name = mb_convert_encoding(utf8_decode($name_box), "UTF7-IMAP", "ISO_8859-1" ); 
    3248                     } 
    3249  
    3250                     if(!is_resource($mbox_stream)) 
    3251                     { 
    3252                         $mbox_stream = $this->open_mbox($name_box); 
    3253                     } 
    3254                     else 
    3255                         { 
    3256                             imap_reopen($mbox_stream, "{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$name_box); 
    3257                         } 
    3258  
    3259                     if (preg_match("/^.?\bALL\b/", $filter)) 
    3260                     { // Quick Search, note: this ALL isn't the same ALL from imap_search 
    3261  
    3262                         $all_criterias = array ("TO","SUBJECT","FROM","CC"); 
    3263                         foreach($all_criterias as $criteria_fixed) 
    3264                         { 
    3265                             $_filter = $criteria_fixed . substr($filter,4); 
    3266  
    3267                             $search_criteria = imap_search($mbox_stream, $_filter, SE_UID); 
    3268  
    3269                             if(is_array($search_criteria)) 
    3270                             { 
    3271                                 foreach($search_criteria as $new_search) 
    3272                                 { 
    3273                                     $elem = $this->get_msg_detail($new_search,$name_box,$mbox_stream);  
    3274                                     $elem['boxname'] = mb_convert_encoding( $name_box, "ISO_8859-1", "UTF7-IMAP" );  
    3275                                     $elem['uid'] = $new_search;  
    3276                                     $retorno[] = $elem;  
    3277                                 } 
    3278                             } 
    3279                         } 
    3280                     } 
    3281                     else { 
    3282                         $search_criteria = imap_search($mbox_stream, $filter, SE_UID); 
    3283                         if( is_array( $search_criteria) ) 
    3284                         { 
    3285                             foreach($search_criteria as $new_search) 
    3286                             { 
    3287                                     $elem = $this->get_msg_detail($new_search,$name_box,$mbox_stream);  
    3288                                     $elem['boxname'] = mb_convert_encoding( $name_box, "ISO_8859-1", "UTF7-IMAP" );  
    3289                                     $elem['uid'] = $new_search;  
    3290                                     $retorno[] = $elem; 
    3291                             } 
    3292                         } 
    3293                     } 
     3314                    return 'none'; 
    32943315                } 
    3295             } 
    3296             if($mbox_stream) 
    3297             { 
    3298                 imap_close($mbox_stream); 
    3299             } 
    3300             $num_msgs = count($retorno); 
    3301  
    3302             /* Comparison functions, descendent is ascendent with parms inverted */ 
    3303             function SORTDATE($a, $b) { return ($a['udate'] < $b['udate']); } 
    3304             function SORTDATE_REVERSE($b, $a) { return SORTDATE($a,$b); } 
    3305  
    3306             function SORTWHO($a, $b) { return (strtoupper($a['from']) > strtoupper($b['from'])); } 
    3307             function SORTWHO_REVERSE($b, $a) { return SORTWHO($a,$b); } 
    3308  
    3309             function SORTSUBJECT($a, $b) { return (strtoupper($a['subject']) > strtoupper($b['subject'])); } 
    3310             function SORTSUBJECT_REVERSE($b, $a) { return SORTSUBJECT($a,$b); } 
    3311  
    3312             function SORTBOX($a, $b) { return ($a['boxname'] > $b['boxname']); } 
    3313             function SORTBOX_REVERSE($b, $a) { return SORTBOX($a,$b); } 
    3314  
    3315             function SORTSIZE($a, $b) { return ($a['size'] > $b['size']); } 
    3316             function SORTSIZE_REVERSE($b, $a) { return SORTSIZE($a,$b); } 
    3317  
    3318             usort($retorno, $params['sort_type']); 
    3319             $pageret = array_slice($retorno, $params['page'] * $this->prefs['max_email_per_page'], $this->prefs['max_email_per_page']); 
    3320             $arrayRetorno['num_msgs'] =  $num_msgs; 
    3321             $arrayRetorno['data'] =  $pageret; 
    3322  
    3323             if ($pageret) 
    3324             { 
    3325                 return $arrayRetorno; 
    3326             } 
    3327             else 
    3328             { 
    3329                 return 'none'; 
    3330             } 
    3331         } 
    3332  
    3333         function get_msg_detail($uid_msg,$name_box, $mbox_stream ) 
     3316                //return $retorno ? $retorno : "none"; 
     3317        } 
     3318 
     3319        function get_msg($uid_msg,$name_box, $mbox_stream ) 
    33343320        { 
    33353321                $header = $this->get_header($uid_msg); 
    3336                 require_once("class.imap_attachment.inc.php"); 
     3322                include_once("class.imap_attachment.inc.php"); 
    33373323                $imap_attachment = new imap_attachment(); 
    33383324                $attachments =  $imap_attachment->get_attachment_headerinfo($mbox_stream, $uid_msg); 
     
    33513337                if($header->from[0]->personal != "") 
    33523338                        $from = $header->from[0]->personal; 
    3353                 $ret_msg['from'] = $this->decode_string($from);  
    3354                 $ret_msg['subject'] = $subject;  
    3355                 $ret_msg['udate'] = $header ->udate;  
    3356                 $ret_msg['size'] = $header->Size;  
    3357                 $ret_msg['flag'] = $flag;  
     3339                $ret_msg = $this->decode_string($from) . "--" . $subject . "--". gmdate("d/m/Y",$header ->udate)."--". $this->size_msg($header->Size) ."--". $flag; 
    33583340                return $ret_msg; 
    33593341        } 
     3342 
     3343 
     3344        function size_msg($size){ 
     3345                $var = floor($size/1024); 
     3346                if($var >= 1){ 
     3347                        return $var." kb"; 
     3348                }else{ 
     3349                        return $size ." b"; 
     3350                } 
     3351        } 
     3352         
    33603353        function ob_array($the_object) 
    33613354        { 
  • branches/2.2/expressoMail1_2/js/common_functions.js

    r3369 r3380  
    187187 
    188188function show_hide_span_paging(ID){ 
    189         if (Element("span_paging"+ID)) 
    190                 Element("span_paging"+ID).style.display = ''; 
    191         if (Element("span_paging"+currentTab)) 
    192                 Element("span_paging"+currentTab).style.display = 'none'; 
     189        if ((ID != "0") && Element("span_paging"))  
     190                Element("span_paging").style.display = 'none'; 
     191        else 
     192                if (Element("span_paging")) 
     193                        Element("span_paging").style.display = ''; 
    193194} 
    194195 
  • branches/2.2/expressoMail1_2/js/draw_api.js

    r3369 r3380  
    540540 
    541541        if(total_pages == 1) { 
    542                 if(span_paging = document.getElementById("span_paging0")) { 
     542                if(span_paging = document.getElementById("span_paging")) { 
    543543                        span_paging.parentNode.removeChild(span_paging); 
    544544                } 
    545545                return; 
    546546        } 
    547         span_paging = document.getElementById("span_paging0"); 
     547        span_paging = document.getElementById("span_paging"); 
    548548        if(!span_paging){ 
    549549                span_paging = document.createElement("DIV"); 
    550                 span_paging.id = "span_paging0"; 
     550                span_paging.id = "span_paging"; 
    551551                span_paging.className = "boxHeaderText"; 
    552552                span_paging.align="right"; 
  • branches/2.2/expressoMail1_2/js/local_messages.js

    r3373 r3380  
    927927        if (cond == "SINCE" || cond == "BEFORE" | cond == "ON"){ 
    928928 
    929             tmpDate = url_decode(friendly_filters[z][1]).split('/'); 
     929            tmpDate = friendly_filters[z][1].replace(/\%2F/g,"/").split('/'); 
    930930 
    931931            // Date = url_decode(friendly_filters[z][1]); 
     
    946946    while(rs.isValidRow()) { 
    947947        var header = connector.unserialize(rs.field(0)); 
    948         retorno+="##"+"local_"+rs.field(1)+"--"+header["from"]["name"]+"--"+header["subject"]+"--"+header["udate"]+"--"+this.aux_convert_size(rs.field(3))+"--"+header["Unseen"]+header["Recent"]+header["Flagged"]+header["Draft"]+"--"+rs.field(2)+"##"; 
     948        retorno+="##"+"local_"+rs.field(1)+"--"+"local_"+rs.field(1)+"--"+header["from"]["name"]+"--"+header["subject"]+"--"+header["udate"]+"--"+this.aux_convert_size(rs.field(3))+"--"+header["Unseen"]+header["Recent"]+header["Flagged"]+header["Draft"]+"--"+rs.field(2)+"##"; 
    949949        rs.next(); 
    950950    } 
     
    966966         
    967967local_messages.prototype.aux_convert_filter_field = function(filter,date) { 
     968 
     969var dateObj; 
    968970    if (typeof date != 'undefined'){ 
    969         var dateObj=new Date(); 
    970         dateObj.setFullYear(date[2],date[1]-1,date[0]); 
     971        dateObj=new Date(date[2],date[1]-1,date[0]); 
    971972    } 
    972973 
  • branches/2.2/expressoMail1_2/js/search.js

    r3223 r3380  
    11/**************************************************************************\ 
    2  Início  
     2 Início 
    33\**************************************************************************/ 
    44        function searchE() 
    55        { 
    66                this.searchW   = new Array; 
    7                 this.condition = ""; 
    8                 this.sort_type = ""; 
    9                 this.page = 0; 
    107                this.name_box_search = ""; 
    118                this.all_boxes = new Array; 
     
    1512                this.selectFields = new Array("flagged", "seen", "answered", "recent"); 
    1613        } 
    17          
     14 
    1815        //Monta os forms dentro da janela; 
    1916        searchE.prototype.showForms = function(value){ 
     
    2522                        form_search.style.left = '0px'; 
    2623                        form_search.id = "window_search"; 
    27                         document.body.appendChild(form_search);                  
    28                 } 
    29                  
     24                        document.body.appendChild(form_search); 
     25                } 
     26 
    3027                // Pesquisa 
    3128                if(!Element("div_form_search")){ 
     
    3532                        div_form_search.style.left = "10px"; 
    3633                        div_form_search.style.top  = "10px"; 
     34                        div_form_search.style.borderStyle = "outset"; 
     35                        div_form_search.style.borderColor = "black"; 
     36                        div_form_search.style.borderWidth = "1px"; 
    3737                        div_form_search.style.width = "784px"; 
    3838                        div_form_search.style.height = "418px"; 
     
    6666                        }); 
    6767 
    68                 }        
    69                  
     68                } 
     69 
    7070                if(!Element("div_button_search")){ 
    7171                        var div_button_search    = document.createElement("DIV"); 
     
    8585                                form_search.appendChild(div_button_search); 
    8686                } 
    87                  
     87 
    8888                if(!Element("table_layer")){ 
    8989                        var table_layer    = ""; 
    9090                } 
    91                  
     91 
    9292                if(value == "") 
    9393                        EsearchE.showWindow(Element("window_search")); 
    94          
     94 
    9595                // Cria as caixas postais; 
    9696                EsearchE.mount_folders(); 
     
    103103 
    104104        } 
    105          
     105 
     106        searchE.validate_date_field = function(date) 
     107        { 
     108 
     109        } 
     110 
    106111        //Form 
    107112        searchE.prototype.mount_form = function(value){ 
     
    109114                form_sch.id  = "form_sch"; 
    110115 
    111                 form_sch.innerHTML =  '<fieldset style="width:400px; text-align:right; padding: 5px; position:absolute;">' 
     116                form_sch.innerHTML =  '<fieldset style="width:400px; text-align:right; padding: 5px; position:absolute;">' 
    112117                                                        + '     <legend>'+get_lang('Inform your search in the text fields')+'</legend>' 
    113118                                                        + '     <label>'+get_lang("From")+':</label>' 
     
    124129                                                        + '     <br style="margin-bottom:15px"/>' 
    125130                                                        + '     <label>'+get_lang('Message body')+':</label>' 
    126                                                         + '     <input style="margin-left: 6px;" type="text" id="txt_body" size="39">' 
     131                                                        + '     <input style="margin-left: 6px;" type="text" id="txt_body" size="39">' 
    127132 
    128133                                                        + '     <br style="margin-bottom:30px"/>' 
     
    165170                                                        + '     </select>' 
    166171 
    167                                                         + '     <br style="margin-bottom:60px"/>' 
     172                                                        + '     <br style="margin-bottom:60px"/>' 
    168173                                                        + '</fieldset>' 
    169174                                                        + '<fieldset style="width:350px; padding: 5px; position:absolute; margin-left: 414px">' 
     
    175180                                                        + '             <input type="button" id="excluir" name="excluir" value="<<" onclick="EsearchE.del_mailboxes()">' 
    176181                                                        + '     </div>' 
    177                                                         + ' <div style="float:left;">'   
     182                                                        + ' <div style="float:left;">' 
    178183                                                        + '      <select multiple id="sel_search_nm_box1" name="sel_search_nm_box1" style="width:140px;height:150px;"></select>' 
    179184                                                        + ' </div>' 
     
    182187                                                        + '     <b>'+get_lang('In all the folders')+'</b>' 
    183188                                                        + '</fieldset>'; 
    184                  
     189 
    185190                return form_sch; 
    186191        } 
     
    203208                                var dest_div = Element("folders"); 
    204209                                dest_div.appendChild(div_folders); 
    205                 }                
     210                } 
    206211                ttree.make_tree(folders,"div_folders_search","_folders_tree_search","","","",""); 
    207212        } 
    208         function openpage(data){ 
    209                 delete_border(currentTab,false); 
    210                 EsearchE.mount_result(data); 
    211         } 
    212  
    213         searchE.prototype.show_paging = function(size){ 
    214                 if (size > preferences.max_email_per_page) 
     213 
     214        //This func returns the most recent date 
     215        function date_comp(a,b) 
     216        { 
     217                var data1 = a.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g); 
     218                data1 = data1[0].substr(0, data1[0].indexOf('--')) 
     219                with ( data1 ) 
     220                        data1 = Date.UTC(substr(6), substr(3, 2), substr(0, 2)); 
     221                var data2 = b.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g); 
     222                data2 = data2[0].substr(0, data2[0].indexOf('--')) 
     223                with ( data2 ) 
     224                        data2 = Date.UTC(substr(6), substr(3, 2), substr(0, 2)); 
     225                return data2 - data1; 
     226        } 
     227        function date_comp_reverse(a,b) 
     228        { 
     229                return date_comp(b,a); 
     230        } 
     231 
     232        function box_comp(a,b) 
     233        { 
     234        var compare = []; 
     235        compare[0] = a.substr(0, a.indexOf('--')); 
     236        compare[0] = compare[0].toLowerCase(); 
     237        var temp=compare[0]; 
     238        compare[1] = b.substr(0, b.indexOf('--')) 
     239        compare[1] = compare[1].toLowerCase(); 
     240        compare.sort(); 
     241        if (temp != compare[0]) 
     242                return +1; 
     243        else 
     244                return -1; 
     245        } 
     246        function box_comp_reverse(a,b) 
     247        { 
     248                return box_comp(b,a); 
     249        } 
     250 
     251        function who_comp(a,b) 
     252        { 
     253        var compare = []; 
     254        compare[0] = a.substr(a.indexOf('--')+2); 
     255        compare[0] = compare[0].toLowerCase(); 
     256        var temp=compare[0]; 
     257        compare[1] = b.substr(b.indexOf('--')+2); 
     258        compare[1] = compare[1].toLowerCase(); 
     259        compare.sort(); 
     260        if (temp != compare[0]) 
     261                return +1; 
     262        else 
     263                return -1; 
     264        } 
     265        function who_comp_reverse(a,b) 
     266        { 
     267                return who_comp(b,a); 
     268        } 
     269 
     270        function subject_comp(a,b) 
     271        { 
     272        var compare = []; 
     273        compare[0] = a.substr(a.indexOf('--')+2); 
     274        compare[0] = compare[0].substr(compare[0].indexOf('--')+2); 
     275        compare[0] = compare[0].toLowerCase(); 
     276        var temp=compare[0]; 
     277        compare[1] = b.substr(b.indexOf('--')+2); 
     278        compare[1] = compare[1].substr(compare[1].indexOf('--')+2); 
     279        compare[1] = compare[1].toLowerCase(); 
     280        compare.sort(); 
     281        if (temp != compare[0]) 
     282                return +1; 
     283        else 
     284                return -1; 
     285        } 
     286        function subject_comp_reverse(a,b) 
     287        { 
     288                return subject_comp(b,a); 
     289        } 
     290 
     291        function size_comp(a,b) 
     292        { 
     293                var data1 = a.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g); 
     294                data1 = data1[0].substr(data1[0].indexOf('--')+2) 
     295                data1 = data1.substr(0,data1.indexOf('--')) 
     296                var size_a = parseInt(data1.substr(0,data1.indexOf(' '))); 
     297                if (data1.match("k")) 
     298                        size_a = size_a * 1024; 
     299                else 
     300                        if (data1.match("m")) 
     301                                size_a = size_a * 1048576; 
     302                var data2 = b.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g); 
     303                data2 = data2[0].substr(data2[0].indexOf('--')+2) 
     304                data2 = data2.substr(0,data2.indexOf('--')) 
     305                var size_b = parseInt(data2.substr(0,data2.indexOf(' '))); 
     306                if (data2.match("k")) 
     307                        size_b = size_b * 1024; 
     308                else 
     309                        if (data2.match("m")) 
     310                                size_b = size_b * 1048576; 
     311                return size_b - size_a; 
     312        } 
     313        function size_comp_reverse(a,b) 
     314        { 
     315                return size_comp(b,a); 
     316        } 
     317 
     318        // Form resultado 
     319        searchE.prototype.mount_result = function(data,sort_type){ 
     320                var nw_array = new Array; 
     321                var var_tmp = data.substr(2, data.length - 4); 
     322                var_tmp  = var_tmp.split("####"); 
     323                var cont = parseInt(0); 
     324                switch (sort_type) 
    215325                { 
    216                         if (Element("span_paging"+currentTab)){ 
    217                                 Element("span_paging"+currentTab).style.display = ''; 
    218                                 Element("span_paging"+currentTab).innerHTML = ""; 
    219                         } 
    220                         else{ 
    221                                 var span_paging = document.createElement('SPAN'); 
    222                                 span_paging.id = "span_paging"+currentTab; 
    223                                 Element("div_menu_c3").appendChild(span_paging); 
    224                         } 
    225                         if(this.page > 1){ 
    226                                 var fLink = document.createElement('A'); 
    227                                 fLink.innerHTML = '&lt; &lt;'; 
    228                                 fLink.href = 'javascript:EsearchE.page=0;'+ 
    229                                         'cExecute("$this.imap_functions.search_msg",openpage,'+ 
    230                                         '"condition='+this.condition+'&sort_type='+this.sort_type+'&page=0");'; 
    231                                 Element("span_paging"+currentTab).appendChild(fLink); 
    232                         } 
    233                         if(this.page > 2){ 
    234                                 var prevLink = document.createElement('A'); 
    235                                 prevLink.innerHTML = '...'; 
    236                                 prevLink.href = 'javascript:EsearchE.page='+ 
    237                                         (this.page-1)+';'+ 
    238                                         'cExecute("$this.imap_functions.search_msg",openpage,'+ 
    239                                         '"condition='+this.condition+'&sort_type='+this.sort_type+'&page='+(this.page-1)+'");'; 
    240                                 Element("span_paging"+currentTab).appendChild(prevLink); 
    241                         } 
    242                         for (var i=(this.page > 2 ? this.page-2 : 0); i <= parseInt(this.page)+4; i+= 1){ 
    243                                 if (i*preferences.max_email_per_page > size) 
    244                                         break; 
    245                                 if (this.page == i) 
    246                                         Element("span_paging"+currentTab).innerHTML += "<b> "+(this.page+1)+" </b>"; 
    247                                 else 
    248                                 { 
    249                                         var pageLink = document.createElement('A'); 
    250                                         pageLink.innerHTML = (i+1)+" "; 
    251                                         pageLink.href = 'javascript:EsearchE.page='+i+';'+ 
    252                                                 'cExecute("$this.imap_functions.search_msg",openpage,'+ 
    253                                                 '"condition='+this.condition+'&sort_type='+this.sort_type+'&page='+this.page+'");'; 
    254                                         Element("span_paging"+currentTab).appendChild(pageLink); 
    255                                 } 
    256                         } 
    257                         if (size > preferences.max_email_per_page) 
     326                        case 'SORTDATE': 
     327                                var_tmp.sort(date_comp); 
     328                                break; 
     329                        case 'SORTDATE_REVERSE': 
     330                                var_tmp.sort(date_comp_reverse); 
     331                                break; 
     332                        case 'SORTBOX': 
     333                                var_tmp.sort(box_comp); 
     334                                break; 
     335                        case 'SORTBOX_REVERSE': 
     336                                var_tmp.sort(box_comp_reverse); 
     337                                break; 
     338                        case 'SORTSUBJECT': 
     339                                var_tmp.sort(subject_comp); 
     340                                break; 
     341                        case 'SORTSUBJECT_REVERSE': 
     342                                var_tmp.sort(subject_comp_reverse); 
     343                                break; 
     344                        case 'SORTWHO': 
     345                                var_tmp.sort(who_comp); 
     346                                break; 
     347                        case 'SORTWHO_REVERSE': 
     348                                var_tmp.sort(who_comp_reverse); 
     349                                break; 
     350                        case 'SORTSIZE': 
     351                                var_tmp.sort(size_comp); 
     352                                break; 
     353                        case 'SORTSIZE_REVERSE': 
     354                                var_tmp.sort(size_comp_reverse); 
     355                                break; 
     356                        default: 
     357                                var showMsg = 1; 
     358                } 
     359 
     360                for(var i=0; i < var_tmp.length; i++){ 
     361                        if(var_tmp[i] != "") 
    258362                        { 
    259                                 var lLink = document.createElement('A'); 
    260                                 lLink.innerHTML = '&gt; &gt;'; 
    261                                 lLink.href = 'javascript:EsearchE.page='+parseInt(size/preferences.max_email_per_page)+';'+ 
    262                                         'cExecute("$this.imap_functions.search_msg",openpage,'+ 
    263                                         '"condition='+this.condition+'&sort_type='+this.sort_type+'&page=0");'; 
    264                                 Element("span_paging"+currentTab).appendChild(lLink); 
    265                         } 
    266                 } 
    267  
    268         } 
    269         // Form resultado 
    270         searchE.prototype.mount_result = function(Rdata,sort_type){ 
    271                 var data = Rdata['data']; 
    272                 if (data == undefined) 
    273                         return; 
    274                 if(this.page == 0) 
    275                         write_msg(Rdata['num_msgs']+" "+get_lang("results found")); 
    276                 var cont = parseInt(0); 
    277  
    278                 if (typeof(sort_type) != 'undefined') 
    279                         this.sort_type = sort_type; 
    280                 else 
    281                         sort_type = this.sort_type; 
     363                                nw_array[cont] = var_tmp[i]; 
     364                                cont++; 
     365                        } 
     366                } 
     367 
     368                if( (preferences.search_result_number != '65536') && (nw_array.length > 0) && (nw_array.length >= preferences.search_result_number) ){ 
     369                    nw_array.length = preferences.search_result_number; 
     370                    write_msg(get_lang("More than %1 results. Please, try to refine your search.",preferences.search_result_number)); 
     371                } 
     372                else { 
     373                        write_msg(nw_array.length + " "+ get_lang('results found')); 
     374                } 
    282375 
    283376                numBox++; 
     
    289382                currentTab = border_id; 
    290383                openTab.content_id[currentTab] = Element('content_id_search_' + numBox); 
    291                 openTab.type[currentTab] = 1; 
    292  
     384                openTab.type[currentTab] = 1; 
    293385                var table = document.createElement("TABLE"); 
    294386                table.id    = "table_resultsearch_" + numBox; 
     
    301393                var tbody = document.createElement("TBODY"); 
    302394                tbody.id    = "tbody_box_" + numBox; 
    303                 for( var i=0; i < data.length; i++){ 
     395 
     396                for( var i=0; i < nw_array.length; i++){ 
    304397                        var tr = document.createElement("TR"); 
    305398                        tr.style.height = preferences.line_height; 
    306                         var aux = data[i]; 
    307                         var mailbox = aux.boxname;  
    308                         var uid_msg = aux.uid;  
    309                         var subject = aux.subject;  
    310                         tr.id = uid_msg+"_s"+global_search; 
     399 
     400                        if (false && nw_array[i].match(/.*--.*--\w*--\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g) != null) //subject with "--" 
     401                        { 
     402                                var aux1 = nw_array[i].match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g); 
     403                                aux1 = aux1[0].split("--"); 
     404                                nw_array[i] = nw_array[i].substr(0, nw_array[i].indexOf(aux1[0])-2); 
     405                                var aux = []; 
     406                                aux[0] = nw_array[i].substr(0, nw_array[i].indexOf('--')); 
     407                                nw_array[i] = nw_array[i].substr(nw_array[i].indexOf('--')+2); 
     408                                aux[3] = nw_array[i].substr(0, nw_array[i].indexOf('--')); 
     409                                nw_array[i] = nw_array[i].substr(nw_array[i].indexOf('--')+2); 
     410                                aux[1] = nw_array[i].substr(0, nw_array[i].indexOf('--')); 
     411                                aux[2] = nw_array[i].substr(nw_array[i].indexOf('--')+2); 
     412                                aux = aux.concat(aux1); 
     413                        } 
     414                        else 
     415                        { 
     416                                var aux = nw_array[i].split("--"); 
     417                                aux.splice(4,0,aux[1]); 
     418                                var mailbox = aux.shift(); 
     419                                aux.splice(0,1,mailbox); 
     420                        } 
     421 
     422                        var mailbox_name = aux[0]; 
     423                        var mailbox_id = aux[3]; 
     424                        var uid_msg = aux[7]; 
     425                        var subject = aux[2]; 
     426                        tr.id = uid_msg; 
    311427 
    312428                        // Keep the two lines together please 
     
    314430                        tr.name = mailbox; 
    315431 
    316                         if (aux.flag.match("U")) 
     432                        if (aux[5].match("U")) 
    317433                                add_className(tr,'tr_msg_unread'); 
    318434                        add_className(tr, i%2 != 0 ? 'tr_msg_read2' : 'tr_msg_read'); 
     
    324440                                { 
    325441                                        td.style.width = "1%"; 
    326                                         var td1 = '<input type="checkbox" id="check_box_message_'+uid_msg+'"></input>'; 
    327                                          
     442                                        var td1 = '<input type="checkbox" id="'+ border_id +'_check_box_message_'+uid_msg+'"></input>'; 
     443 
    328444                                } 
    329445                                if (j == 1) 
    330446                                { 
    331447                                        td.style.width = "2%"; 
    332                                         if (aux.flag.match('T')) 
     448                                        if (aux[6].match('T')) 
    333449                                        { 
    334                                                 attachNum = parseInt(aux.flag.substr(aux.flag.indexOf('T')+1)); 
     450                                                attachNum = parseInt(aux[6].substr(aux[6].indexOf('T')+1)); 
    335451                                                td1 = "<img src='templates/"+template+"/images/clip.gif' title='"+attachNum +' '+ get_lang('attachment(s)')+"'>"; 
    336452                                        } 
     
    342458                                        td.style.width = "1%"; 
    343459                                        td.id = "td_message_answered_"+uid_msg; 
    344                                         if (aux.flag.match('X')) 
     460                                        if (aux[6].match('X')) 
    345461                                                td1 = '<img src=templates/'+template+'/images/forwarded.gif title=Forwarded>'; 
    346462                                        else 
    347                                                 if (aux.flag.match('A')) 
     463                                                if (aux[6].match('A')) 
    348464                                                        td1 = '<img src=templates/'+template+'/images/answered.gif>'; 
    349465                                                else 
     
    354470                                        td.style.width = "1%"; 
    355471                                        td.id = "td_message_important_"+uid_msg; 
    356                                         if (aux.flag.match("F")) 
     472                                        if (aux[6].match("F")) 
    357473                                        { 
    358474                                                add_className(tr, 'flagged_msg'); 
     
    370486                                if (j == 5) 
    371487                                { 
    372                                         td.style.width = "14%"; 
     488                                        td.style.width = "20%"; 
    373489                                        td.onclick = _onclick; 
    374                                         var nm_box = aux.boxname.split(cyrus_delimiter); 
     490                                        var nm_box = aux[0].split(cyrus_delimiter); 
    375491                                        var td1 = nm_box.pop(); 
    376492                                        td.setAttribute("NoWrap","true"); 
     
    378494                                        td.style.color = "#42795b"; 
    379495                                        td.style.fontWeight = "bold"; 
    380                                          
    381                                         var td1  = get_lang(td1).substr(get_lang(td1).length-1) == "*"?td1:get_lang(td1); 
    382                                         if ((tmp = translatedFolders.get(td1))) 
    383                                         { 
    384                                             td1 = tmp; 
    385                                         } 
     496                                        if(proxy_mensagens.is_local_folder(td1)) { 
     497                                                var td1 = this.aux_local_folder_display(td1); 
     498                                                aux[2] = tr.name = aux[0]; // precisa trocar pelo nome real no banco do gears. 
     499                                        } else { 
     500                                                if(td1 == "INBOX"){ 
     501                                                        var td1  = get_lang("Inbox"); 
     502                                                } 
     503                                                else if (nm_box[0] == 'user') 
     504                                                        if (nm_box.length > 1) 
     505                                                                var td1 = nm_box[1] + '/' + lang_folder(td1); 
     506                                                        else 
     507                                                                var td1 = td1; 
     508                                                else 
     509                                                        var td1 = lang_folder(td1); 
     510                                        } 
    386511 
    387512                                        if(proxy_mensagens.is_local_folder(td1)) { 
     
    391516                                if( j == 6) 
    392517                                { 
    393                                         if (aux.from.length > 29) 
    394                                                 aux.from = aux.from.substr(0,29) + "..."; 
     518                                        if (aux[1].length > 20) 
     519                                                aux[1] = aux[1].substr(0,20) + "..."; 
    395520                                        td.style.width = "20%"; 
    396521                                        td.onclick = _onclick; 
    397522                                        td.setAttribute("NoWrap","true"); 
    398523                                        td.style.overflow = "hidden"; 
    399                                         var td1  =  '<div style="width:100%;overflow:hidden">'+aux.from+"</div>"; 
     524                                        var td1  =  '<div style="width:100%;overflow:hidden">'+aux[1]+"</div>"; 
    400525                                } 
    401526                                if( j == 7) 
     
    403528                                        var subject_encode = url_encode(subject); 
    404529                                        if (! subject_encode) 
    405                                                 aux.subject = get_lang("no subject") + "..."; 
    406                                         if (aux.subject.length > 70) 
    407                                                 aux.subject = aux.subject.substr(0,70) + "..."; 
     530                                                aux[2] = get_lang("no subject") + "..."; 
     531                                        if ( subject.length > 45) 
     532                                                aux[2] = subject.substr(0,45) + "..."; 
    408533                                        td.style.width = "35%"; 
    409534                                        td.onclick = _onclick; 
    410535                                        td.setAttribute("NoWrap","true"); 
    411536                                        td.style.overflow = "hidden"; 
    412                                         var td1  = aux.subject; 
    413  
     537                                        var td1  = aux[2]; 
    414538                                } 
    415539                                if( j == 8) 
    416540                                { 
    417                                         td.style.width = "15%"; 
     541                                        td.style.width = "13%"; 
    418542                                        td.align = "center"; 
    419543                                        td.onclick = _onclick; 
    420                                         var _dat = new Date(aux.udate*1000);  
    421                                         var td1 = _dat.getDate()+"/"+(_dat.getMonth()+1)+"/"+_dat.getFullYear();  
     544                                        var td1  = aux[4]; 
    422545                                } 
    423546                                if( j == 9) 
     
    426549                                        td.align = "center"; 
    427550                                        td.onclick = _onclick; 
    428                                         var td1  = borkb(aux.size); 
     551                                        td.setAttribute("NoWrap","true"); 
     552                                        var td1  = aux[5]; 
    429553                                } 
    430554                                if (j == 10) 
    431555                                { 
    432                                         if (aux.flag.match("U")) 
     556                                        if (aux[6].match("U")) 
    433557                                                add_className(tr, 'tr_msg_unread'); 
    434                                         if (aux.flag.match("F")) 
     558                                        if (aux[7].match("F")) 
    435559                                                add_className(tr, 'flagged_msg'); 
    436560                                        var td1 = ''; 
     
    441565                        aux.splice(0,(aux.length)); 
    442566 
    443                 _dragArea.makeDragged(tr, uid_msg, subject, true, mailbox); 
     567                _dragArea.makeDragged(tr, uid_msg, subject, true, mailbox_id); 
    444568                tbody.appendChild(tr); 
    445569                } 
    446                 global_search++; //Tabs from search must not have the same id on its tr's 
    447                  
    448570                table.appendChild(tbody); 
    449571 
     
    452574        div_scroll_result.id = "divScrollMain_"+numBox; 
    453575        div_scroll_result.style.overflow = "auto"; 
    454          
     576 
    455577                if(is_ie) 
    456578                        Element("border_table").width = "99.5%"; 
    457                  
     579 
    458580                // Put header 
    459581                var table_element = document.createElement("TABLE"); 
     
    464586                tr_element.className = "message_header"; 
    465587                td_element0 = document.createElement("TD"); 
    466                 td_element0.setAttribute("width", "1%"); 
     588                td_element0.setAttribute("width", "7%"); 
    467589                chk_box_element = document.createElement("INPUT"); 
    468590                chk_box_element.id  = "chk_box_select_all_messages"; 
     
    483605                        } 
    484606                }; 
    485                  
     607 
    486608                td_element0.appendChild(chk_box_element); 
    487609                td_element1 = document.createElement("TD"); 
     
    490612                if (sort_type == 'SORTBOX') 
    491613                { 
    492                         td_element1.onclick = function () { 
    493                                 var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTBOX_REVERSE'); }; 
    494                                 var args   = "$this.imap_functions.search_msg"; 
    495                                 var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTBOX_REVERSE"; 
    496                                 cExecute(args,handler,params); 
    497                         }; 
     614                        td_element1.onclick = function () { EsearchE.mount_result(data,'SORTBOX_REVERSE'); delete_border(border_id,false);}; 
    498615                        td_element1.innerHTML ="<b>"+get_lang("Folder")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>"; 
    499616                } 
    500617                else 
    501618                { 
    502                         td_element1.onclick = function () { 
    503                                 var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTBOX'); }; 
    504                                 var args   = "$this.imap_functions.search_msg"; 
    505                                 var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTBOX"; 
    506                                 cExecute(args,handler,params); 
    507                         }; 
     619                        td_element1.onclick = function () { EsearchE.mount_result(data,'SORTBOX'); delete_border(border_id,false);}; 
    508620                        if  (sort_type == 'SORTBOX_REVERSE') 
    509621                                td_element1.innerHTML ="<b>"+get_lang("Folder")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>"; 
     
    516628                if (sort_type == 'SORTWHO') 
    517629                { 
    518                         td_element2.onclick = function () { 
    519                                 var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTWHO_REVERSE'); }; 
    520                                 var args   = "$this.imap_functions.search_msg"; 
    521                                 var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTWHO_REVERSE"; 
    522                                 cExecute(args,handler,params); 
    523                         }; 
     630                        td_element2.onclick = function () { EsearchE.mount_result(data,'SORTWHO_REVERSE'); delete_border(border_id,false);}; 
    524631                        td_element2.innerHTML ="<b>"+get_lang("who")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>"; 
    525632                } 
    526633                else 
    527634                { 
    528                         td_element2.onclick = function () { 
    529                                 var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTWHO'); }; 
    530                                 var args   = "$this.imap_functions.search_msg"; 
    531                                 var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTWHO"; 
    532                                 cExecute(args,handler,params); 
    533                         }; 
     635                        td_element2.onclick = function () { EsearchE.mount_result(data,'SORTWHO'); delete_border(border_id,false);}; 
    534636                        if  (sort_type == 'SORTWHO_REVERSE') 
    535637                                td_element2.innerHTML ="<b>"+get_lang("who")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>"; 
     
    542644                if (sort_type == 'SORTSUBJECT') 
    543645                { 
    544                         td_element3.onclick = function () { 
    545                                 var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTSUBJECT_REVERSE'); }; 
    546                                 var args   = "$this.imap_functions.search_msg"; 
    547                                 var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTSUBJECT_REVERSE"; 
    548                                 cExecute(args,handler,params); 
    549                         }; 
     646                        td_element3.onclick = function () { EsearchE.mount_result(data,'SORTSUBJECT_REVERSE'); delete_border(border_id,false);}; 
    550647                        td_element3.innerHTML ="<b>"+get_lang("subject")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>"; 
    551648                } 
    552649                else 
    553650                { 
    554                         td_element3.onclick = function () { 
    555                                 var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTSUBJECT'); }; 
    556                                 var args   = "$this.imap_functions.search_msg"; 
    557                                 var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTSUBJECT"; 
    558                                 cExecute(args,handler,params); 
    559                         }; 
     651                        td_element3.onclick = function () { EsearchE.mount_result(data,'SORTSUBJECT'); delete_border(border_id,false);}; 
    560652                        if  (sort_type == 'SORTSUBJECT_REVERSE') 
    561653                                td_element3.innerHTML ="<b>"+get_lang("subject")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>"; 
     
    564656                } 
    565657                td_element4 = document.createElement("TD"); 
    566                 td_element4.setAttribute("width", "15%"); 
     658                td_element4.setAttribute("width", "12%"); 
    567659                td_element4.align = "center"; 
    568660                if (sort_type == 'SORTDATE') 
    569661                { 
    570                         td_element4.onclick = function () { 
    571                                 var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTDATE_REVERSE'); }; 
    572                                 var args   = "$this.imap_functions.search_msg"; 
    573                                 var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTDATE_REVERSE"; 
    574                                 cExecute(args,handler,params); 
    575                         }; 
     662                        td_element4.onclick = function () { EsearchE.mount_result(data,'SORTDATE_REVERSE'); delete_border(border_id,false);}; 
    576663                        td_element4.innerHTML ="<b>"+get_lang("Date")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>"; 
    577664                } 
    578665                else 
    579666                { 
    580                         td_element4.onclick = function () { 
    581                                 var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTDATE'); }; 
    582                                 var args   = "$this.imap_functions.search_msg"; 
    583                                 var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTDATE"; 
    584                                 cExecute(args,handler,params); 
    585                         }; 
     667                        td_element4.onclick = function () { EsearchE.mount_result(data,'SORTDATE'); delete_border(border_id,false);}; 
    586668                        if  (sort_type == 'SORTDATE_REVERSE') 
    587669                                td_element4.innerHTML ="<b>"+get_lang("Date")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>"; 
     
    590672                } 
    591673                td_element5 = document.createElement("TD"); 
    592                 td_element5.setAttribute("width", "10%"); 
     674                td_element5.setAttribute("width", "8%"); 
    593675                td_element5.align = "center"; 
    594676                if (sort_type == 'SORTSIZE') 
    595677                { 
    596                         td_element5.onclick = function () { 
    597                                 var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTSIZE_REVERSE'); }; 
    598                                 var args   = "$this.imap_functions.search_msg"; 
    599                                 var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTSIZE_REVERSE"; 
    600                                 cExecute(args,handler,params); 
    601                         }; 
     678                        td_element5.onclick = function () { EsearchE.mount_result(data,'SORTSIZE_REVERSE'); delete_border(border_id,false);}; 
    602679                        td_element5.innerHTML ="<b>"+get_lang("size")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>"; 
    603680                } 
    604681                else 
    605682                { 
    606                         td_element5.onclick = function () { 
    607                                 var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTSIZE'); }; 
    608                                 var args   = "$this.imap_functions.search_msg"; 
    609                                 var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTSIZE"; 
    610                                 cExecute(args,handler,params); 
    611                         }; 
     683                        td_element5.onclick = function () { EsearchE.mount_result(data,'SORTSIZE'); delete_border(border_id,false);}; 
    612684                        if  (sort_type == 'SORTSIZE_REVERSE') 
    613685                                td_element5.innerHTML ="<b>"+get_lang("size")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>"; 
     
    625697                content_search.appendChild(table_element); 
    626698                /*end of "put header"*/ 
    627                  
     699 
    628700                if (!expresso_offline) { 
    629701/*                      var span_options = document.createElement("SPAN"); 
    630                         if (span_options)  
     702                        if (span_options) 
    631703                                span_options.innerHTML = '<span title="' + get_lang("Delete") + '" style="margin-top:3px;margin-left:8px" class="message_options" onclick="javascript:move_search_msgs(\'' + content_search.id + '\');">' + get_lang("Delete") + '</span> | ' + 
    632704                                '<span title="' + 
     
    639711                        div_scroll_result.appendChild(table); 
    640712                        content_search.appendChild(div_scroll_result); 
    641                         /*if (span_options)  
     713                        /*if (span_options) 
    642714                                content_search.appendChild(span_options);*/ 
    643715                } 
     
    647719                } 
    648720                resizeWindow(); 
    649                 EsearchE.show_paging(Rdata['num_msgs']); 
    650  
    651         } 
    652  
    653         searchE.prototype.open_msg = function(mailbox, uid_msg, subject){ 
     721        } 
     722 
     723        searchE.prototype.open_msg = function(mailbox_id, uid_msg, subject){ 
    654724                var handler_get_msg = function(data){ 
    655725                        if(Element("border_id_" + uid_msg + "_r")){alert(get_lang("This message is already opened!"));} 
     
    657727                        //set_msg_as_read(msgs_to_set[i], false); 
    658728                } 
    659                 proxy_mensagens.get_msg(uid_msg,mailbox,false,handler_get_msg); 
     729                proxy_mensagens.get_msg(uid_msg,mailbox_id,false,handler_get_msg); 
    660730                /*var args   = "$this.imap_functions.get_info_msg"; 
    661731                var params = "msg_number=" + uid_msg + "&msg_folder=" + mailbox; 
     
    675745                                name_box_def = name_box[(name_box.length-1)]; 
    676746                        }else{ 
    677                                 name_box_def = get_lang("Inbox");                
     747                                name_box_def = get_lang("Inbox"); 
    678748                        } 
    679749                } 
     
    683753                        if(this.name_box_search=='local_Inbox') 
    684754                                name_box_def = get_lang("Inbox"); 
    685                         else if(this.name_box_search.indexOf("/")!="-1") { 
    686                                 final_pos = this.name_box_search.lastIndexOf("/"); 
    687                                 name_box_def = this.name_box_search.substr(final_pos+1); 
    688                         } 
    689755                        else 
    690756                                name_box_def = this.name_box_search.substr(6);//Retira o 'local_' 
     
    712778                        } 
    713779                } 
    714          
     780 
    715781        } 
    716782        // todas as caixas 
     
    720786                if(value){ 
    721787                        if(EsearchE.all_boxes.length > 0){ 
    722                                 EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));                        
     788                                EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length)); 
    723789                        } 
    724790                        for(var i=0; i < folders.length; i++){ 
     
    736802                        // Verifica se os campos estão preenchidos; 
    737803                        if(trim(Element("txt_ass").value) != ""){ 
    738                                 fields += "SUBJECT " +  "<=>" +url_encode(Element("txt_ass").value) + "##"; 
     804                                fields += "SUBJECT " +  "<=>" +encodeURIComponent(Element("txt_ass").value) + "##"; 
    739805                        } 
    740806                        if(trim(Element("txt_body").value) != ""){ 
    741                                 fields += "BODY " + "<=>" + url_encode(Element("txt_body").value) + "##"; 
     807                                fields += "BODY " + "<=>" + encodeURIComponent(Element("txt_body").value) + "##"; 
    742808                        } 
    743809                        if(trim(Element("txt_de").value) != ""){ 
    744                                 fields += "FROM " + "<=>" + url_encode(Element("txt_de").value) + "##"; 
     810                                fields += "FROM " + "<=>" + encodeURIComponent(Element("txt_de").value) + "##"; 
    745811                        } 
    746812                        if(trim(Element("txt_para").value) != ""){ 
    747                                 fields += "TO " + "<=>" + url_encode(Element("txt_para").value) + "##"; 
     813                                fields += "TO " + "<=>" + encodeURIComponent(Element("txt_para").value) + "##"; 
    748814                        } 
    749815                        if(trim(Element("txt_cc").value) != ""){ 
    750                                 fields += "CC " + "<=>" + url_encode(Element("txt_cc").value) + "##"; 
     816                                fields += "CC " + "<=>" + encodeURIComponent(Element("txt_cc").value) + "##"; 
    751817                        } 
    752818                        if (trim(Element("since_date").value) != ""){ 
    753819                            if (validate_date(Element("since_date").value)) 
    754820                            { 
    755                                 fields += "SINCE " + "<=>" + url_encode(Element("since_date").value) + "##"; 
     821                                fields += "SINCE " + "<=>" + encodeURIComponent(Element("since_date").value) + "##"; 
    756822                            } 
    757823                            else 
     
    764830                            if (validate_date(Element("before_date").value)) 
    765831                            { 
    766                                 fields += "BEFORE " + "<=>" + url_encode(Element("before_date").value) + "##"; 
     832                                fields += "BEFORE " + "<=>" + encodeURIComponent(Element("before_date").value) + "##"; 
    767833                            } 
    768834                            else 
     
    775841                            if (validate_date(Element("on_date").value)) 
    776842                            { 
    777                                 fields += "ON " + "<=>" + url_encode(Element("on_date").value) + "##"; 
     843                                fields += "ON " + "<=>" + encodeURIComponent(Element("on_date").value) + "##"; 
    778844                            } 
    779845                            else 
     
    801867                        } 
    802868                        if(trim(Element("answered").options[Element("answered").selectedIndex].value) != ""){ 
     869                            //switch (Element("answered").options[Element("answered").selectedIndex].value){ 
     870                            //    case "FORWARDED": 
     871                            //        fields += "ANSWERED##DRAFT##"; 
     872                            //        break; 
     873                            //    case "ANSWERED": 
     874                            //        fields += "ANSWERED##UNDRAFT"; 
     875                            //        break; 
     876                            //    case "UNFORWARDED": 
     877                            //        fields += "UNDRAFT##"; 
     878                            //    case "UNANSWERED": 
     879                            //        fields += "UNANSWERED##"; 
     880                            //} 
    803881                            if (Element("answered").options[Element("answered").selectedIndex].value == "ANSWERED"){ 
    804882                                fields += "ANSWERED##"; 
     
    817895                        } 
    818896                        if(value) { 
    819                                 fields = "##ALL " +  "<=>" +url_encode(value) + "##"; 
     897                                fields = "##ALL " +  "<=>" +encodeURIComponent(value) + "##"; 
    820898                        } 
    821899 
     
    826904                var local_folders = new Array(); 
    827905                var temp; 
    828                  
     906 
    829907                if(Element("check_all_msg").checked){ 
    830908                        this.all_mailboxes(); 
     
    846924                                return false; 
    847925                        } 
    848                          
     926 
    849927                        for(var i=0; i < sel_combo.options.length; i++){ 
    850928                                sel_combo.options[i].selected = true; 
     
    860938                } 
    861939                var handler = function(data){ 
    862                         if (data == "none") 
    863                                 alert(get_lang('no results found')); 
    864                         else 
    865                                 EsearchE.mount_result(data,'SORTDATE'); 
     940                        var tmp; 
     941                        var countTmp= new Array(); 
     942 
     943                        var dataTemp = data.split('=sumResults='); 
     944                        var sumResults = dataTemp[0]; 
     945 
     946                        var data = dataTemp[1] ? dataTemp[1] : dataTemp[0]; 
     947 
     948                        if (local_folders.length > 0) { 
     949                                tmp = expresso_local_messages.search(local_folders, fields); 
     950                                if (tmp!=false) { 
     951                                        var tmp2 = tmp.substr(2, data.length - 4); 
     952                                        countTmp = tmp.split('####'); 
     953                                } 
     954                        } 
     955                        if ((sumResults == "none") && (countTmp.length==0)){ 
     956                            alert(get_lang("None result was found.")); 
     957                        } 
     958                        else 
     959                        { 
     960                            EsearchE.mount_result((sumResults=='none')?tmp:(countTmp.length==0)?data:data+tmp); 
     961                        } 
    866962 
    867963                } 
    868964                var args   = "$this.imap_functions.search_msg"; 
    869                 this.condition = nm_box; 
    870                 var params = "condition=" + nm_box+ 
    871                         "&page=0"+ 
    872                         "&sort_type=SORTDATE"; 
    873                 this.page = 0; 
     965                var params = "condition=" + nm_box; 
    874966                if(expresso_offline) 
    875967                        handler('none'); 
     
    880972        searchE.prototype.func_clean = function(){ 
    881973                // Limpa os campos; 
    882             for(var i=0; i < this.txtfields.length; i++){ 
    883                     if(Element(this.txtfields[i]) != null){Element(this.txtfields[i]).value = "";} 
    884             } 
    885  
    886             for(i = 0; i < this.selectFields.length; i++) 
    887             { 
    888                 if (Element(this.selectFields[i])) 
     974                for(var i=0; i < this.txtfields.length; i++){ 
     975                        if(Element(this.txtfields[i]) != null){Element(this.txtfields[i]).value = "";} 
     976                } 
     977 
     978                for(i = 0; i < this.selectFields.length; i++) 
    889979                { 
    890                     Element(this.selectFields[i]).selectedIndex = 0; 
     980                    if (Element(this.selectFields[i])) 
     981                    { 
     982                        Element(this.selectFields[i]).selectedIndex = 0; 
     983                    } 
    891984                } 
    892             } 
    893985            if(Element("check_all_msg") != null){Element("check_all_msg").checked = false;} 
    894986 
     
    9281020                                button_y_img: '../phpgwapi/images/win_min.gif', 
    9291021                                button_x_img: '../phpgwapi/images/winclose.gif', 
    930                                 border: true }); 
     1022                                border: true}); 
    9311023                        this.searchW[div.id] = win; 
    9321024                        win.draw(); 
     
    9391031                win.open();      
    9401032        } 
    941          
     1033 
    9421034        searchE.prototype.aux_local_folder_display = function(folder) { 
    9431035                if(!expresso_offline) 
     
    9461038                        return lang_folder(folder.substr(6)); 
    9471039        } 
    948          
     1040 
    9491041// Cria o objeto 
    9501042        var EsearchE; 
  • branches/2.2/expressoMail1_2/setup/phpgw_pt-br.lang

    r3365 r3380  
    307307More    expressoMail1_2 pt-br   Mais 
    308308More options    expressoMail1_2 pt-br   Mais opções 
     309More than %1 results. Please, try to refine your search.        expressoMail1_2 pt-br   Mais que %1 resultados foram encontrados. Tente refinar sua pesquisa. 
     310More than %1 results were found expressoMail1_2 pt-br   Mais de %1 resultados foram encontrados 
    309311Move    expressoMail1_2 pt-br   Mover 
    310312Move to expressoMail1_2 pt-br   Mover para 
     
    390392Result of the search    expressoMail1_2 pt-br   Resultado da busca 
    391393results found   expressoMail1_2 pt-br   resultados encontrados 
    392 no results found        expressoMail1_2 pt-br   Nenhum resultado encontrado 
    393394Return receipt  expressoMail1_2 pt-br   Conf. de Leitura 
    394395REVOKED Certificate.    expressoMail1_2 pt-br   CERTIFICADO REVOGADO. 
Note: See TracChangeset for help on using the changeset viewer.