Changeset 1938


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

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

Location:
trunk/expressoMail1_2/js
Files:
3 edited

Legend:

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

    r1912 r1938  
    117117                        cExecute ("$this.imap_functions.get_folders_list&folder="+current_folder, update_tree_folders); 
    118118                } 
    119  
    120                 /** 
    121                  * Pastas locais 
    122                  */ 
    123                 if(preferences.use_local_messages==1 || expresso_offline) { 
    124                         var local_folders = expresso_local_messages.list_local_folders(); 
    125                         var has_changes = false; 
    126                         for (var i in local_folders) { //Coloca as pastas locais. 
    127                                  
    128                                 var new_caption = local_folders[i][0]; 
    129                                 if(local_folders[i][0].indexOf("/")!="-1") { 
    130                                         final_pos = local_folders[i][0].lastIndexOf("/"); 
    131                                         new_caption = local_folders[i][0].substr(final_pos+1); 
    132                                 } 
    133                                  
    134                                 var folder_unseen = Element('dftree_local_'+local_folders[i][0]+'_unseen'); 
    135                                  
    136                                 if ((folder_unseen) && (local_folders[i][1] > 0)) 
    137                                 { 
    138                                         folder_unseen.innerHTML = local_folders[i][1]; 
    139                                         has_changes = true; 
    140                                 } 
    141                                 else if (local_folders[i][1] > 0) 
    142                                 { 
    143                                         tree_folders.getNodeById("local_"+local_folders[i][0]).alter({caption:lang_folder(new_caption) + '<font style=color:red>&nbsp(</font><span id="dftree_local_'+local_folders[i][0]+'_unseen" style=color:red>'+local_folders[i][1]+'</span><font style=color:red>)</font>'}); 
    144                                         tree_folders.getNodeById("local_"+local_folders[i][0])._refresh(); 
    145                                         has_changes = true; 
    146                                 } 
    147                                 else if (local_folders[i][1] <= 0) 
    148                                 { 
    149                                         tree_folders.getNodeById("local_"+local_folders[i][0]).alter({caption:lang_folder(new_caption)}); 
    150                                         tree_folders.getNodeById("local_"+local_folders[i][0])._refresh(); 
    151                                         has_changes = true; 
    152                                 } 
    153          
    154                                 if("local_"+local_folders[i][0] == get_current_folder()){                                        
    155                                         var old_new_m = isNaN(parseInt(Element('new_m').innerHTML)) ? parseInt(Element('new_m').firstChild.innerHTML) : parseInt(Element('new_m').innerHTML); 
    156                                         if(!isNaN(old_new_m) && old_new_m < local_folders[i][1]){ 
    157                                                 Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + (parseInt(local_folders[i][1])-old_new_m); 
    158                                         } 
    159                                         Element('new_m').innerHTML = local_folders[i][1] ? '<font color="RED">'+local_folders[i][1]+'</font>' : 0; 
    160                                         draw_paging(Element('tot_m').innerHTML); 
    161                                         has_changes = true; 
    162                                 } 
    163                         } 
    164                         if(has_changes) 
    165                                 tree_folders.getNodeById("local_root").open(); 
    166  
    167                 } 
    168                  
     119         
    169120                return; 
    170121        } 
     
    372323                } 
    373324        } 
     325} 
     326 
     327function draw_tree_local_folders() { 
     328        /** 
     329         * Pastas locais 
     330         */ 
     331        if(preferences.use_local_messages==1 || expresso_offline) { 
     332                var local_folders = expresso_local_messages.list_local_folders(); 
     333                var has_changes = false; 
     334                for (var i in local_folders) { //Coloca as pastas locais. 
     335                         
     336                        var new_caption = local_folders[i][0]; 
     337                        if(local_folders[i][0].indexOf("/")!="-1") { 
     338                                final_pos = local_folders[i][0].lastIndexOf("/"); 
     339                                new_caption = local_folders[i][0].substr(final_pos+1); 
     340                        } 
     341                         
     342                        var folder_unseen = Element('dftree_local_'+local_folders[i][0]+'_unseen'); 
     343                         
     344                        if ((folder_unseen) && (local_folders[i][1] > 0)) 
     345                        { 
     346                                folder_unseen.innerHTML = local_folders[i][1]; 
     347                                has_changes = true; 
     348                        } 
     349                        else if (local_folders[i][1] > 0) 
     350                        { 
     351                                tree_folders.getNodeById("local_"+local_folders[i][0]).alter({caption:lang_folder(new_caption) + '<font style=color:red>&nbsp(</font><span id="dftree_local_'+local_folders[i][0]+'_unseen" style=color:red>'+local_folders[i][1]+'</span><font style=color:red>)</font>'}); 
     352                                tree_folders.getNodeById("local_"+local_folders[i][0])._refresh(); 
     353                                has_changes = true; 
     354                        } 
     355                        else if (local_folders[i][1] <= 0) 
     356                        { 
     357                                tree_folders.getNodeById("local_"+local_folders[i][0]).alter({caption:lang_folder(new_caption)}); 
     358                                tree_folders.getNodeById("local_"+local_folders[i][0])._refresh(); 
     359                                has_changes = true; 
     360                        } 
     361 
     362                        if("local_"+local_folders[i][0] == get_current_folder()){                                        
     363                                var old_new_m = isNaN(parseInt(Element('new_m').innerHTML)) ? parseInt(Element('new_m').firstChild.innerHTML) : parseInt(Element('new_m').innerHTML); 
     364                                if(!isNaN(old_new_m) && old_new_m < local_folders[i][1]){ 
     365                                        Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + (parseInt(local_folders[i][1])-old_new_m); 
     366                                } 
     367                                Element('new_m').innerHTML = local_folders[i][1] ? '<font color="RED">'+local_folders[i][1]+'</font>' : 0; 
     368                                draw_paging(Element('tot_m').innerHTML); 
     369                                has_changes = true; 
     370                        } 
     371                } 
     372                if(has_changes) 
     373                        tree_folders.getNodeById("local_root").open(); 
     374 
     375        }        
    374376} 
    375377 
  • 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 
  • trunk/expressoMail1_2/js/messages_proxy.js

    r1752 r1938  
    1414                        var msgs = expresso_local_messages.get_local_range_msgs(real_folder,msg_range_begin,preferences.max_email_per_page,sort_box_type,sort_box_reverse,search_box_type,preferences.preview_msg_subject,preferences.preview_msg_tip); 
    1515                        eval('call_back(msgs)'); 
     16                        draw_tree_local_folders(); 
    1617                }else { 
    1718                        cExecute ("$this.imap_functions.get_range_msgs2&folder="+folder+"&msg_range_begin="+msg_range_begin+"&msg_range_end="+emails_per_page+"&sort_box_type="+sort_box_type+ "&search_box_type="+ search_box_type +"&sort_box_reverse="+sort_box_reverse+"", call_back); 
     
    3940                if (!this.is_local_folder(folder))  
    4041                        delete_msgs(folder, msgs_number, border_ID); 
    41                 else  
    42                         expresso_local_messages.delete_msgs(msgs_number,border_ID); 
     42                else { 
     43                        expresso_local_messages.delete_msgs(msgs_number, border_ID); 
     44                        draw_tree_local_folders(); 
     45                } 
    4346        } 
    4447         
     
    133136                        if (!temp)  
    134137                                alert(get_lang("cannot create folder. try other folder name")); 
    135                         ttreeBox.update_folder(); 
     138                        draw_tree_local_folders(); 
    136139                } 
    137140                else                     
     
    166169                                expresso_local_messages.remove_folder(ttree.FOLDER.substr(6)); 
    167170                                alert(get_lang("The folder %1 was successfully removed", new_caption)); 
    168                                 ttreeBox.update_folder(); 
     171                                draw_tree_local_folders(); 
    169172                        } 
    170173                } 
     
    189192                                expresso_local_messages.move_messages(new_folder.substr(6), msgs_number); 
    190193                                this.aux_interface_remove_mails(msgs_number, new_folder_name, border_ID); 
     194                                draw_tree_local_folders(); 
    191195                        } 
    192196                        else  
     
    202206                                else 
    203207                                        archive_msgs(folder,new_folder,msgs_number); 
     208                                draw_tree_local_folders(); 
    204209                        } 
    205210                        else { 
Note: See TracChangeset for help on using the changeset viewer.