Changeset 2747


Ignore:
Timestamp:
05/10/10 10:52:29 (14 years ago)
Author:
amuller
Message:

Ticket #1059 - Corrigindo problemas de requisições que trazem valores desatualizados

Location:
trunk/expressoMail1_2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/inc/class.imap_functions.inc.php

    r2739 r2747  
    117117                $return = array(); 
    118118                $i = 0; 
    119                 $num_msgs = imap_num_msg($this->mbox); 
     119                $status = imap_status($this->mbox, 
     120                        "{".$this->email_server['imapServer'].":".$this->email_server['imapPort'].$this->imap_options."}".$folder, 
     121                        SA_MESSAGES + SA_UNSEEN); 
    120122                if(is_array($sort_array_msg)){ 
    121123                        foreach($sort_array_msg as $msg_number => $value) 
     
    132134                        } 
    133135                } 
    134                 $return['num_msgs'] = $num_msgs; 
     136                $return['num_msgs'] = $status->messages; 
     137                $return['num_unseen'] = $status->unseen; 
    135138 
    136139                return $return; 
     
    23212324        } 
    23222325 
    2323         function messages_sort($sort_box_type,$sort_box_reverse, $search_box_type,$offsetBegin,$offsetEnd) 
     2326        function messages_sort($sort_box_type, $sort_box_reverse, $search_box_type, $offsetBegin, $offsetEnd) 
    23242327        { 
    23252328                if ($sort_box_type != "SORTFROM" && $search_box_type!= "FLAGGED"){ 
  • trunk/expressoMail1_2/index.php

    r2648 r2747  
    154154$GLOBALS[ 'phpgw' ] -> js -> validate_file( 'jscode', 'drag_area', 'expressoMail1_2' ); 
    155155$GLOBALS[ 'phpgw' ] -> js -> validate_file( 'jscode', 'draw_api_messages', 'expressoMail1_2' ); 
     156$GLOBALS[ 'phpgw' ] -> js -> validate_file( 'jscode', 'messages', 'expressoMail1_2' ); 
    156157$GLOBALS[ 'phpgw' ] -> js -> validate_file( 'jscode', 'draw_api_folders', 'expressoMail1_2' ); 
    157158$GLOBALS[ 'phpgw' ] -> js -> validate_file( 'jscode', 'DropDownContacts', 'expressoMail1_2' ); 
  • trunk/expressoMail1_2/js/jscode/common_functions.js

    r2692 r2747  
    7676        tr_message = Element(msg_number); 
    7777        if (exist_className(tr_message, 'tr_msg_unread')) 
    78                 decrement_folder_unseen(); 
     78                decrement_folder_unseen(1); 
    7979        remove_className(tr_message, 'tr_msg_unread'); 
    8080        remove_className(tr_message, 'selected_msg'); 
     
    9292        tr_message = Element(msg_number); 
    9393        if ((exist_className(tr_message, 'tr_msg_read') || exist_className(tr_message, 'tr_msg_read2')) && (!exist_className(tr_message, 'tr_msg_unread'))) 
    94                 increment_folder_unseen();       
     94                increment_folder_unseen(1); 
    9595        remove_className(tr_message, 'selected_msg'); 
    9696        add_className(tr_message, 'tr_msg_unread'); 
     
    525525}; 
    526526 
    527 function increment_folder_unseen(){ 
     527function increment_folder_unseen(num){ 
     528        if (num < 0) 
     529                return decrement_folder_unseen(num*-1); 
     530        else if(num == 0) 
     531                return; 
    528532        var folder_id = get_current_folder(); 
    529533 
    530534        var folder_unseen = Element('dftree_'+folder_id+'_unseen'); 
    531535        var abas_unseen = Element('new_m').innerHTML; 
    532         abas_unseen = abas_unseen.match( /[0-9]+/); 
     536        abas_unseen = abas_unseen.match(/[0-9]+/); 
    533537 
    534538        if (folder_unseen) 
    535539        { 
    536                 folder_unseen.innerHTML = (parseInt(folder_unseen.innerHTML) + 1); 
     540                folder_unseen.innerHTML = (parseInt(folder_unseen.innerHTML) + num); 
    537541        } 
    538542        else 
    539543        { 
    540                 tree_folders.getNodeById(folder_id).alter({caption: tree_folders.getNodeById(current_folder).caption + '<font style=color:red>&nbsp(</font><span id="dftree_'+current_folder+'_unseen" style=color:red>1</span><font style=color:red>)</font>'}); 
     544                tree_folders.getNodeById(folder_id).alter({caption: tree_folders.getNodeById(current_folder).caption + '<font style=color:red>&nbsp(</font><span id="dftree_'+current_folder+'_unseen" style=color:red>'+num+'</span><font style=color:red>)</font>'}); 
    541545                tree_folders.getNodeById(folder_id)._refresh(); 
    542546        } 
    543547        if (abas_unseen) 
    544548        { 
    545                 abas_unseen = parseInt(abas_unseen) + 1; 
     549                abas_unseen = parseInt(abas_unseen) + num; 
    546550                Element('new_m').innerHTML = '<font style="color:red">' + abas_unseen + '</font>'; 
    547551        } 
     
    549553                abas_unseen = Element('new_m').innerHTML; 
    550554                abas_unseen = abas_unseen.match( /[0-9]+/); 
    551                 abas_unseen = parseInt(abas_unseen) + 1; 
     555                abas_unseen = parseInt(abas_unseen) + num; 
    552556                Element('new_m').innerHTML = '<font style="color:red">' + abas_unseen + '</font>'; 
    553557        } 
     
    556560                var display_unseen_in_shared_folders = Element('dftree_user_unseen'); 
    557561                if ( display_unseen_in_shared_folders ) 
    558                         tree_folders.getNodeById( 'user' ).alter({caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">' + ( parseInt( display_unseen_in_shared_folders.innerHTML) + 1 ) + '</span><font style=color:red>]</font>' + get_lang("Shared folders")}); 
     562                        tree_folders.getNodeById( 'user' ).alter({caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">' + ( parseInt( display_unseen_in_shared_folders.innerHTML) + num ) + '</span><font style=color:red>]</font>' + get_lang("Shared folders")}); 
    559563                else 
    560564                        tree_folders.getNodeById( 'user' ).alter({caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">1</span><font style=color:red>]</font>' + get_lang("Shared folders")}); 
     
    568572        tree_folders.getNodeById( node_to_refresh )._refresh(); 
    569573} 
    570 function decrement_folder_unseen(){ 
     574function decrement_folder_unseen(num){ 
    571575        var folder_id = get_current_folder(); 
    572576 
     
    578582                return; 
    579583 
    580         if ((folder_unseen) && (parseInt(folder_unseen.innerHTML) > 1)) 
    581         { 
    582                 folder_unseen.innerHTML = (parseInt(folder_unseen.innerHTML) - 1); 
    583         } 
    584         else if (parseInt(folder_unseen.innerHTML) <= 1) 
     584        if ((folder_unseen) && (parseInt(folder_unseen.innerHTML) > num)) 
     585        { 
     586                folder_unseen.innerHTML = (parseInt(folder_unseen.innerHTML) - num); 
     587        } 
     588        else if (parseInt(folder_unseen.innerHTML) <= num) 
    585589        { 
    586590                var tmp_folder_name = tree_folders.getNodeById(folder_id).caption.split('<'); 
     
    589593                tree_folders.getNodeById(folder_id)._refresh(); 
    590594        } 
    591         if ((abas_unseen) && (parseInt(abas_unseen) > 1)) 
     595        if ((abas_unseen) && (parseInt(abas_unseen) > num)) 
    592596        { 
    593                 abas_unseen = (parseInt(abas_unseen) - 1); 
     597                abas_unseen = (parseInt(abas_unseen) - num); 
    594598                Element('new_m').innerHTML = '<font style="color:red">' + abas_unseen + '</font>'; 
    595599        } 
  • trunk/expressoMail1_2/js/jscode/draw_api_folders.js

    r2745 r2747  
    427427} 
    428428 
    429 if("local_"+local_folders[i][0] == get_current_folder()){ 
    430         var old_new_m = isNaN(parseInt(Element('new_m').innerHTML)) ? parseInt(Element('new_m').firstChild.innerHTML) : parseInt(Element('new_m').innerHTML); 
    431         if(!isNaN(old_new_m) && old_new_m < local_folders[i][1]){ 
    432                 Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + (parseInt(local_folders[i][1])-old_new_m); 
    433         } 
    434         Element('new_m').innerHTML = local_folders[i][1] ? '<font color="RED">'+local_folders[i][1]+'</font>' : 0; 
    435         draw_paging(Element('tot_m').innerHTML); 
    436         has_changes = true; 
    437 } 
    438 } 
     429        if("local_"+local_folders[i][0] == get_current_folder()){ 
     430                var old_new_m = isNaN(parseInt(Element('new_m').innerHTML)) ? parseInt(Element('new_m').firstChild.innerHTML) : parseInt(Element('new_m').innerHTML); 
     431                if(!isNaN(old_new_m) && old_new_m < local_folders[i][1]){ 
     432                        Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + (parseInt(local_folders[i][1])-old_new_m); 
     433                } 
     434                Element('new_m').innerHTML = local_folders[i][1] ? '<font color="RED">'+local_folders[i][1]+'</font>' : 0; 
     435                draw_paging(Element('tot_m').innerHTML); 
     436                has_changes = true; 
     437                } 
     438        } 
    439439} 
    440440if(has_changes) 
     
    472472caption:lang_folder(data[i].folder_name) + '<font style=color:red>&nbsp(</font><span id="dftree_'+data[i].folder_id+'_unseen" style=color:red>'+data[i].folder_unseen+'</span><font style=color:red>)</font>' 
    473473}); 
    474 tree_folders.getNodeById(data[i].folder_id)._refresh(); 
    475 } 
    476 else if (data[i].folder_unseen <= 0) 
    477 { 
    478         tree_folders.getNodeById(data[i].folder_id).alter({ 
    479 caption:lang_folder(data[i].folder_name) 
    480 }); 
    481 tree_folders.getNodeById(data[i].folder_id)._refresh(); 
    482 } 
    483  
    484 if(data[i].folder_id == current_folder){ 
    485         var old_new_m = isNaN(parseInt(Element('new_m').innerHTML)) ? parseInt(Element('new_m').firstChild.innerHTML) : parseInt(Element('new_m').innerHTML); 
     474                                                tree_folders.getNodeById(data[i].folder_id)._refresh(); 
     475                                        } 
     476                                        else if (data[i].folder_unseen <= 0) 
     477                                        { 
     478                                        tree_folders.getNodeById(data[i].folder_id).alter({ 
     479                                        caption:lang_folder(data[i].folder_name) 
     480                                        }); 
     481                                        tree_folders.getNodeById(data[i].folder_id)._refresh(); 
     482                                        } 
     483                                        if(data[i].folder_id == current_folder){ 
     484                                        var old_new_m = isNaN(parseInt(Element('new_m').innerHTML)) ? parseInt(Element('new_m').firstChild.innerHTML) : parseInt(Element('new_m').innerHTML); 
    486485        //                                      if(!isNaN(old_new_m) && old_new_m < data[i].folder_unseen){ 
    487486        //                                              Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + (parseInt(data[i].folder_unseen)-old_new_m); 
    488487        //                                      } 
    489         Element('new_m').innerHTML = data[i].folder_unseen ? '<font color="RED">'+data[i].folder_unseen+'</font>' : 0; 
    490         draw_paging(Element('tot_m').innerHTML); 
    491 } 
    492 } 
    493  
    494 var display_unseen_in_mailbox = tree_folders.getNodeById( 'root' ); 
    495 //if ( unseen_in_mailbox ) 
    496 //      display_unseen_in_mailbox.alter({caption:'<font style=color:red>[</font><span id="dftree_root_unseen" style="color:red">' + unseen_in_mailbox +'</span><font style=color:red>]</font> ' + get_lang("My Folders")}); 
    497 //else 
    498 display_unseen_in_mailbox.alter({ 
    499 caption:get_lang("My Folders") 
    500 }); 
    501 display_unseen_in_mailbox._refresh(); 
    502  
    503 var display_unseen_in_shared_folders = tree_folders.getNodeById( 'user' ); 
    504 if ( display_unseen_in_shared_folders ) 
    505 { 
    506         if ( unseen_in_shared_folders ) 
    507                 display_unseen_in_shared_folders.alter({ 
    508 caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">' + unseen_in_shared_folders +'</span><font style=color:red>]</font> ' + get_lang("Shared folders") 
    509 }); 
    510 else 
    511 display_unseen_in_shared_folders.alter({ 
    512 caption:get_lang("Shared folders") 
    513 }); 
    514 display_unseen_in_shared_folders._refresh(); 
    515 } 
    516 }; 
    517 expresso.connector.cacheNextRequest(1); 
    518 cExecute ("expressoMail1_2.imap_functions.get_folders_list&folder=INBOX", update_tree_folders); 
    519 } 
    520  
    521 return; 
    522 } 
    523 else{ 
    524         if (!expresso_offline) { 
    525                 tree_folders = new dFTree({ 
    526 name: 'tree_folders' 
    527 }); 
    528  
    529 var n_root = new dNode({ 
    530 id:'root', 
    531 caption: get_lang("My Folders") 
    532 }); 
    533 tree_folders.add(n_root,'anything'); //Places the root; second argument can be anything. 
    534  
    535 var unseen_in_mailbox = 0; 
    536 var unseen_in_shared_folders = 0; 
     488                                        Element('new_m').innerHTML = data[i].folder_unseen ? '<font color="RED">'+data[i].folder_unseen+'</font>' : 0; 
     489                                        draw_paging(Element('tot_m').innerHTML); 
     490                                        } 
     491                        } 
     492 
     493                        var display_unseen_in_mailbox = tree_folders.getNodeById( 'root' ); 
     494                        //if ( unseen_in_mailbox ) 
     495                        //      display_unseen_in_mailbox.alter({caption:'<font style=color:red>[</font><span id="dftree_root_unseen" style="color:red">' + unseen_in_mailbox +'</span><font style=color:red>]</font> ' + get_lang("My Folders")}); 
     496                        //else 
     497                        display_unseen_in_mailbox.alter({ 
     498                                caption:get_lang("My Folders") 
     499                        }); 
     500                        display_unseen_in_mailbox._refresh(); 
     501 
     502                        var display_unseen_in_shared_folders = tree_folders.getNodeById( 'user' ); 
     503                        if ( display_unseen_in_shared_folders ) 
     504                        { 
     505                                if ( unseen_in_shared_folders ) 
     506                                display_unseen_in_shared_folders.alter({ 
     507                                caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">' + unseen_in_shared_folders +'</span><font style=color:red>]</font> ' + get_lang("Shared folders") 
     508                        }); 
     509                        else 
     510                        display_unseen_in_shared_folders.alter({ 
     511                        caption:get_lang("Shared folders") 
     512                        }); 
     513                        display_unseen_in_shared_folders._refresh(); } }; 
     514                } 
     515                return; 
     516        } 
     517        else{ 
     518                if (!expresso_offline) { 
     519                        tree_folders = new dFTree({ 
     520                        name: 'tree_folders' 
     521                        }); 
     522                                var n_root = new dNode({ 
     523                                id:'root', 
     524                                caption: get_lang("My Folders") 
     525                        }); 
     526                        tree_folders.add(n_root,'anything'); //Places the root; second argument can be anything. 
     527 
     528        var unseen_in_mailbox = 0; 
     529        var unseen_in_shared_folders = 0; 
    537530        for (var i=0; i<folders.length; i++){ 
    538531                if (folders[i].folder_unseen > 0) 
     
    543536 
    544537                        var nn = new dNode({ 
    545 id:folders[i].folder_id, 
    546 caption:lang_folder(folders[i].folder_name) + '<font style=color:red>&nbsp(</font><span id="dftree_'+folders[i].folder_id+'_unseen" style=color:red>'+folders[i].folder_unseen+'</span><font style=color:red>)</font>', 
    547 onClick:"change_folder('"+folders[i].folder_id+"','"+folders[i].folder_name+"')", 
    548 plusSign:folders[i].folder_hasChildren 
    549 }); 
    550  
    551 if( folders[i].folder_name.toLowerCase() == 'inbox' ) 
    552 Element('new_m').innerHTML = '<font style="color:red">' + folders[i].folder_unseen + '</font>'; 
    553 } 
    554 else 
    555 var nn = new dNode({ 
    556 id:folders[i].folder_id, 
    557 caption:lang_folder(folders[i].folder_name), 
    558 onClick:"change_folder('"+folders[i].folder_id+"','"+folders[i].folder_name+"')", 
    559 plusSign:folders[i].folder_hasChildren 
    560 }); 
    561  
    562 if (folders[i].folder_parent == '') 
    563 folders[i].folder_parent = 'root'; 
    564 else if (folders[i].folder_parent == 'user'){ 
    565  
    566         if (!tree_folders.getNodeById('user')){ 
    567                 tmpFolderId = folders[i].folder_id.split(cyrus_delimiter).pop(); 
    568                 if (tmpFolderId != folders[i].folder_name) 
    569                 { 
    570                         translatedFolders.add(tmpFolderId, folders[i].folder_name); 
    571                 } 
    572                 var n_root_shared_folders = new dNode({ 
    573 id:'user', 
    574 caption:get_lang("Shared folders"), 
    575 plusSign:true 
    576 }); 
    577 tree_folders.add(n_root_shared_folders,'root'); 
    578 } 
    579 } 
    580 tree_folders.add(nn,folders[i].folder_parent); 
    581 } 
     538                                id:folders[i].folder_id, 
     539                                caption:lang_folder(folders[i].folder_name) + '<font style=color:red>&nbsp(</font><span id="dftree_'+folders[i].folder_id+'_unseen" style=color:red>'+folders[i].folder_unseen+'</span><font style=color:red>)</font>', 
     540                                onClick:"change_folder('"+folders[i].folder_id+"','"+folders[i].folder_name+"')", 
     541                                plusSign:folders[i].folder_hasChildren 
     542                        }); 
     543 
     544                        if( folders[i].folder_name.toLowerCase() == 'inbox' ) 
     545                                Element('new_m').innerHTML = '<font style="color:red">' + folders[i].folder_unseen + '</font>'; 
     546                        } 
     547                        else 
     548                                var nn = new dNode({ 
     549                                        id:folders[i].folder_id, 
     550                                        caption:lang_folder(folders[i].folder_name), 
     551                                        onClick:"change_folder('"+folders[i].folder_id+"','"+folders[i].folder_name+"')", 
     552                                        plusSign:folders[i].folder_hasChildren 
     553                                }); 
     554 
     555                        if (folders[i].folder_parent == '') 
     556                                folders[i].folder_parent = 'root'; 
     557                        else if (folders[i].folder_parent == 'user'){ 
     558 
     559                                if (!tree_folders.getNodeById('user')){ 
     560                                        tmpFolderId = folders[i].folder_id.split(cyrus_delimiter).pop(); 
     561                                        if (tmpFolderId != folders[i].folder_name) 
     562                                        { 
     563                                                translatedFolders.add(tmpFolderId, folders[i].folder_name); 
     564                                        } 
     565                                        var n_root_shared_folders = new dNode({ 
     566                                                id:'user', 
     567                                                caption:get_lang("Shared folders"), 
     568                                                plusSign:true 
     569                                        }); 
     570                                        tree_folders.add(n_root_shared_folders,'root'); 
     571                                } 
     572                } 
     573                tree_folders.add(nn,folders[i].folder_parent); 
     574        } 
    582575} 
    583576//tree_local_folders = new dFTree({name: 'tree_local_folders'}); 
     
    847840        var handler_draw_box = function(data) 
    848841        { 
    849             draw_box.headers_msgs = data; 
    850             draw_box.draw_box_messages(data, folder, true); 
    851             draw_paging(data.num_msgs); 
    852             Element("tot_m").innerHTML = data.num_msgs; 
    853             update_menu(); 
    854             return true; 
     842                draw_box.headers_msgs = data; 
     843                draw_box.draw_box_messages(data, folder, true); 
     844                draw_paging(data.num_msgs); 
     845                Element("tot_m").innerHTML = data.num_msgs; 
     846                Element("new_m").innerHTML = '<font style="color:'+(data.num_unseen > 0 ? 'red': '')+'">' + data.num_unseen + '</font>'; 
     847                folder_unseen = Element('dftree_'+current_folder+'_unseen'); 
     848                var num_unseen = data.num_unseen; 
     849                if (folder_unseen) 
     850                        num_unseen -= folder_unseen.innerHTML; 
     851                increment_folder_unseen(num_unseen); 
     852                update_menu(); 
     853                return true; 
    855854        }; 
    856855        proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort_box_type,search_box_type,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box); 
Note: See TracChangeset for help on using the changeset viewer.