Ignore:
Timestamp:
09/13/11 10:21:50 (13 years ago)
Author:
diogenesduarte
Message:

Ticket #2234 - Ordenando pesquisa em mensagens locais, igual a ordenação em não locais.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2/expressoMail1_2/js/local_messages.js

    r4857 r5086  
    913913} 
    914914 
    915 local_messages.prototype.search = function(folders,sFilter) { 
     915local_messages.prototype.search = function(folders,sFilter,sortType) { 
    916916    this.init_local_messages(); 
    917917    this.setFilter(sFilter); 
     
    958958        } 
    959959    } 
    960     var sql = "select mail.header,folder.folder,mail.rowid,size from mail inner join folder on mail.id_folder=folder.rowid where mail.uid_usuario="+account_id + " and folder.folder in ("; 
     960    var sql = "select mail.header,folder.folder,mail.rowid,size"; 
     961    var order; 
     962    if(sortType) { 
     963        var sort_splited = sortType.split("_"); 
     964         
     965        //Preparando o select caso tenha order from 
     966        if(sort_splited[0]=="SORTWHO") { 
     967                sql+=',case when ltrim(ltrim(substr(UPPER(ffrom),21,length(mail.ffrom)),\':\'),\'"\')  like \'5:%\' then ' + 
     968            'substr(ltrim(ltrim(substr(UPPER(mail.ffrom),21,length(mail.ffrom)),\':\'),\'"\'),17) ' + 
     969            'else ' + 
     970            'ltrim(ltrim(substr(UPPER(mail.ffrom),21,length(mail.ffrom)),\':\'),\'"\') ' + 
     971            'end as order_from'; 
     972            } 
     973         
     974        order=" order by "; 
     975        switch (sort_splited[0]) { 
     976                case "SORTBOX": 
     977                        order+= "folder.folder "; 
     978                        break; 
     979                case "SORTWHO": 
     980                        order+="order_from "; 
     981                        break; 
     982                case "SORTSUBJECT": 
     983                        order+="UPPER(mail.subject) "; 
     984                        break; 
     985                case "SORTDATE": 
     986                        order+="mail.timestamp "; 
     987                        break; 
     988                case "SORTSIZE": 
     989                        order+="mail.size "; 
     990                        break; 
     991        } 
     992        if(sort_splited[1]=='REVERSE') 
     993                order+="desc"; 
     994     
     995     
     996 
     997    } 
     998    else { 
     999        order = " "; 
     1000    } 
     1001    sql+=" from mail inner join folder on mail.id_folder=folder.rowid where mail.uid_usuario="+account_id + " and folder.folder in ("; 
    9611002    for(var fnum in folders) { 
    9621003        sql+="'"+folders[fnum]+"'"; 
     
    9901031    } 
    9911032    sql += ")"; 
     1033    sql += order; 
     1034     
     1035         
    9921036    var rs = this.dbGears.execute(sql); 
    9931037    var retorno = []; 
Note: See TracChangeset for help on using the changeset viewer.