Ignore:
Timestamp:
01/19/10 17:02:39 (14 years ago)
Author:
eduardoalex
Message:

Ticket #841 - Resolvendo o problema descrito no ticket em questao

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/js/local_messages.js

    r1806 r1938  
    161161                ' (id_folder text,folder_name text,uid_usuario int)'); 
    162162                this.dbGears.execute('create table if not exists msgs_to_remove (id_msg int,folder text,uid_usuario int)'); 
     163                this.dbGears.execute('create index if not exists idx_user3 on mail (id_folder,uid_usuario,timestamp)'); 
    163164 
    164165                //some people that used old version of local messages could not have the size column. If it's the first version 
     
    415416                        filter = "and header like '%\"Answered\";s:1:\"A%' "; 
    416417                } 
    417                 sql = 'select rowid,header,size,timestamp,unseen,body from ('; 
    418                 sql += 'select mail.rowid as rowid,mail.header as header,mail.size as size,mail.timestamp as timestamp,mail.unseen as unseen,mail.body as body,ltrim(ltrim(substr(UPPER(ffrom),21,length(ffrom)),\':\'),\'"\') as order_from,mail.subject from mail inner join folder on mail.id_folder=folder.rowid where mail.uid_usuario=? and folder.folder=? and lower(mail.ffrom) not like lower(?) '; 
    419                 sql += filter; 
    420                 sql += 'union '; 
    421                 sql += 'select mail.rowid as rowid,mail.header as header,mail.size as size,mail.timestamp as timestamp,mail.unseen as unseen,mail.body as body,ltrim(ltrim(substr(UPPER(fto),7,length(fto)),\':\'),\'"\') as order_from,mail.subject from mail inner join folder on mail.id_folder=folder.rowid where mail.uid_usuario=? and folder.folder=? and lower(mail.ffrom) like lower(?) '; 
    422                 sql += filter; 
    423                 sql += ') order by ' 
     418                 
     419                sql = 'select mail.rowid as rowid,mail.header as header,mail.size as size,mail.timestamp as timestamp,mail.unseen as unseen,mail.body as body,case when lower(mail.ffrom) like ? then ltrim(ltrim(substr(UPPER(ffrom),21,length(ffrom)),\':\'),\'"\') else ltrim(ltrim(substr(UPPER(fto),7,length(fto)),\':\'),\'"\') end as order_from,mail.subject from mail inner join folder on mail.id_folder=folder.rowid where mail.uid_usuario=? and folder.folder=? order by ' 
    424420                 
    425421                if(sort == 'SORTFROM') { 
     
    441437 
    442438 
    443                 var rs = this.dbGears.execute(sql,[account_id,folder,'%'+Element("user_email").value+'%',account_id,folder,'%'+Element("user_email").value+'%',msg_range_begin,emails_per_page]); 
     439                var rs = this.dbGears.execute(sql,['%'+Element("user_email").value+'%',account_id,folder,msg_range_begin,emails_per_page]); 
    444440                var cont = 0; 
    445441                 
     
    662658                this.init_local_messages(); 
    663659                var retorno = new Array(); 
    664                 rs = this.dbGears.execute("select folder.folder,sum(mail.unseen) from folder left join mail on "+ 
    665                                 "folder.rowid=mail.id_folder where folder.uid_usuario=? group by folder.folder",[account_id]); 
     660                rs = this.dbGears.execute("select folder,rowid from folder where uid_usuario=?",[account_id]); 
    666661                while(rs.isValidRow()) { 
    667662                        var temp = new Array(); 
    668663                        temp[0] = rs.field(0); 
    669                         temp[1] = rs.field(1); 
    670                         var rs2 = this.dbGears.execute("select * from folder where folder like ?",["%"+temp[0]+"/%"]); 
    671                         if(rs2.isValidRow()) 
     664                         
     665                        var rs2 = this.dbGears.execute("select count(*) from mail where id_folder=? and unseen=1",[rs.field(1)]); 
     666                        temp[1] = rs2.field(0);                  
     667 
     668                        var rs3 = this.dbGears.execute("select * from folder where folder like ? limit 1",[temp[0]+"/%"]); 
     669                        if(rs3.isValidRow()) 
    672670                                temp[2] = 1; 
    673671                        else 
Note: See TracChangeset for help on using the changeset viewer.