Changeset 7603


Ignore:
Timestamp:
12/04/12 10:44:14 (7 years ago)
Author:
douglasz
Message:

Ticket #3216 - Problemas ao excluir a primeira mensagem da segunda paginação em diante.

Location:
trunk/expressoMail1_2
Files:
4 edited

Legend:

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

    r7552 r7603  
    11191119                 
    11201120                $return = array(); 
    1121  
     1121         
     1122                $msg_ids = array_values($this->getMessagesIds($params));         
     1123                 
    11221124                $msg_number = $params['msg_number']; 
    11231125                $msg_folder = isset($params['decoded']) ? $params['msg_folder'] : urldecode($params['msg_folder']); 
     1126                 
     1127                if($msg_ids[0] == $msg_number){ 
     1128                        $return['next_message'] = $msg_ids[1]; 
     1129                        $return['prev_message'] = null; 
     1130                }else if($msg_ids[count($msg_ids)-1] == $msg_number){ 
     1131                        $return['prev_message'] = $msg_ids[count($msg_ids)-2]; 
     1132                        $return['next_message'] = null; 
     1133                }else{ 
     1134                        for($i = 0; $i < count($msg_ids); $i++){ 
     1135                                if($msg_ids[$i] == $msg_number){ 
     1136                                        $return['prev_message'] = $msg_ids[$i-1]; 
     1137                                        $return['next_message'] = $msg_ids[$i+1]; 
     1138                                        break; 
     1139                                } 
     1140                        } 
     1141                } 
    11241142                 
    11251143                if(preg_match('/(.+)(_[a-zA-Z0-9]+)/',$msg_number,$matches)) { //Verifies if it comes from a tab diferent of the main one.  
  • trunk/expressoMail1_2/js/draw_api.js

    r7575 r7603  
    24432443                                currentTab = ID; 
    24442444                                openTab.type[ID] = 2; 
    2445                                 proxy_mensagens.get_msg(folder.nextSibling.id,nextMsgBox,true,show_msg); 
     2445                                proxy_mensagens.get_msg(info_msg.next_message,nextMsgBox,true,show_msg); 
    24462446                                //select_msg('null', 'down', true); 
    24472447                                if (!msg_selected){ 
     
    25172517                                currentTab = ID; 
    25182518                                openTab.type[ID] = 2; 
    2519                                 proxy_mensagens.get_msg(folder.previousSibling.id,previousMsgBox,true,show_msg); 
     2519                                proxy_mensagens.get_msg(info_msg.prev_message,previousMsgBox,true,show_msg); 
    25202520                                //select_msg('null', 'up', false); 
    25212521                                if (!msg_selected){ 
     
    29022902                option_delete.id = 'msg_opt_delete_'+ID; 
    29032903                option_delete.className = 'message_options'; 
    2904                 option_delete.onclick = function(){proxy_mensagens.delete_msgs('null','selected','null');}; 
     2904                option_delete.onclick = function(){proxy_mensagens.delete_msgs('null','selected','null', info_msg.prev_message);}; 
    29052905                option_delete.innerHTML = get_lang('Delete'); 
    29062906                option_delete.onmouseover=function () {this.className='message_options_active';}; 
  • trunk/expressoMail1_2/js/main.js

    r7601 r7603  
    617617                                openTab.imapBox[border_id] = msg_info.msg_folder; 
    618618                                draw_message(msg_info,border_id); 
    619                                 var unseen_sort = document.getElementById('span_flag_UNSEEN').getAttribute('onclick'); 
    620                                 unseen_sort = unseen_sort.toString(); 
    621                                 if ( !(unseen_sort.indexOf("'UNSEEN' == 'UNSEEN'") < 0) ) 
    622                                 { 
     619//                              var unseen_sort = document.getElementById('span_flag_UNSEEN').getAttribute('onclick'); 
     620//                              unseen_sort = unseen_sort.toString(); 
     621//                              if ( !(unseen_sort.indexOf("'UNSEEN' == 'UNSEEN'") < 0) ) 
     622//                              { 
    623623//                                      var sort_type = sort_box_type; 
    624624//                                      sort_box_type = null; 
     
    626626//                                      delete selectedPagingMsgs[msg_info.msg_number]; 
    627627//                                      totalFolderMsgs--; 
    628                                 } 
     628//                              } 
    629629                        } 
    630630                        else 
     
    986986} 
    987987 
    988 function delete_msgs(folder, msgs_number, border_ID, show_success_msg,archive){  
     988function delete_msgs(folder, msgs_number, border_ID, show_success_msg,archive, prev_message){    
    989989            if( preferences.use_local_messages == 1 && expresso_local_messages.isArchiving( msgs_number, folder ) ){ 
    990990                          alert( "Impossivel deletar mensagens que ainda estão sendo arquivadas." ); 
     
    10201020                          
    10211021                        if (!archive && (parseInt(preferences.save_deleted_msg)) && (folder != userTrashFolder)){  
    1022                             move_msgs2(folder, ""+msgs_number, border_ID, userTrashFolder,special_folders['Trash'],show_success_msg );  
     1022                            move_msgs2(folder, ""+msgs_number, border_ID, userTrashFolder,special_folders['Trash'],show_success_msg, undefined, prev_message );  
    10231023                                        return; 
    10241024                                } 
     
    10731073                        if (parseInt(preferences.delete_and_show_previous_message) && msg_to_delete) { 
    10741074                                if (msg_to_delete.previousSibling){ 
    1075                                         var previous_msg = msg_to_delete.previousSibling.id; 
    1076                                          $.ajax({ 
    1077                                                   url: 'controller.php?' + $.param( {action: '$this.imap_functions.get_info_msg', 
    1078                                                                                       msg_number: previous_msg,  
    1079                                                                                       msg_folder: current_folder, 
    1080                                                                                       decoded: true } ), 
    1081                                                   success: function( data ){ 
    1082                                                       data = connector.unserialize( data ); 
    1083                                                        
    1084                                                       if( data ) 
    1085                                                           show_msg( data ); 
    1086                                                   }, 
    1087                                                   beforeSend: function( jqXHR, settings ){ 
    1088                                                         connector.showProgressBar(); 
    1089                                                   }, 
    1090                                                   complete: function( jqXHR, settings ){ 
    1091                                                         connector.hideProgressBar(); 
    1092                                                   } 
    1093  
    1094                                         }); 
     1075                                        var previous_msg = prev_message ? prev_message : msg_to_delete.previousSibling.id; 
     1076                                        if(previous_msg){ 
     1077                                                 $.ajax({ 
     1078                                                          url: 'controller.php?' + $.param( {action: '$this.imap_functions.get_info_msg', 
     1079                                                                                                  msg_number: previous_msg,  
     1080                                                                                                  msg_folder: current_folder, 
     1081                                                                                                  decoded: true } ), 
     1082                                                          success: function( data ){ 
     1083                                                                  data = connector.unserialize( data ); 
     1084                                                                   
     1085                                                                  if( data ) 
     1086                                                                  show_msg( data ); 
     1087                                                          }, 
     1088                                                          beforeSend: function( jqXHR, settings ){ 
     1089                                                                connector.showProgressBar(); 
     1090                                                          }, 
     1091                                                          complete: function( jqXHR, settings ){ 
     1092                                                                connector.hideProgressBar(); 
     1093                                                          } 
     1094 
     1095                                                }); 
     1096                                        } 
    10951097                                }  
    10961098                                else{ 
     
    12991301} 
    13001302 
    1301 function move_msgs2(folder, msgs_number, border_ID, new_folder, new_folder_name,show_success_msg, not_opem_previus){ 
     1303function move_msgs2(folder, msgs_number, border_ID, new_folder, new_folder_name,show_success_msg, not_opem_previus, prev_message){ 
    13021304        not_opem_previus = typeof(not_opem_previus) != 'undefined' ? not_opem_previus : false; 
    13031305        var folder_error = new_folder_name; 
     
    13431345                                if (msg_to_delete.previousSibling) 
    13441346                                { 
    1345                                         var previous_msg = msg_to_delete.previousSibling.id; 
     1347                                        var previous_msg = prev_message ? prev_message : msg_to_delete.previousSibling.id; 
     1348                                         
    13461349                                        //cExecute("$this.imap_functions.get_info_msg&msg_number="+previous_msg+"&msg_folder=" + current_folder, show_msg); 
    13471350                                        if(!not_opem_previus){ 
    1348                                                 $.ajax({ 
    1349                                                           url: 'controller.php?' + $.param( {action: '$this.imap_functions.get_info_msg', 
    1350                                                                                               msg_number: previous_msg,  
    1351                                                                                               msg_folder: folder, 
    1352                                                                                               decoded: true } ), 
    1353                                                           success: function( data ){ 
    1354                                                               data = connector.unserialize( data ); 
    1355                                                                
    1356                                                               if( data ) 
    1357                                                                   show_msg( data ); 
    1358                                                           }, 
    1359                                                           beforeSend: function( jqXHR, settings ){ 
    1360                                                                 connector.showProgressBar(); 
    1361                                                           }, 
    1362                                                           complete: function( jqXHR, settings ){ 
    1363                                                                 connector.hideProgressBar(); 
    1364                                                           } 
    1365                                                 }); 
     1351                                                if(previous_msg){ 
     1352                                                        $.ajax({ 
     1353                                                                  url: 'controller.php?' + $.param( {action: '$this.imap_functions.get_info_msg', 
     1354                                                                                                          msg_number: previous_msg,  
     1355                                                                                                          msg_folder: folder, 
     1356                                                                                                          decoded: true } ), 
     1357                                                                  success: function( data ){ 
     1358                                                                          data = connector.unserialize( data ); 
     1359                                                                           
     1360                                                                          if( data ) 
     1361                                                                          show_msg( data ); 
     1362                                                                  }, 
     1363                                                                  beforeSend: function( jqXHR, settings ){ 
     1364                                                                        connector.showProgressBar(); 
     1365                                                                  }, 
     1366                                                                  complete: function( jqXHR, settings ){ 
     1367                                                                        connector.hideProgressBar(); 
     1368                                                                  } 
     1369                                                        }); 
     1370                                                } 
    13661371                                        } 
    13671372                                } 
     
    13691374                                else  
    13701375                                { 
    1371                                         if (current_page > 1) 
     1376                                        var border_id = $("#border_id_"+currentTab).prev().attr("id").split("_").slice(2, 3).join("") 
     1377                                        var folderName = current_folder; 
     1378                                        if(prev_message) 
    13721379                                        { 
    1373                                                 $('#msg_opt_previous_'+msg_to_delete.getAttribute('id') + '_r').trigger('click'); 
     1380                                                $.ajax({ 
     1381                                                        url: 'controller.php?' + $.param({ 
     1382                                                                action: '$this.imap_functions.get_info_msg', 
     1383                                                                msg_number: prev_message,  
     1384                                                                msg_folder: folderName, 
     1385                                                                decoded: true  
     1386                                                        }), 
     1387                                                        success: function( data ){ 
     1388                                                                data = connector.unserialize( data ); 
     1389                                                                delete_border(currentTab,'false'); 
     1390                                                                if( data ) 
     1391                                                                { 
     1392                                                                        show_msg( data ); 
     1393                                                                } 
     1394                                                        }, 
     1395                                                        beforeSend: function( jqXHR, settings ){ 
     1396                                                                connector.showProgressBar(); 
     1397                                                        }, 
     1398                                                        complete: function( jqXHR, settings ){ 
     1399                                                                connector.hideProgressBar(); 
     1400                                                        } 
     1401                                                }); 
    13741402                                        } 
    1375                                         else 
     1403                                        else  
    13761404                                        { 
    1377                                                 var border_id = $("#border_id_"+currentTab).prev().attr("id").split("_").slice(2, 3).join("") 
    1378                                                 var folderName = current_folder; 
    1379                                                 if(border_id) 
    1380                                                 { 
    1381                                                         $.ajax({ 
    1382                                                                 url: 'controller.php?' + $.param({ 
    1383                                                                         action: '$this.imap_functions.get_info_msg', 
    1384                                                                         msg_number: border_id,  
    1385                                                                         msg_folder: folderName, 
    1386                                                                         decoded: true  
    1387                                                                 }), 
    1388                                                                 success: function( data ){ 
    1389                                                                         data = connector.unserialize( data ); 
    1390                                                                         delete_border(currentTab,'false'); 
    1391                                                                         if( data ) 
    1392                                                                         { 
    1393                                                                                 show_msg( data ); 
    1394                                                                         } 
    1395                                                                 }, 
    1396                                                                 beforeSend: function( jqXHR, settings ){ 
    1397                                                                         connector.showProgressBar(); 
    1398                                                                 }, 
    1399                                                                 complete: function( jqXHR, settings ){ 
    1400                                                                         connector.hideProgressBar(); 
    1401                                                                 } 
    1402                                                         }); 
    1403                                                 } 
    1404                                                 else  
    1405                                                 { 
    1406                                                         delete_border(currentTab,'false'); 
    1407                                                 } 
     1405                                                delete_border(currentTab,'false'); 
    14081406                                        } 
    14091407                                } 
  • trunk/expressoMail1_2/js/messages_controller.js

    r7496 r7603  
    6464        } 
    6565    } 
     66         
     67         
    6668 
    6769        messages_proxy.prototype.get_msg = function(msg_number,msg_folder,set_flag,call_back) { 
     
    7375                              url: 'controller.php?' + $.param( {action: '$this.imap_functions.get_info_msg', 
    7476                                                                  msg_number: msg_number,  
    75                                                                   msg_folder: msg_folder 
     77                                                                  msg_folder: msg_folder, 
     78                                                                  folder : folder, 
     79                                                                  sort_box_type : sort_box_type, 
     80                                                                  search_box_type : search_box_type, 
     81                                                                  sort_box_reverse: sort_box_reverse 
    7682                                                                  } ), 
    7783                              success: function( data ){ 
     
    9399        } 
    94100         
    95         messages_proxy.prototype.delete_msgs = function(folder, msgs_number, border_ID) { 
     101        messages_proxy.prototype.delete_msgs = function(folder, msgs_number, border_ID, id_delete_msg) { 
    96102 
    97103                if (folder == 'null') 
     
    114120                         
    115121                if (!this.is_local_folder(folder)){ 
    116                         delete_msgs(folder, msgs_number, border_ID); 
     122                        delete_msgs(folder, msgs_number, border_ID, undefined, undefined, id_delete_msg); 
    117123                }else {     
    118124            //MAILARCHIVER-03 
     
    121127            if (isNaN(currentTab) && parseInt(preferences.delete_and_show_previous_message) && msg_to_delete) { 
    122128                    if (msg_to_delete.previousSibling){  
    123                             var previous_msg = msg_to_delete.previousSibling.id; 
    124                              
     129                            var previous_msg = id_delete_msg ? id_delete_msg : msg_to_delete.previousSibling.id; 
     130 
    125131                            //user has preference to maintain default folder structure at local folders, so we have trash folder 
    126132                            if(preferences.auto_create_local == 1){ 
     
    136142                                    expresso_mail_archive.deleteMessages(msgs_number); 
    137143                                    delete_border(currentTab,'false');  
    138                                     expresso_mail_archive.getMessage(previous_msg) 
     144                                    expresso_mail_archive.getMessage(previous_msg); 
    139145                                }                                                                                 
    140146                            } 
Note: See TracChangeset for help on using the changeset viewer.