Changeset 2758 for branches


Ignore:
Timestamp:
05/12/10 09:23:03 (14 years ago)
Author:
rodsouza
Message:

Ticket #1073 - Resultado da busca corrigindo com caracteres nao permitidos

Location:
branches/2.0/expressoMail1_2
Files:
3 edited

Legend:

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

    r2740 r2758  
    30223022 
    30233023        function search_msg($params = ''){               
    3024                 $retorno = ""; 
    30253024                $mbox_stream = ""; 
    30263025                if(strpos($params['condition'],"#")===false) { //local messages 
     
    30763075                                                { 
    30773076                                                        foreach($search_criteria as $new_search){ 
    3078                                                                 $m_token = trim("##".mb_convert_encoding( $name_box, "ISO_8859-1", "UTF7-IMAP" ) . "--" . $this->get_msg($new_search,$name_box,$mbox_stream) . "--".$new_search."##"."\n"); 
    3079                                                                 if(!@strstr($retorno,$m_token)) 
    3080                                                                         $retorno .= $m_token; 
     3077                                                                $elem = $this->get_msg_detail($new_search,$name_box,$mbox_stream); 
     3078                                                                $elem['boxname'] = mb_convert_encoding( $name_box, "ISO_8859-1", "UTF7-IMAP" ); 
     3079                                                                $elem['uid'] = $new_search; 
     3080                                                                $retorno[] = $elem; 
    30813081                                                        } 
    30823082                                                }                                                
     
    30903090                                        { 
    30913091                                                foreach($search_criteria as $new_search) 
    3092                                                         $retorno .= trim("##".mb_convert_encoding( $name_box, "ISO_8859-1", "UTF7-IMAP" ) . "--" . $this->get_msg($new_search,$name_box,$mbox_stream) . "--" . $new_search."##"."\n"); 
     3092                                                { 
     3093                                                        $elem = $this->get_msg_detail($new_search,$name_box,$mbox_stream); 
     3094                                                        $elem['boxname'] = mb_convert_encoding( $name_box, "ISO_8859-1", "UTF7-IMAP" ); 
     3095                                                        $elem['uid'] = $new_search; 
     3096                                                        $retorno[] = $elem; 
     3097                                                } 
    30933098                                        } 
    30943099                                } 
     
    30973102                if($mbox_stream) 
    30983103                        imap_close($mbox_stream);                
    3099                                                  
    31003104                return $retorno ? $retorno : "none"; 
    31013105        } 
    31023106         
    3103         function get_msg($uid_msg,$name_box, $mbox_stream ) 
     3107        function get_msg_detail($uid_msg,$name_box, $mbox_stream ) 
    31043108        { 
    31053109                $header = $this->get_header($uid_msg); 
    3106                 include_once("class.imap_attachment.inc.php"); 
     3110                require_once("class.imap_attachment.inc.php"); 
    31073111                $imap_attachment = new imap_attachment(); 
    31083112                $attachments =  $imap_attachment->get_attachment_headerinfo($mbox_stream, $uid_msg); 
     
    31213125                if($header->from[0]->personal != "") 
    31223126                        $from = $header->from[0]->personal; 
    3123                 $ret_msg = $this->decode_string($from) . "--" . $subject . "--". gmdate("d/m/Y",$header ->udate)."--". $this->size_msg($header->Size) ."--". $flag; 
     3127                $ret_msg['from'] = $this->decode_string($from); 
     3128                $ret_msg['subject'] = $subject; 
     3129                $ret_msg['udate'] = $header ->udate; 
     3130                $ret_msg['size'] = $header->Size; 
     3131                $ret_msg['flag'] = $flag; 
    31243132                return $ret_msg;                     
    31253133        }        
    3126  
    3127         function size_msg($size){ 
    3128                 $var = floor($size/1024); 
    3129                 if($var >= 1){ 
    3130                         return $var." kb";       
    3131                 }else{ 
    3132                         return $size ." b";      
    3133                 } 
    3134         } 
    31353134 
    31363135        function ob_array($the_object) 
  • branches/2.0/expressoMail1_2/js/common_functions.js

    r2693 r2758  
    860860        } 
    861861} 
     862 
     863function borkb(size){ 
     864        kbyte = 1024; 
     865        mbyte = kbyte*1024; 
     866        gbyte = mbyte*1024; 
     867        if (!size) 
     868                size = 0; 
     869        if (size < kbyte) 
     870                return size + ' B'; 
     871        else if (size < mbyte) 
     872                return parseInt(size/kbyte) + ' KB'; 
     873        else if (size < gbyte) 
     874                if (size/mbyte > 100) 
     875                        return (size/mbyte).toFixed(0) + ' MB'; 
     876                else 
     877                        return (size/mbyte).toFixed(1) + ' MB'; 
     878        else 
     879                return parseInt(size/gbyte).toFixed(1) + ' GB'; 
     880} 
     881 
     882 
  • branches/2.0/expressoMail1_2/js/search.js

    r2606 r2758  
    139139        } 
    140140         
    141         //This func returns the most recent date 
    142         function date_comp(a,b) 
    143         { 
    144                 var data1 = a.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g); 
    145                 data1 = data1[0].substr(0, data1[0].indexOf('--')) 
    146                 with ( data1 )  
    147                         data1 = Date.UTC(substr(6), substr(3, 2), substr(0, 2)); 
    148                 var data2 = b.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g); 
    149                 data2 = data2[0].substr(0, data2[0].indexOf('--')) 
    150                 with ( data2 ) 
    151                         data2 = Date.UTC(substr(6), substr(3, 2), substr(0, 2)); 
    152                 return data2 - data1; 
    153         } 
    154         function date_comp_reverse(a,b) 
    155         { 
    156                 return date_comp(b,a); 
    157         } 
    158          
    159         function box_comp(a,b) 
    160         { 
    161         var compare = []; 
    162         compare[0] = a.substr(0, a.indexOf('--')); 
    163         compare[0] = compare[0].toLowerCase(); 
    164         var temp=compare[0]; 
    165         compare[1] = b.substr(0, b.indexOf('--')) 
    166         compare[1] = compare[1].toLowerCase(); 
    167         compare.sort(); 
    168         if (temp != compare[0]) 
    169                 return +1; 
    170         else 
    171                 return -1; 
    172         } 
    173         function box_comp_reverse(a,b) 
    174         { 
    175                 return box_comp(b,a); 
    176         } 
    177  
    178         function who_comp(a,b) 
    179         { 
    180         var compare = []; 
    181         compare[0] = a.substr(a.indexOf('--')+2); 
    182         compare[0] = compare[0].toLowerCase(); 
    183         var temp=compare[0]; 
    184         compare[1] = b.substr(b.indexOf('--')+2); 
    185         compare[1] = compare[1].toLowerCase(); 
    186         compare.sort(); 
    187         if (temp != compare[0]) 
    188                 return +1; 
    189         else 
    190                 return -1; 
    191         } 
    192         function who_comp_reverse(a,b) 
    193         { 
    194                 return who_comp(b,a); 
    195         } 
    196  
    197         function subject_comp(a,b) 
    198         { 
    199         var compare = []; 
    200         compare[0] = a.substr(a.indexOf('--')+2); 
    201         compare[0] = compare[0].substr(compare[0].indexOf('--')+2); 
    202         compare[0] = compare[0].toLowerCase(); 
    203         var temp=compare[0]; 
    204         compare[1] = b.substr(b.indexOf('--')+2); 
    205         compare[1] = compare[1].substr(compare[1].indexOf('--')+2); 
    206         compare[1] = compare[1].toLowerCase(); 
    207         compare.sort(); 
    208         if (temp != compare[0]) 
    209                 return +1; 
    210         else 
    211                 return -1; 
    212         } 
    213         function subject_comp_reverse(a,b) 
    214         { 
    215                 return subject_comp(b,a); 
    216         } 
    217  
    218         function size_comp(a,b) 
    219         { 
    220                 var data1 = a.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g); 
    221                 data1 = data1[0].substr(data1[0].indexOf('--')+2) 
    222                 data1 = data1.substr(0,data1.indexOf('--')) 
    223                 var size_a = parseInt(data1.substr(0,data1.indexOf(' '))); 
    224                 if (data1.match("k")) 
    225                         size_a = size_a * 1024; 
    226                 else 
    227                         if (data1.match("m")) 
    228                                 size_a = size_a * 1048576; 
    229                 var data2 = b.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g); 
    230                 data2 = data2[0].substr(data2[0].indexOf('--')+2) 
    231                 data2 = data2.substr(0,data2.indexOf('--')) 
    232                 var size_b = parseInt(data2.substr(0,data2.indexOf(' '))); 
    233                 if (data2.match("k")) 
    234                         size_b = size_b * 1024; 
    235                 else 
    236                         if (data2.match("m")) 
    237                                 size_b = size_b * 1048576; 
    238                 return size_b - size_a; 
    239         } 
    240         function size_comp_reverse(a,b) 
    241         { 
    242                 return size_comp(b,a); 
    243         } 
    244  
    245141        // Form resultado 
    246142        searchE.prototype.mount_result = function(data,sort_type){ 
    247                 var nw_array = new Array; 
    248                 var var_tmp = data.substr(2, data.length - 4); 
    249                 var_tmp  = var_tmp.split("####"); 
     143                if (data == undefined) 
     144                        return; 
    250145                var cont = parseInt(0); 
     146 
     147                //This func returns the comparison between criterias 
     148                var date_comp = function(a,b){ return a.udate > b.udate;}; 
     149                var date_comp_reverse = function(a,b){ return date_comp(b,a);}; 
     150                var box_comp = function(a,b){   return a.boxname > b.boxname; } 
     151                var box_comp_reverse = function(a,b){   return box_comp(b,a); } 
     152                var who_comp = function(a,b){ return a.from > b.from; } 
     153                var who_comp_reverse = function(a,b){ return who_comp(b,a); } 
     154                var subject_comp = function(a,b){ return a.subject > b.subject; } 
     155                var subject_comp_reverse = function(a,b){ return subject_comp(b,a); } 
     156                var size_comp = function(a,b){ return a.size > b.size; } 
     157                var size_comp_reverse = function(a,b){ return size_comp(b,a); } 
     158 
    251159                switch (sort_type) 
    252160                { 
    253161                        case 'SORTDATE': 
    254                                 var_tmp.sort(date_comp); 
     162                                data.sort(date_comp); 
    255163                                break; 
    256164                        case 'SORTDATE_REVERSE': 
    257                                 var_tmp.sort(date_comp_reverse); 
     165                                data.sort(date_comp_reverse); 
    258166                                break; 
    259167                        case 'SORTBOX': 
    260                                 var_tmp.sort(box_comp); 
     168                                data.sort(box_comp); 
    261169                                break; 
    262170                        case 'SORTBOX_REVERSE': 
    263                                 var_tmp.sort(box_comp_reverse); 
     171                                data.sort(box_comp_reverse); 
    264172                                break; 
    265173                        case 'SORTSUBJECT': 
    266                                 var_tmp.sort(subject_comp); 
     174                                data.sort(subject_comp); 
    267175                                break; 
    268176                        case 'SORTSUBJECT_REVERSE': 
    269                                 var_tmp.sort(subject_comp_reverse); 
     177                                data.sort(subject_comp_reverse); 
    270178                                break; 
    271179                        case 'SORTWHO': 
    272                                 var_tmp.sort(who_comp); 
     180                                data.sort(who_comp); 
    273181                                break; 
    274182                        case 'SORTWHO_REVERSE': 
    275                                 var_tmp.sort(who_comp_reverse); 
     183                                data.sort(who_comp_reverse); 
    276184                                break; 
    277185                        case 'SORTSIZE': 
    278                                 var_tmp.sort(size_comp); 
     186                                data.sort(size_comp); 
    279187                                break; 
    280188                        case 'SORTSIZE_REVERSE': 
    281                                 var_tmp.sort(size_comp_reverse); 
     189                                data.sort(size_comp_reverse); 
    282190                                break; 
    283191                        default: 
     
    285193                } 
    286194 
    287                 for(var i=0; i < var_tmp.length; i++){ 
    288                         if(var_tmp[i] != "") 
    289                         { 
    290                                 nw_array[cont] = var_tmp[i]; 
    291                                 cont++; 
    292                         } 
    293                 } 
    294                 if(nw_array.length > 0 && showMsg) 
    295                         write_msg(nw_array.length + " "+ get_lang('results found')); 
     195                if(data.length > 0 && showMsg) 
     196                        write_msg(data.length + " "+ get_lang('results found')); 
    296197                numBox++; 
    297198                var border_id = create_border(get_lang("Search Results"), "search_" + numBox); 
     
    313214                tbody.id    = "tbody_box_" + numBox; 
    314215 
    315                 for( var i=0; i < nw_array.length; i++){ 
     216                for( var i=0; i < data.length; i++){ 
    316217                        var tr = document.createElement("TR"); 
    317218                        tr.style.height = preferences.line_height; 
    318  
    319                         if (nw_array[i].match(/.*--.*--\w*--\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g) != null) //subject with "--" 
    320                         { 
    321                                 var aux1 = nw_array[i].match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g); 
    322                                 aux1 = aux1[0].split("--"); 
    323                                 nw_array[i] = nw_array[i].substr(0, nw_array[i].indexOf(aux1[0])-2); 
    324                                 var aux = []; 
    325                                 aux[0] = nw_array[i].substr(0, nw_array[i].indexOf('--')); 
    326                                 nw_array[i] = nw_array[i].substr(nw_array[i].indexOf('--')+2); 
    327                                 aux[1] = nw_array[i].substr(0, nw_array[i].indexOf('--')); 
    328                                 aux[2] = nw_array[i].substr(nw_array[i].indexOf('--')+2); 
    329                                 aux = aux.concat(aux1); 
    330                         } 
    331                         else 
    332                         { 
    333                                 var aux = nw_array[i].split("--"); 
    334                         } 
    335  
    336                         var mailbox = aux[0]; 
    337                         var uid_msg = aux[6]; 
    338                         var subject = aux[2]; 
     219                        var aux = data[i]; 
     220                        var mailbox = aux.boxname; 
     221                        var uid_msg = aux.uid; 
     222                        var subject = aux.subject; 
    339223                        tr.id = uid_msg; 
    340224 
     
    343227                        tr.name = mailbox; 
    344228 
    345                         if (aux[5].match("U")) 
     229                        if (aux.flag.match("U")) 
    346230                                add_className(tr,'tr_msg_unread'); 
    347231                        add_className(tr, i%2 != 0 ? 'tr_msg_read2' : 'tr_msg_read'); 
     
    354238                                        td.style.width = "1%"; 
    355239                                        var td1 = '<input type="checkbox" id="check_box_message_'+uid_msg+'"></input>'; 
    356                                          
    357240                                } 
    358241                                if (j == 1) 
    359242                                { 
    360243                                        td.style.width = "2%"; 
    361                                         if (aux[5].match('T')) 
     244                                        if (aux.flag.match('T')) 
    362245                                        { 
    363                                                 attachNum = parseInt(aux[5].substr(aux[5].indexOf('T')+1)); 
     246                                                attachNum = parseInt(aux.flag.substr(aux.flag.indexOf('T')+1)); 
    364247                                                td1 = "<img src='templates/"+template+"/images/clip.gif' title='"+attachNum +' '+ get_lang('attachment(s)')+"'>"; 
    365248                                        } 
     
    371254                                        td.style.width = "1%"; 
    372255                                        td.id = "td_message_answered_"+uid_msg; 
    373                                         if (aux[5].match('X')) 
     256                                        if (aux.flag.match('X')) 
    374257                                                td1 = '<img src=templates/'+template+'/images/forwarded.gif title=Forwarded>'; 
    375258                                        else 
    376                                                 if (aux[5].match('A')) 
     259                                                if (aux.flag.match('A')) 
    377260                                                        td1 = '<img src=templates/'+template+'/images/answered.gif>'; 
    378261                                                else 
     
    383266                                        td.style.width = "1%"; 
    384267                                        td.id = "td_message_important_"+uid_msg; 
    385                                         if (aux[5].match("F")) 
     268                                        if (aux.flag.match("F")) 
    386269                                        { 
    387270                                                add_className(tr, 'flagged_msg'); 
     
    401284                                        td.style.width = "14%"; 
    402285                                        td.onclick = _onclick; 
    403                                         var nm_box = aux[0].split(cyrus_delimiter); 
     286                                        var nm_box = aux.boxname.split(cyrus_delimiter); 
    404287                                        var td1 = nm_box.pop(); 
    405288                                        td.setAttribute("NoWrap","true"); 
     
    418301                                if( j == 6) 
    419302                                { 
    420                                         if (aux[1].length > 29) 
    421                                                 aux[1] = aux[1].substr(0,29) + "..."; 
     303                                        if (aux.from.length > 29) 
     304                                                aux.from = aux.from.substr(0,29) + "..."; 
    422305                                        td.style.width = "20%"; 
    423306                                        td.onclick = _onclick; 
    424307                                        td.setAttribute("NoWrap","true"); 
    425308                                        td.style.overflow = "hidden"; 
    426                                         var td1  =  '<div style="width:100%;overflow:hidden">'+aux[1]+"</div>"; 
     309                                        var td1  =  '<div style="width:100%;overflow:hidden">'+aux.from+"</div>"; 
    427310                                } 
    428311                                if( j == 7) 
     
    430313                                        var subject_encode = url_encode(subject); 
    431314                                        if (! subject_encode) 
    432                                                 aux[2] = get_lang("no subject") + "..."; 
    433                                         if (aux[2].length > 70) 
    434                                                 aux[2] = aux[2].substr(0,70) + "..."; 
     315                                                aux.subject = get_lang("no subject") + "..."; 
     316                                        if (aux.subject.length > 70) 
     317                                                aux.subject = aux.subject.substr(0,70) + "..."; 
    435318                                        td.style.width = "35%"; 
    436319                                        td.onclick = _onclick; 
    437320                                        td.setAttribute("NoWrap","true"); 
    438321                                        td.style.overflow = "hidden"; 
    439                                         var td1  = aux[2]; 
     322                                        var td1  = aux.subject; 
    440323 
    441324                                } 
     
    445328                                        td.align = "center"; 
    446329                                        td.onclick = _onclick; 
    447                                         var td1  = aux[3]; 
     330                                        var _dat = new Date(aux.udate*1000); 
     331                                        var td1 = _dat.getDate()+"/"+_dat.getMonth()+"/"+_dat.getFullYear(); 
    448332                                } 
    449333                                if( j == 9) 
     
    452336                                        td.align = "center"; 
    453337                                        td.onclick = _onclick; 
    454                                         var td1  = aux[4]; 
     338                                        var td1  = borkb(aux.size); 
    455339                                } 
    456340                                if (j == 10) 
    457341                                { 
    458                                         if (aux[5].match("U")) 
     342                                        if (aux.flag.match("U")) 
    459343                                                add_className(tr, 'tr_msg_unread'); 
    460                                         if (aux[5].match("F")) 
     344                                        if (aux.flag.match("F")) 
    461345                                                add_className(tr, 'flagged_msg'); 
    462346                                        var td1 = ''; 
     
    763647                var handler = function(data){ 
    764648                        var tmp; 
    765                         var countTmp= new Array(); 
    766649                        if (local_folders.length > 0) { 
    767650                                tmp = expresso_local_messages.search(local_folders, fields); 
    768651                                if (tmp!=false) { 
    769652                                        var tmp2 = tmp.substr(2, data.length - 4); 
    770                                         countTmp = tmp.split('####'); 
    771                                 } 
    772                         } 
    773                         if((data == "none") && (countTmp.length==0)){alert(get_lang("None result was found."));} 
    774                         else if(countTmp.length > 50){alert(get_lang("More than %1 results. Please, try to refine your search.",50));} 
     653                                } 
     654                        } 
     655                        if((data == "none") || (data.length==0)){alert(get_lang("None result was found."));} 
     656                        else if(data.length > 50){alert(get_lang("More than %1 results. Please, try to refine your search.",50));} 
    775657                        else if(data == "many results"){alert(get_lang("More than %1 results. Please, try to refine your search.",50));} 
    776                         else{EsearchE.mount_result((data=='none')?tmp:(countTmp.length==0)?data:data+tmp);} 
     658                        else{EsearchE.mount_result(data);} 
    777659                } 
    778660                var args   = "$this.imap_functions.search_msg"; 
Note: See TracChangeset for help on using the changeset viewer.