Changeset 3265


Ignore:
Timestamp:
09/20/10 11:27:17 (11 years ago)
Author:
amuller
Message:

Ticket #1305 - Refresh remove as mensagens que não estão mais na caixa

Location:
branches/2.2/expressoMail1_2
Files:
2 edited

Legend:

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

    r3250 r3265  
    14671467        function refresh($params) 
    14681468        { 
    1469                 include_once("class.imap_attachment.inc.php"); 
    1470                 $imap_attachment = new imap_attachment(); 
     1469 
    14711470                $folder = $params['folder']; 
    14721471                $msg_range_begin = $params['msg_range_begin']; 
     
    14891488 
    14901489                $msgs_to_exec = array(); 
    1491                 if ((count($msg_to_insert)) && ($msgs_existent)) 
    1492                 { 
    1493                         foreach($msg_to_insert as $index => $msg_number) 
    1494                         { 
    1495                                 if ($msgs_in_the_server[$index+1]) 
    1496                                 { 
    1497                                         //$msgs_to_exec[$msg_number] = 'Inserir mensage numero ' . $msg_number . ' antes da ' . $msgs_in_the_server[$index+1]; 
    1498                                         $msgs_to_exec[$msg_number] = 'box.insertBefore(new_msg, Element("'.$msgs_in_the_server[$index+1].'"));'; 
    1499                                 } 
    1500                                 else 
    1501                                 { 
    1502                                         //$msgs_to_exec[$msg_number] = 'Inserir mensage numero ' . $msg_number . ' no final (append)'; 
    1503                                         $msgs_to_exec[$msg_number] = 'box.appendChild(new_msg);'; 
    1504                                 } 
    1505                         } 
    1506                         ksort($msgs_to_exec); 
    1507                 } 
    1508                 elseif(!$msgs_existent) 
    1509                 { 
    1510                         foreach($msgs_in_the_server as $index => $msg_number) 
    1511                         { 
    1512                                 $msgs_to_exec[$msg_number] = 'box.appendChild(new_msg);'; 
    1513                         } 
    1514                 } 
     1490                foreach($msg_to_insert as $msg_number) 
     1491                        $msgs_to_exec[] = $msg_number; 
     1492                sort($msgs_to_exec); 
    15151493 
    15161494                $return = array(); 
    15171495                $i = 0; 
    1518                 foreach($msgs_to_exec as $msg_number => $command) 
     1496                foreach($msgs_to_exec as $msg_number) 
    15191497                { 
    15201498                        /*A função imap_headerinfo não traz o cabeçalho completo, e sim alguns 
     
    15251503                        * duas vezes e de duas formas diferentes, mas em contrapartida, eu 
    15261504                        * não preciso reimplementar o método utilizando o fetchheader. 
    1527                         * Como na atualização são poucas as mensagens que devem ser renderizadas, 
    1528                         * a perda em performance é insignificante. 
    15291505                        */ 
    1530             $tempHeader = @imap_fetchheader($this->mbox, imap_msgno($this->mbox, $msg_number)); 
     1506                        $tempHeader = @imap_fetchheader($this->mbox, imap_msgno($this->mbox, $msg_number)); 
    15311507                        $flag = preg_match('/importance *: *(.*)\r/i', $tempHeader, $importance); 
    15321508                        $return[$i]['Importance'] = $flag==0?"Normal":$importance[1]; 
     
    15401516 
    15411517                        $return[$i]['msg_number']       = $msg_number; 
    1542                         $return[$i]['command']          = $command; 
    15431518 
    15441519                        $return[$i]['msg_folder']       = $folder; 
    1545             // Atribui o tipo (normal, signature ou cipher) ao campo Content-Type 
    1546             $return[$i]['ContentType']  = $this->getMessageType($msg_number, $tempHeader); 
     1520                        // Atribui o tipo (normal, signature ou cipher) ao campo Content-Type 
     1521                        $return[$i]['ContentType']  = $this->getMessageType($msg_number, $tempHeader); 
    15471522                        $return[$i]['Recent']           = $header->Recent; 
    15481523                        $return[$i]['Unseen']           = $header->Unseen; 
     
    15801555 
    15811556                        $return[$i]['attachment'] = array(); 
     1557                        if (!isset($imap_attachment)) 
     1558                        { 
     1559                                include_once("class.imap_attachment.inc.php"); 
     1560                                $imap_attachment = new imap_attachment(); 
     1561                        } 
    15821562                        $return[$i]['attachment'] = $imap_attachment->get_attachment_headerinfo($this->mbox, $msg_number); 
    15831563                        $i++; 
    15841564                } 
     1565                $return['quota'] = $this->get_quota(array('folder_id' => $folder)); 
     1566                $return['sort_box_type'] = $params['sort_box_type']; 
    15851567                $return['new_msgs'] = imap_num_recent($this->mbox); 
    15861568                $return['msgs_to_delete'] = $msg_to_delete; 
  • branches/2.2/expressoMail1_2/js/main.js

    r3231 r3265  
    406406                if (data.length > 0){ 
    407407                        var msg_info = document.getElementById('msg_info'); 
    408                         try{ 
     408                        if (msg_info != null) 
     409                        { 
    409410                                var msg_tr = msg_info.parentNode; 
    410411                                msg_tr.removeChild(msg_info); 
    411                         }catch(e){} 
     412                        } 
    412413 
    413414                        table_element = Element("table_box"); 
    414415                        var box = Element("tbody_box"); 
    415416                        table_element.appendChild(box); 
     417 
     418                        if (data.msgs_to_delete.length > 0) 
     419                                for (var i=0; i<data.msgs_to_delete.length; i++){ 
     420                                        if (data.msgs_to_delete[i] != undefined){ 
     421                                                removeAll(data.msgs_to_delete[i]); 
     422                                        } 
     423                                } 
     424 
    416425                        if (data[0].msg_folder != current_folder) // Bad request 
    417426                                return false; 
     
    423432                                        var new_msg = this.make_tr_message(data[i], current_folder); 
    424433                                        _dragArea.makeDragged(new_msg, data[i].msg_number, data[i].subject, true); 
    425                                         eval(data[i].command); 
    426                                 } 
    427                         } 
    428                         if (! typeof(data.msgs_to_delete) == 'undefined') 
    429                                 for (var i=0; i<data.msgs_to_delete.length; i++){ 
    430                                         var remove_msg = document.getElementById(data.msgs_to_delete[i]); 
    431                                         if (remove_msg) 
    432                                                 remove_msg.parentNode.removeChild(remove_msg); 
    433                                 } 
     434                                        if (data[i].Recent == 'N') 
     435                                                box.insertBefore(new_msg,box.firstChild); 
     436                                        else 
     437                                                box.appendChild(new_msg); 
     438 
     439                                } 
     440                        } 
    434441 
    435442                        if(parseInt(alert_new_msg) && data.new_msgs > 0) 
    436443                                alert(data['new_msgs'] > 1 ? get_lang("You have %1 new messages", data['new_msgs']) + "!" : get_lang("You have 1 new message") +"!"); 
    437                         if(data.new_msgs > 0){ 
    438                                 Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + parseInt(data.new_msgs); //refresh tab title 
    439                                 update_quota(get_current_folder()); 
    440                         } 
    441                          //if(data.new_msgs > 0 || data.msgs_to_delete.length > 0) 
    442                         //      purgeCache(); 
     444                        build_quota(data['quota']); 
    443445                } 
    444446                // Update Box BgColor 
Note: See TracChangeset for help on using the changeset viewer.