Changeset 3709


Ignore:
Timestamp:
01/19/11 15:54:00 (13 years ago)
Author:
alexandrecorreia
Message:

Ticket #1485 - Correcao para pesquisa rapida de mensagens com palavra acentuada.

Location:
branches/2.2/expressoMail1_2
Files:
2 edited

Legend:

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

    r3589 r3709  
    33953395                                            { 
    33963396                                                // Remove accents from criteria, because method remove accents is broken. 
    3397                                                 $filter .= '"'.strtr($filter_array[1], 
    3398                                                     "áàâãäéèêëíìîïóòôõöúùûüçÁÀÂÃÄÉÈÊËÍÌÎÏÓÒÔÕÖÚÙÛÜÇ", 
    3399                                                     "aaaaaeeeeiiiiooooouuuucAAAAAEEEEIIIIOOOOOUUUUC").'"'; 
     3397                                                $a = 'áàâãäéèêëíìîïóòôõöúùûüçÁÀÂÃÄÉÈÊËÍÌÎÏÓÒÔÕÖÚÙÛÜÇ'; 
     3398                                                $b = 'aaaaaeeeeiiiiooooouuuucAAAAAEEEEIIIIOOOOOUUUUC'; 
     3399                                                $filter .= '"'.strtr($filter_array[1], $a, $b).'"'; 
    34003400                                            } 
    34013401                                            else { 
  • branches/2.2/expressoMail1_2/js/search.js

    r3682 r3709  
    134134                                                        + '     <label>'+get_lang("Since Date")+':</label>' 
    135135                                                        + '     <input style="margin-left: 6px;" type="text" id="since_date" size="8">' 
    136                                                         + '     <img id="since_date-trigger" src="/phpgwapi/templates/default/images/datepopup.gif" title="'+get_lang("Select Date")+'" style="cursor:pointer; cursor:hand;"/>' 
     136                                                        + '     <img id="since_date-trigger" src="../phpgwapi/templates/default/images/datepopup.gif" title="'+get_lang("Select Date")+'" style="cursor:pointer; cursor:hand;"/>' 
    137137                                                        + '     <label style="margin-left: 20px;">'+get_lang('Before Date')+':</label>' 
    138138                                                        + '     <input style="margin-left: 6px;" type="text" id="before_date" size="8">' 
    139                                                         + '     <img id="before_date-trigger" src="/phpgwapi/templates/default/images/datepopup.gif" title="'+get_lang("Select Date")+'" style="cursor:pointer; cursor:hand;"/>' 
     139                                                        + '     <img id="before_date-trigger" src="../phpgwapi/templates/default/images/datepopup.gif" title="'+get_lang("Select Date")+'" style="cursor:pointer; cursor:hand;"/>' 
    140140                                                        + '     <br style="margin-bottom:15px"/>' 
    141141 
    142142                                                        + '     <label>'+get_lang('On Date')+':</label>' 
    143143                                                        + '     <input style="margin-left: 6px;" type="text" id="on_date" size="8">' 
    144                                                         + '     <img style="margin-right: -8px" id="on_date-trigger" src="/phpgwapi/templates/default/images/datepopup.gif" title="'+get_lang("Select Date")+'" style="cursor:pointer; cursor:hand;"/>&nbsp;&nbsp;</spam>' 
     144                                                        + '     <img style="margin-right: -8px" id="on_date-trigger" src="../phpgwapi/templates/default/images/datepopup.gif" title="'+get_lang("Select Date")+'" style="cursor:pointer; cursor:hand;"/>&nbsp;&nbsp;</spam>' 
    145145                                                        + '     <br style="margin-bottom:30px"/>' 
    146146 
     
    841841                        // Verifica se os campos estão preenchidos; 
    842842                        if(trim(Element("txt_ass").value) != ""){ 
    843                                 fields += "SUBJECT " +  "<=>" +encodeURIComponent(Element("txt_ass").value) + "##"; 
     843                                fields += "SUBJECT " +  "<=>" +url_encode(Element("txt_ass").value) + "##"; 
    844844                        } 
    845845                        if(trim(Element("txt_body").value) != ""){ 
    846                                 fields += "BODY " + "<=>" + encodeURIComponent(Element("txt_body").value) + "##"; 
     846                                fields += "BODY " + "<=>" + url_encode(Element("txt_body").value) + "##"; 
    847847                        } 
    848848                        if(trim(Element("txt_de").value) != ""){ 
    849                                 fields += "FROM " + "<=>" + encodeURIComponent(Element("txt_de").value) + "##"; 
     849                                fields += "FROM " + "<=>" + url_encode(Element("txt_de").value) + "##"; 
    850850                        } 
    851851                        if(trim(Element("txt_para").value) != ""){ 
    852                                 fields += "TO " + "<=>" + encodeURIComponent(Element("txt_para").value) + "##"; 
     852                                fields += "TO " + "<=>" + url_encode(Element("txt_para").value) + "##"; 
    853853                        } 
    854854                        if(trim(Element("txt_cc").value) != ""){ 
    855                                 fields += "CC " + "<=>" + encodeURIComponent(Element("txt_cc").value) + "##"; 
    856                         } 
    857                         if (trim(Element("since_date").value) != ""){ 
    858                             if (validate_date(Element("since_date").value)) 
    859                             { 
    860                                 fields += "SINCE " + "<=>" + encodeURIComponent(Element("since_date").value) + "##"; 
    861                             } 
    862                             else 
    863                                 { 
    864                                     alert(get_lang('Invalid date on field %1'), get_lang('Since Date')); 
    865                                     return false; 
    866                                 } 
    867                         } 
    868                         if (trim(Element("before_date").value) != ""){ 
    869                             if (validate_date(Element("before_date").value)) 
    870                             { 
    871                                 fields += "BEFORE " + "<=>" + encodeURIComponent(Element("before_date").value) + "##"; 
    872                             } 
    873                             else 
    874                                 { 
    875                                     alert(get_lang('Invalid date on field %1'), get_lang('Before Date')); 
    876                                     return false; 
    877                                 } 
    878                         } 
    879                         if(trim(Element("on_date").value) != ""){ 
    880                             if (validate_date(Element("on_date").value)) 
    881                             { 
    882                                 fields += "ON " + "<=>" + encodeURIComponent(Element("on_date").value) + "##"; 
    883                             } 
    884                             else 
    885                                 { 
    886                                     alert(get_lang('Invalid date on field %1'), get_lang('On Date')); 
    887                                     return false; 
    888                                 } 
    889  
    890                         } 
    891                         if(trim(Element("flagged").options[Element("flagged").selectedIndex].value) != ""){ 
    892                             if (Element("flagged").options[Element("flagged").selectedIndex].value == "FLAGGED"){ 
    893                                 fields += "FLAGGED##"; 
    894                             } 
    895                             else { 
    896                                 fields += "UNFLAGGED##"; 
    897                             } 
    898                         } 
    899                         if(trim(Element("seen").options[Element("seen").selectedIndex].value) != ""){ 
    900                             if (Element("seen").options[Element("seen").selectedIndex].value == "SEEN"){ 
    901                                 fields += "SEEN##"; 
    902                             } 
    903                             else { 
    904                                 fields += "UNSEEN##"; 
    905                             } 
    906                         } 
    907                         if(trim(Element("answered").options[Element("answered").selectedIndex].value) != ""){ 
    908                             //switch (Element("answered").options[Element("answered").selectedIndex].value){ 
    909                             //    case "FORWARDED": 
    910                             //        fields += "ANSWERED##DRAFT##"; 
    911                             //        break; 
    912                             //    case "ANSWERED": 
    913                             //        fields += "ANSWERED##UNDRAFT"; 
    914                             //        break; 
    915                             //    case "UNFORWARDED": 
    916                             //        fields += "UNDRAFT##"; 
    917                             //    case "UNANSWERED": 
    918                             //        fields += "UNANSWERED##"; 
    919                             //} 
    920                             if (Element("answered").options[Element("answered").selectedIndex].value == "ANSWERED"){ 
    921                                 fields += "ANSWERED##"; 
    922                             } 
    923                             else { 
    924                                 fields += "UNANSWERED##"; 
    925                             } 
    926                         } 
    927                         if(trim(Element("recent").options[Element("recent").selectedIndex].value) != ""){ 
    928                             if (Element("answered").options[Element("answered").selectedIndex].value == "RECENT"){ 
    929                                 fields += "RECENT##"; 
    930                             } 
    931                             else { 
    932                                 fields += "OLD##"; 
    933                             } 
    934                         } 
    935                         if(value) { 
    936                                 fields = "##ALL " +  "<=>" +encodeURIComponent(value) + "##"; 
    937                         } 
    938  
    939                 if(fields == "##"){ 
    940                         alert(get_lang("Define some search parameters!")); 
    941                         return false; 
    942                 } 
    943                 var local_folders = new Array(); 
    944                 var temp; 
    945  
    946                 if(Element("check_all_msg").checked){ 
    947                         this.all_mailboxes(); 
    948                         var nm_box = new Array; 
    949                         for(var i=0; i < EsearchE.all_boxes.length; i++){ 
    950                                 nm_box[i] = EsearchE.all_boxes[i] + fields; 
    951                         } 
    952                         if (preferences.use_local_messages == 1) { 
    953                                 temp = expresso_local_messages.list_local_folders(); 
    954                                 for (var x in temp) { 
    955                                         local_folders.push(temp[x][0]); 
    956                                 } 
    957                         } 
    958                 }else{ 
    959                         var nm_box = new Array; 
    960                         var sel_combo = Element("sel_search_nm_box1"); 
    961                         if( sel_combo.options.length <= 0){ 
    962                                 alert(get_lang("Define the boxes to search!")); 
     855                                fields += "CC " + "<=>" + url_encode(Element("txt_cc").value) + "##"; 
     856                        } 
     857            if (trim(Element("since_date").value) != ""){ 
     858                if (validate_date(Element("since_date").value)) 
     859                { 
     860                    fields += "SINCE " + "<=>" + url_encode(Element("since_date").value) + "##"; 
     861                } 
     862                else 
     863                { 
     864                    alert(get_lang('Invalid date on field %1'), get_lang('Since Date')); 
     865                    return false; 
     866                } 
     867            } 
     868            if (trim(Element("before_date").value) != ""){ 
     869                if (validate_date(Element("before_date").value)) 
     870                { 
     871                    fields += "BEFORE " + "<=>" + url_encode(Element("before_date").value) + "##"; 
     872                } 
     873                else 
     874                { 
     875                    alert(get_lang('Invalid date on field %1'), get_lang('Before Date')); 
     876                    return false; 
     877                } 
     878            } 
     879            if(trim(Element("on_date").value) != ""){ 
     880                if (validate_date(Element("on_date").value)) 
     881                { 
     882                    fields += "ON " + "<=>" + url_encode(Element("on_date").value) + "##"; 
     883                } 
     884                else 
     885                { 
     886                    alert(get_lang('Invalid date on field %1'), get_lang('On Date')); 
     887                    return false; 
     888                } 
     889 
     890            } 
     891            if(trim(Element("flagged").options[Element("flagged").selectedIndex].value) != ""){ 
     892                if (Element("flagged").options[Element("flagged").selectedIndex].value == "FLAGGED") 
     893                { 
     894                    fields += "FLAGGED##"; 
     895                } 
     896                else 
     897                { 
     898                    fields += "UNFLAGGED##"; 
     899                } 
     900            } 
     901            if(trim(Element("seen").options[Element("seen").selectedIndex].value) != "") 
     902            { 
     903                if (Element("seen").options[Element("seen").selectedIndex].value == "SEEN") 
     904                { 
     905                    fields += "SEEN##"; 
     906                } 
     907                else 
     908                { 
     909                    fields += "UNSEEN##"; 
     910                } 
     911            } 
     912             
     913            if(trim(Element("answered").options[Element("answered").selectedIndex].value) != "") 
     914            { 
     915                //switch (Element("answered").options[Element("answered").selectedIndex].value){ 
     916                //    case "FORWARDED": 
     917                //        fields += "ANSWERED##DRAFT##"; 
     918                //        break; 
     919                //    case "ANSWERED": 
     920                //        fields += "ANSWERED##UNDRAFT"; 
     921                //        break; 
     922                //    case "UNFORWARDED": 
     923                //        fields += "UNDRAFT##"; 
     924                //    case "UNANSWERED": 
     925                //        fields += "UNANSWERED##"; 
     926                //} 
     927                if (Element("answered").options[Element("answered").selectedIndex].value == "ANSWERED"){ 
     928                    fields += "ANSWERED##"; 
     929                } 
     930                else { 
     931                    fields += "UNANSWERED##"; 
     932                } 
     933            } 
     934            if(trim(Element("recent").options[Element("recent").selectedIndex].value) != "") 
     935            { 
     936                if (Element("answered").options[Element("answered").selectedIndex].value == "RECENT") 
     937                { 
     938                    fields += "RECENT##"; 
     939                } 
     940                else 
     941                { 
     942                    fields += "OLD##"; 
     943                } 
     944            } 
     945                         
     946            if( value ) 
     947            { 
     948                                fields = "##ALL " +  "<=>" +url_encode(value) + "##"; 
     949                        } 
     950 
     951                        if( fields == "##" ) 
     952                        { 
     953                                alert(get_lang("Define some search parameters!")); 
    963954                                return false; 
    964955                        } 
    965  
    966                         for(var i=0; i < sel_combo.options.length; i++){ 
    967                                 sel_combo.options[i].selected = true; 
    968                         } 
    969                         for(var i=0; i < sel_combo.options.length; i++){ 
    970                                 if(sel_combo.options[i].selected == true){ 
    971                                         if(!proxy_mensagens.is_local_folder(sel_combo.options[i].value)) 
    972                                                 nm_box[nm_box.length] = sel_combo.options[i].value + fields; 
    973                                         else 
    974                                                 local_folders.push(sel_combo.options[i].value.substr(6)); 
    975                                 } 
    976                         } 
    977                 } 
    978                 var handler = function(data){ 
    979                         var tmp; 
    980                         var countTmp= new Array(); 
    981  
    982                         var dataTemp = data.split('=sumResults='); 
    983                         var sumResults = dataTemp[0]; 
    984  
    985                         var data = dataTemp[1] ? dataTemp[1] : dataTemp[0]; 
    986  
    987                         if (local_folders.length > 0) { 
    988                                 tmp = expresso_local_messages.search(local_folders, fields); 
    989                                 if (tmp!=false) { 
    990                                         var tmp2 = tmp.substr(2, data.length - 4); 
    991                                         countTmp = tmp.split('####'); 
    992                                 } 
    993                         } 
    994                         if ((sumResults == "none") && (countTmp.length==0)){ 
    995                             alert(get_lang("None result was found.")); 
    996                         } 
    997                         else 
    998                         { 
    999                             EsearchE.mount_result((sumResults=='none')?tmp:(countTmp.length==0)?data:data+tmp); 
    1000                         } 
    1001  
    1002                 } 
    1003                 var args   = "$this.imap_functions.search_msg"; 
    1004                 var params = "condition=" + nm_box; 
    1005                 if(expresso_offline) 
    1006                         handler('none'); 
    1007                 else 
    1008                         cExecute(args,handler,params); 
     956                         
     957                        var local_folders = new Array(); 
     958                        var temp; 
     959 
     960                        if( Element("check_all_msg").checked ) 
     961                        { 
     962                                this.all_mailboxes(); 
     963                                var nm_box = new Array; 
     964                                for(var i=0; i < EsearchE.all_boxes.length; i++) 
     965                                { 
     966                                        nm_box[i] = EsearchE.all_boxes[i] + fields; 
     967                                } 
     968                                 
     969                                if ( preferences.use_local_messages == 1) 
     970                                { 
     971                                        temp = expresso_local_messages.list_local_folders(); 
     972                                        for (var x in temp) 
     973                                        { 
     974                                                local_folders.push(temp[x][0]); 
     975                                        } 
     976                                } 
     977                        } 
     978                        else 
     979                        { 
     980                                var nm_box = new Array; 
     981                                var sel_combo = Element("sel_search_nm_box1"); 
     982                                if( sel_combo.options.length <= 0){ 
     983                                        alert(get_lang("Define the boxes to search!")); 
     984                                        return false; 
     985                                } 
     986         
     987                                for(var i=0; i < sel_combo.options.length; i++) 
     988                                { 
     989                                        sel_combo.options[i].selected = true; 
     990                                } 
     991                                for(var i=0; i < sel_combo.options.length; i++) 
     992                                { 
     993                                        if(sel_combo.options[i].selected == true) 
     994                                        { 
     995                                                if(!proxy_mensagens.is_local_folder(sel_combo.options[i].value)) 
     996                                                        nm_box[nm_box.length] = sel_combo.options[i].value + fields; 
     997                                                else 
     998                                                        local_folders.push(sel_combo.options[i].value.substr(6)); 
     999                                        } 
     1000                                } 
     1001                        } 
     1002                        var handler = function(data){ 
     1003                                var tmp; 
     1004                                var countTmp= new Array(); 
     1005         
     1006                                var dataTemp = data.split('=sumResults='); 
     1007                                var sumResults = dataTemp[0]; 
     1008         
     1009                                var data = dataTemp[1] ? dataTemp[1] : dataTemp[0]; 
     1010         
     1011                                if ( local_folders.length > 0 ) 
     1012                                { 
     1013                                        tmp = expresso_local_messages.search(local_folders, fields); 
     1014                                        if ( tmp!=false ) 
     1015                                        { 
     1016                                                var tmp2 = tmp.substr(2, data.length - 4); 
     1017                                                countTmp = tmp.split('####'); 
     1018                                        } 
     1019                                } 
     1020                 
     1021                                if ((sumResults == "none") && (countTmp.length==0)){ 
     1022                    alert(get_lang("None result was found.")); 
     1023                } 
     1024                else 
     1025                { 
     1026                    EsearchE.mount_result((sumResults=='none')?tmp:(countTmp.length==0)?data:data+tmp); 
     1027                } 
     1028         
     1029                        } 
     1030                         
     1031                        var args   = "$this.imap_functions.search_msg"; 
     1032                        var params = "condition=" + nm_box; 
     1033                         
     1034                        if(expresso_offline) 
     1035                                handler('none'); 
     1036                        else 
     1037                        { 
     1038                                cExecute(args,handler,params); 
     1039                        } 
    10091040        } 
    10101041        // clean; 
Note: See TracChangeset for help on using the changeset viewer.