Ignore:
Timestamp:
07/05/12 10:29:43 (12 years ago)
Author:
gustavo
Message:

Ticket #2939 - Melhorias na exibição das abas e da listagem de email

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/novoExpressoMail/expressoMail1_2/js/abas.js

    r6684 r6711  
    11var BordersArray = new Array(); 
    2 BordersArray[0] = new setBorderAttributes(0); 
    32var countBorders = 0;  
    43var partMsgs = new Array();  
     
    76var zebraDiscardEventDialog = false; 
    87var saveBorderError = new Array();  
     8var ID = 1; 
    99 
    10 function setBorderAttributes(ID) 
    11 { 
    12         this.border_id = "border_id_"+ID; 
    13         this.sequence = ID;  
    14 } 
    15  
    16  
    17 function alternate_border(ID) 
    18 { 
    19         msg_selected = false;//Controle da seleção de mensagens 
    20         if(isNaN(ID)) 
    21                 if(preferences.use_shortcuts == "1") 
    22                         select_msg((ID.split("_"))[0]); 
    23         if( document.getElementById("div_menu_c3") != null ) 
    24         { 
    25                 var node = document.getElementById("div_menu_c3").firstChild; 
    26                  
    27                 while ( node ) 
    28                 { 
    29                         node.style.display = "none"; 
    30                         node = node.nextSibling; 
    31                 } 
    32                  
    33                 if( document.getElementById("span_paging"+ID) != null ) 
    34                         document.getElementById("span_paging"+ID).style.display = "block"; 
    35         } 
    36          
    37         if ( typeof win == 'object' && win.close && win.close.constructor == Function ){ 
    38             var search_win = document.getElementById( 'window_QuickCatalogSearch' ); 
    39             if(search_win){ 
    40                 search_win.style.visibility = 'hidden'; 
    41             } 
    42             win.close( ); 
    43         } 
    44                  
    45         if (! Element('border_id_'+ID)) 
    46                 return false; // Not possible to alternate 
    47         show_hide_span_paging(ID); 
    48         spanD = Element("span_D"); 
    49         if (spanD) 
    50                 spanD.style.display = (openTab.type[ID] == 0 ? '' : 'none'); 
    51  
    52         var footer_menu = Element("footer_menu");        
    53         var aba = Element('border_id_'+ID); 
    54         if (footer_menu != null) { 
    55                 footer_menu.style.display = (openTab.type[ID] != 4 ? '' : 'none'); 
    56                 var alternate_menu = document.getElementById('localOption'); 
    57                  
    58                 if(alternate_menu != null && alternate_menu != 'undefined'){ //Quando Carregado o expresso mail 
    59                         if(openTab.imapBox[ID]!= null && openTab.imapBox[ID]!= 'undefined' ){ //Quando abrir uma Nova Mensagem 
    60                                 if((openTab.imapBox[ID].indexOf("local_") >= 0)){                                                
    61                                                 alternate_menu.title = get_lang("Unarchive"); 
    62                                                 alternate_menu.removeAttribute("onclick"); 
    63                                                 if(!is_ie) 
    64                                                         alternate_menu.setAttribute("onclick",  'expresso_local_messages.unarchive_msgs(\''+openTab.imapBox[ID]+'\', null)'); 
    65                                                 else{ 
    66                                                         alternate_menu.onclick = function(){ 
    67                                                                 expresso_local_messages.unarchive_msgs(openTab.imapBox[ID], null); 
    68                                                         } 
    69                                                 } 
    70                                                 alternate_menu.innerHTML = get_lang("Unarchive"); 
    71                                                  
    72                                         }else{ 
    73                                                 alternate_menu.title = get_lang("Archive"); 
    74                                                 alternate_menu.removeAttribute("onclick"); 
    75                                                 if(!is_ie) 
    76                                                         alternate_menu.setAttribute("onclick", 'archive_msgs(\''+openTab.imapBox[ID]+'\', null)');               
    77                                                 else{ 
    78                                                         alternate_menu.onclick = function(){ 
    79                                                                 archive_msgs(openTab.imapBox[ID], null); 
    80                                                         }        
    81                                                 } 
    82                                                 alternate_menu.innerHTML = get_lang("Archive"); 
    83                                         } 
    84                                          
    85                         } 
    86                 } 
    87                  
    88                 if((aba.id.indexOf("_r") < 0) && (aba.id.indexOf("_0") < 0) && (aba.id.indexOf("id_search_") < 0) && (aba.id.indexOf("_s") < 0)){ 
    89                         spanD.style.display = 'none'; 
    90                         footer_menu.style.display = 'none';                      
    91                 } 
    92         } 
    93  
    94  
    95         var len = BordersArray.length; 
    96         for (var i=0; i < len; i++) 
    97         { 
    98                 m = document.getElementById(BordersArray[i].border_id); 
    99                 if ((m)&&(m.className == 'menu-sel')) 
    100                 { 
    101                         m.className = 'menu'; 
    102                         c = document.getElementById("content_id_"+BordersArray[i].sequence); 
    103                         c.style.display = 'none'; 
    104                         if(Element("font_border_id_"+BordersArray[i].sequence)) 
    105                                 Element("font_border_id_"+BordersArray[i].sequence).className = 'font-menu';     
    106  
    107                 } 
    108         } 
    109  
    110         m = Element("border_id_"+ID); 
    111         if (m) 
    112                 m.className = 'menu-sel'; 
    113         if(Element("font_border_id_" + ID)) 
    114                 Element("font_border_id_" + ID).className = 'font-menu-sel'; 
    115         var c = Element("content_id_"+ID) 
    116         if (c) 
    117                 c.style.display = ''; 
    118  
    119  
    120         // hide the DropDrowContact, if necessary 
    121         window_DropDownContacts = Element('tipDiv'); 
    122         if ((window_DropDownContacts)&&(window_DropDownContacts.style.visibility != 'hidden')){ 
    123                 window_DropDownContacts.style.visibility = 'hidden'; 
    124         } 
    125  
    126         numBox = getNumBoxFromTabId(ID); 
    127         if (typeof(ID)=='number') { 
    128                  numBox = ID; 
    129          } 
    130          else { 
    131              if (ID.match("search_")) 
    132              { 
    133                  if (ID.match("search_local_msg")) 
    134                  { 
    135                          var p = ID.search(/[0-9]/); 
    136                          numBox =  ID.substr(p); 
    137                  } 
    138                  else 
    139                  { 
    140                          numBox = ID.substr(7); 
    141                  } 
    142              } 
    143          } 
    144         currentTab=ID; 
    145         if( document.getElementById('to_'+ID) && document.getElementById('to_'+ID).type == "textarea"){  
    146             document.getElementById('to_'+ID).focus();  
    147         } 
    148         RichTextEditor.setEditable(ID); 
    149         resizeWindow(); 
    150         return ID; 
    151 } 
    152  
    153 function create_border(borderTitle, id_value, search) 
    154 { 
    155                          
    156         borderTitle = ( ( borderTitle && borderTitle.constructor == String && borderTitle.length > 0 ) ? borderTitle : ' ' ); 
    157     borderTitle = html_entities(borderTitle);     
    158         var resize = false; 
    159         resize = resize_borders(); 
    160         if (!resize){ 
    161             var str_continue = ''; 
    162             var bolContinue = true; 
    163                         str_continue = '\n' + get_lang('You must manually close one of your tabs before opening a new one'); 
    164             if (preferences.auto_close_first_tab == 1){ 
    165                 var children = Element('border_tr').childNodes; 
    166                 var bolDelete = true; 
    167                 for (var i=0; i<children.length; i++) { 
    168                     if ((children[i].nodeName === 'TD') && (children[i].id!=='border_id_0') && (children[i].id!=='border_blank')) 
    169                     { 
    170                         bolDelete = true; 
    171                         var num_child = children[i].id.toString().substr(10); 
    172                         alternate_border(num_child); 
    173                         if (editTest(num_child)){ 
    174                             bolDelete = false; 
    175                         } 
    176                         if (bolDelete || bolContinue){ 
    177                                                         str_fechar = '\n' + get_lang('Reached maximum tab limit. Want to close this tab'); 
    178                                                         var confirmacao = confirm(str_fechar); 
    179                             if(confirmacao){ 
    180                             bolContinue = false; 
    181                             delete_border(num_child, 'false'); 
    182                             break; 
    183                                                         }else{ 
    184                                                                 return 'maximo'; 
    185                         } 
    186                     } 
    187                 } 
    188             } 
    189             }else{                       
    190                 alert(get_lang('Reached maximum tab limit') + str_continue ); 
    191                 return 'maximo'; 
    192             } 
    193         } 
    194          
    195         if (! id_value){ // Is new message? 
    196                 var ID = parseInt(BordersArray[(BordersArray.length-1)].sequence) + 1; 
    197                         if(isNaN(ID)){ 
    198                                 var aux = BordersArray[(BordersArray.length-1)].sequence.split("_"); 
    199                                 ID = parseInt(aux[1]) + 1; 
    200                         } 
    201         }else 
    202         { 
    203                 if (Element("border_id_"+id_value)) // It's opened already! 
    204                         return alternate_border(id_value); 
    205                  
    206                 var ID = id_value; 
    207                 if(isNaN(ID) && ID.indexOf("search_local") >= 0){ 
    208                         if(current_folder.indexOf("local") >= 0) 
    209                                 openTab.imapBox[ID] = current_folder; 
    210                         else 
    211                                 openTab.imapBox[ID] = 'local_search'; 
    212                 }else if(isNaN(ID) && ID.indexOf("search_") >= 0){ 
    213                         if(current_folder.indexOf("local") < 0) 
    214                                 openTab.imapBox[ID] = current_folder; 
    215                         else 
    216                                 openTab.imapBox[ID] = 'search'; 
    217                 }else if( (currentTab != 0) && isNaN(currentTab) && (currentTab.indexOf("search") >= 0) && (ID.indexOf("msg") < 0) ) { 
    218                         var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
    219                         ID_TR = ID.toString().substr(0,ID.toString().indexOf("_r")); 
    220                         var tr = Element(ID_TR); 
    221                         openTab.imapBox[ID] = (tr.getAttribute('name') == null?get_current_folder():tr.getAttribute('name')); 
    222                 }else 
    223                         openTab.imapBox[ID] = current_folder; 
    224         } 
    225         td = document.createElement("TD"); 
    226         td.id="border_id_" + ID; 
    227         if(resize)  
    228         { 
    229                 td.setAttribute("width", parseInt(resize)+"px"); 
    230                 td.style.width = parseInt(resize)+"px"; 
    231         } 
    232         else 
    233                 td.setAttribute("width", "200px"); 
    234  
    235         td.setAttribute("align", "right"); 
    236         td.onclick = function(){alternate_border(ID);resizeWindow()}; 
    237         td.setAttribute("noWrap","true"); 
    238     td.alt = ' '; 
    239     td.title = borderTitle; 
    240         borderTitle = borderTitle ?  borderTitle : id_value ? get_lang("No Subject") : " "      ; 
    241         td.value = borderTitle; 
    242         if (borderTitle.length > 21) 
    243                 borderTitle = borderTitle.substring(0,21) + "..."; 
    244  
    245         if ( resize ) 
    246                 borderTitle = borderTitle.substring(0, resize*0.08); 
    247          
    248         var cc = search; 
    249         if(!cc){ 
    250                 if(isNaN(ID)){ 
    251                         var is_local = ID.match('.*_local_.*'); 
    252                         if(!is_local) 
    253                                 cc = document.getElementById("em_message_search").value; 
    254                         else{ 
    255                                 cc = document.getElementsByName(currentTab)[0].value; 
    256                         } 
    257                 }else{ 
    258                         cc =""; 
    259                 } 
    260         } 
    261         td.innerHTML = "<div><div id='font_border_id_" + ID+"' class='font-menu'>" + 
    262                                 borderTitle + 
    263                             "</div>\n\ 
    264                             <div style='float:right;'>\n\ 
    265                                 <img onmousedown='javascript:return false' style='cursor:pointer' onclick=delete_border('" + ID + "','false') src='templates/"+template+"/images/close_button.gif'/>\n\ " + 
    266                             "</div>\n\ " +  
    267                                                         "<input type=\"hidden\" name=\""+ ID+"\" value=\""+cc+"\"></div>";               
    268         bb = document.getElementById("border_blank"); 
    269         parent_bb = bb.parentNode; //Pego o tbody 
    270         parent_bb.insertBefore(td, bb); 
    271  
    272         if((typeof(id_value) == 'string') && id_value.match(/_r/)){ 
    273                 $(td).draggable({ 
    274                         start : function(){ 
    275                                 if($(".shared-folders").length){ 
    276                                         $(".shared-folders").parent().find('.folder:not(".shared-folders")').droppable({ 
    277                                                 over : function(a, b){                                           
    278                                                         //SETA BORDA EM VOLTA DA PASTA 
    279                                                         over = $(this); 
    280                                                         $(this).addClass("folder-over"); 
    281                                                         if(($(this)[0] != $(this).parent().find(".head_folder")[0])) 
    282                                                                 if($(this).prev()[0]) 
    283                                                                         if($(this).parent().find(".expandable-hitarea")[0] == $(this).prev()[0]){ 
    284                                                                                 setTimeout(function(){ 
    285                                                                                         if(over.hasClass("folder-over")) 
    286                                                                                                 over.prev().trigger("click"); 
    287                                                                                 }, 500); 
    288                                                                                  
    289                                                                         } 
    290                                                 }, 
    291                                                 out : function(){ 
    292                                                         //RETIRA BORDA EM VOLTA DA PASTA 
    293                                                         $(this).removeClass("folder-over"); 
    294                                                 }, 
    295                                                 //accept: ".draggin_mail", 
    296                                                 drop : function(event, ui){ 
    297                                                         $(this).css("border", ""); 
    298                                                         if($(this).parent().attr('id') == undefined){ 
    299                                                                 var folder_to = 'INBOX'; 
    300                                                                 var to_folder_title = get_lang("Inbox"); 
    301                                                         }else{ 
    302                                                                 var folder_to = $(this).parent().attr('id'); 
    303                                                                 var to_folder_title = $(this).attr('title'); 
    304                                                         }                
    305                                                         var folder_to_move = ui.draggable.parent().attr('id'); 
    306                                                         var border_id = ui.draggable.find("input[type=hidden]").attr("name"); 
    307                                                         if(folder_to_move == "border_tr"){ 
    308                                                                 var id_msg = border_id.split("_")[0]; 
    309                                                                 folder = $("#input_folder_"+border_id+"_r")[0] ? $("#input_folder_"+border_id+"_r").val() : (openTab.imapBox[border_id] ? openTab.imapBox[border_id]:get_current_folder()); 
    310                                                                 move_msgs2(folder, id_msg, border_id, folder_to, to_folder_title,true); 
    311                                                                 return refresh(); 
    312                                                         } 
    313                                                 } 
    314                                         }); 
    315                                 } 
    316                         }, 
    317                         stop :function(){ 
    318                                 $(".shared-folders").parent().find(".folder").droppable("destroy"); 
    319                         }, 
    320                         helper: function(event){ 
    321                                 if(     borderTitle.length > 18 ) 
    322                                         return $("<td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : borderTitle.substring(0,18) + "...", type: "messages"})+"</td>"); 
    323                                 else 
    324                                         return $("<td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : borderTitle, type: "messages"})+"</td>"); 
    325                         }, 
    326                         delay: 150, 
    327                         cursorAt: {top: 5, left: 56}, 
    328                         refreshPositions: true , 
    329                         containment: "#divAppbox" 
    330                 }); 
    331         } 
    332                 //_dragArea.makeDragged(td, id_value,td.value); 
    333  
    334         BordersArray[BordersArray.length] = new setBorderAttributes(ID); 
    335  
    336         var div = document.createElement("DIV"); 
    337         div.id = "content_id_" + ID; 
    338         div.className = "conteudo"; 
    339         div.style.display=''; 
    340  
    341         div.style.overflow = "hidden"; 
    342  
    343         Element("exmail_main_body").insertBefore(div,Element("footer_menu"));        
    344         if (!is_ie) 
    345                 resizeWindow(); 
    346         alternate_border(ID); 
    347     uidsSave[ID] = []; 
    348     saveBorderError[ID] = false; 
    349         return ID; 
    350 } 
    351  
    352 function resize_borders() 
    353 { 
    354         var numBorders = count_borders(); 
    355  
    356         if (numBorders > 8) 
    357                 return false; 
    358  
    359         return redim_borders(numBorders+1); 
    360 } 
    361  
    362 function count_borders() 
    363 { 
    364         var numBorders = 0; 
    365         var children = Element('border_tr').childNodes; 
    366         for (var i=0; i<children.length; i++) { 
    367             if ((children[i].nodeName === 'TD') && (children[i].id!=='border_id_0') && (children[i].id!=='border_blank')) 
    368                 numBorders++; 
    369         } 
    370  
    371         return numBorders; 
    372 } 
    373  
    374 function redim_borders(numBorders) 
    375 { 
    376         var children = Element('border_tr').childNodes; 
    377         var clientWidth = (window.document.body.clientWidth - findPosX(Element("exmail_main_body"))) - Element("border_id_0").clientWidth - 30; 
    378         var newWidthTD = (clientWidth/numBorders)-6; 
    379         newWidthTD = newWidthTD > 200 ? 200 : (newWidthTD < 50 ? 50 : newWidthTD); 
    380         children = Element('border_tr').childNodes; 
    381         for (var i=0; i<children.length; i++) { 
    382                 if ((children[i].nodeName === 'TD') && (children[i].id!=='border_id_0') && (children[i].id!=='border_blank')){ 
    383                         $(children[i]).css("width", newWidthTD); 
    384                         $(children[i]).find('div:first').css("width", newWidthTD); 
    385                         set_border_caption(children[i].id, children[i].title, newWidthTD); 
    386                 } 
    387         } 
    388         return newWidthTD; 
    389 } 
    390  
    391  
    392  
    393  
    394 function set_border_caption(border_id, title, border_width) 
    395 { 
    396         var border = document.getElementById(border_id); 
    397         if (border_width == null) 
    398         { 
    399             border_width = border.clientWidth; 
    400         } 
    401         var caption = ""; 
    402     if (border != null){ 
    403                 Element("font_"+border.id).style.width = (border_width - 35)+'px'; 
    404                 Element("font_"+border.id).innerHTML = title; 
    405         } 
    406         return(title); 
    407 } 
    408  
    409  
    410 function draftTests(ID, msg_sent){ 
    411      
    412         
    413         if( openTab.toPreserve[ID] = false) 
    414         { 
    415             close_delete(ID, msg_sent); 
    416             delete(openTab.type[ID]); 
    417         }     
    418         else   
    419         { 
    420              var msg = 'Existem alterações não salvas na mensagem.'; 
    421              var buttons = ['Descartar alterações', 'Salvar e fechar' ,'Cancelar']; 
    422              var width = 371; 
    423              if($('#fileupload_msg'+ID).find('.in-progress').length) 
    424              { 
    425                  msg = 'Existem anexos sendo enviados para o servidor.'; 
    426                  buttons = ['Descartar alterações e anexos', 'Salvar estado atual fechar', 'Continuar editando'];  
    427                  width = 560; 
    428              } 
    429              zebraDiscardEventDialog = true; 
    430              window.setTimeout(function() { 
    431                 $.Zebra_Dialog(msg, { 
    432                             'type':     'question', 
    433                             'overlay_opacity': '0.5', 
    434                             'buttons':  buttons, 
    435                             'width' : width, 
    436                             'onClose':  function(clicked) { 
    437                                                                         if(clicked == 'Cancelar'){ 
    438                                                                                 if (RichTextEditor.plain[id] != true)  
    439                                                                                         setTimeout("RichTextEditor.focus("+ID+")",100);                   
    440                                                                                 else   
    441                                                                                         $('#body_'+ID).focus();  
    442                                                                         } 
    443                                     if(clicked == 'Descartar alterações' || clicked == 'Descartar alterações e anexos' ) { 
    444                                         if (openTab.imapBox[ID] && !openTab.toPreserve[ID]) 
    445                                             openTab.toPreserve[ID] = false; 
    446  
    447                                         delete(openTab.type[ID]); 
    448                                         close_delete(ID, msg_sent); 
    449                                     } 
    450                                     else if(clicked == 'Salvar e fechar' || clicked == 'Salvar estado atual fechar') 
    451                                     { 
    452                                         save_msg(ID); 
    453                                         openTab.toPreserve[ID] = false; 
    454                                         close_delete(ID, msg_sent); 
    455                                         delete(openTab.type[ID]); 
    456                                     }     
    457                                     else{ 
    458  
    459                                         Element("border_id_"+ID).onclick = function () {alternate_border(ID);};  
    460                                         var setFocus = function(ID){ 
    461                                                         if ($.trim($("#to_"+ID).val()) == "") 
    462                                                                 $("#to_"+ID).focus(); 
    463                                                         else if ($("#tr_cc_"+ID).css('display') != 'none' && $.trim($("#cc_"+ID).val()) == "") 
    464                                                                 $("#cc_"+ID).focus(); 
    465                                                         else if ($("#tr_cco_"+ID).css('display') != 'none' && $.trim($("#cco_"+ID).val()) == "") 
    466                                                                 $("#cco_"+ID).focus();           
    467                                                         else if ($.trim($("#subject_"+ID).val()) == "") 
    468                                                                 $("#subject_"+ID).focus(); 
    469                                                         else{ 
    470                                                                 if (RichTextEditor.plain[id] != true)  
    471                                                                         setTimeout("RichTextEditor.focus("+ID+")",100);                   
    472                                                                 else   
    473                                                                         $('#body_'+ID).focus();  
    474                                                         } 
    475                                                 } 
    476                                                 setFocus(ID);   
    477                                     } 
    478                                     window.setTimeout(function() { 
    479                                             zebraDiscardEventDialog = false; 
    480                                     }, 500); 
    481                             }})}, 300);     
    482         } 
    483          
    484 } 
    485  
    486 function editTest(ID){ 
    487     var body = document.getElementById('body_'+ ID); 
    488         var content = $('#content_id_'+ ID); 
    489     if (body) 
    490     { 
    491         var save_link = content.find(".save"); 
    492         if (openTab.toPreserve[ID] == undefined) 
    493                 openTab.toPreserve[ID] = false; 
    494         if (((! openTab.toPreserve[ID] && ! ID.toString().match("_r")) || ((body.contentWindow) == 'object' && body.contentWindow.document.designMode.toLowerCase() == 'on')) && (save_link.onclick != '')) 
    495         { 
    496             return true; 
    497         } 
    498     } 
    499     return false; 
    500 } 
    501  
    502 function delete_border(ID, msg_sent) 
    503 { 
    504          
    505         if($("#border_id_"+ID).attr("title") == get_lang("New Message")){ 
    506                 var to = $("#content_id_"+ID).find(".to").parent(".email-area").find("div").length || $("#content_id_"+ID).find(".email-area").find(".to").val(); 
    507                 var cc = $("#content_id_"+ID).find(".cc").parent(".email-area").find("div").length || $("#content_id_"+ID).find(".email-area").find(".cc").val(); 
    508                 var cco = $("#content_id_"+ID).find(".cco").parent(".email-area").find("div").length || $("#content_id_"+ID).find(".email-area").find(".cco").val(); 
    509                 var subject = $("#content_id_"+ID).find(".subject").val(); 
    510                 var auxAttachments = false; 
    511                 var attachments = $("#content_id_"+ID).find("ul.attachments-list").find("li").each(function(){ 
    512                         ($(this).find("p").length > 0) ? auxAttachments = true : auxAttachments; 
    513                         if(auxAttachments) 
    514                                 return false; 
    515                 }); 
    516                 var textArea = RichTextEditor.getData("body_"+ID); 
    517                  
    518                 if(!to && !cc && !cco && !auxAttachments && subject == "" && textArea == "") 
    519                         close_delete(ID, msg_sent); 
    520         } 
    521         var bolExecuteClose = true; 
    522         var borderElem = Element("border_id_" + ID); 
    523         if (borderElem){ 
    524             borderElem.onclick = null; // It's avoid a FF3 bug 
    525         }else{ 
    526             return false; 
    527         } 
    528         if (msg_sent == 'false') 
    529         { 
    530             if (editTest(ID)){ 
    531                 bolExecuteClose = false; 
    532                 if(zebraDiscardEventDialog === false) 
    533                     return(draftTests(ID, msg_sent)); 
    534             } 
    535         } 
    536         if (bolExecuteClose) 
    537         { 
    538             close_delete(ID, msg_sent); 
    539                 } 
    540                 delete(openTab.type[ID]); 
    541         return true; 
    542 } 
    543  
    544 function close_delete(ID, msg_sent) 
    545 { 
    546         openTab.toPreserve[ID] = false; 
    547         // Limpa o autosave 
    548             if (preferences.auto_save_draft == 1 && autoSaveControl.timer[ID] !== null ) 
    549             { 
    550                 autoSaveControl.status[ID] = null; 
    551                 clearInterval(autoSaveControl.timer[ID]); 
    552             } 
    553         //////////////////////////////// 
    554          
    555         hold_session = false; 
    556         if (exist_className(Element('border_id_'+ID),'menu-sel')) 
    557         { 
    558                 if (BordersArray[BordersArray.length-2].sequence == ID) 
    559                         this.alternate_border(0); 
    560                 else 
    561                         this.alternate_border(BordersArray[BordersArray.length-2].sequence); 
    562         } 
    563  
    564         // Remove TD, title 
    565         border = Element('border_id_' + ID); 
    566         border.parentNode.removeChild(border); 
    567         var j=0; 
    568         var new_BordersArray = new Array(); 
    569         for (i=0;i<BordersArray.length;i++) 
    570                 if (document.getElementById(BordersArray[i].border_id) != null){ 
    571                         new_BordersArray[j] = BordersArray[i]; 
    572                         j++; 
    573                 } 
    574         if(j == 1) 
    575                 Element("footer_menu").style.display = ''; 
    576         BordersArray = new_BordersArray; 
    577  
    578         // Remove Div Content 
    579         content = Element('content_id_' + ID); 
    580         content.parentNode.removeChild(content); 
    581         if(is_webkit) 
    582                 resizeWindow(); 
    583         RichTextEditor.destroy( 'body_'+ID ); 
    584         delete msgAttachments[ID]; 
    585         //Caso for uma mensagem anexada tem que deletar ela da lixeira apos fechar a aba 
    586             var isPartMsg = false; 
    587                         if(!parseInt(id2)) 
    588                                 return; 
    589             var id2 = ID.replace('_r',''); 
    590             for(var ii = 0; ii < partMsgs.length; ii++) 
    591                if(partMsgs[ii] == id2){            
    592                   isPartMsg = true; 
    593                   partMsgs[ii] = null; 
    594                }      
    595  
    596             if(isPartMsg === true){ 
    597                 var handler_delete_msg = function(){}; 
    598                 cExecute ("$this.imap_functions.delete_msgs&folder=INBOX"+cyrus_delimiter+trashfolder+"&msgs_number="+id2,handler_delete_msg); 
    599             } 
    600         /////////////////////////////////////////////////////////////////////////////////// 
    601          
    602         return true; 
    603 } 
    604  
    605 function getTabPrefix() { // define o prefixo para os checkboxes das mensagens 
    606         if (typeof(currentTab)!='number') 
    607                 return currentTab+"_"; 
    608         else 
    609                 return ""; 
    610 } 
    611  
    612 function getMessageIdFromRowId(row_id) { // extrai o id da mensagem do id da linha 
    613         var p = row_id.search("_s"); 
    614         if (p>0) 
    615                 return row_id.substr(0,p); 
    616         else 
    617                 return row_id; 
    618 } 
    619  
    620 function getNumBoxFromTabId(tab_id) { // extrai o numBox do id da tab 
    621         if (typeof(tab_id)=='number') { 
    622                 return tab_id; 
    623         } 
    624         else { 
    625                 var p = tab_id.search(/[0-9]/); 
    626                 return tab_id.substr(p); 
    627         } 
    628 } 
    629  
    630 function addAttachment(ID, att) 
    631 { 
    632     if(typeof(msgAttachments[ID]) == 'undefined') 
    633             msgAttachments[ID] = []; 
    634  
    635         msgAttachments[ID].push(att); 
    636 } 
    637  
    638 function delAttachment(ID, att) 
    639 { 
    640      
    641     if(msgAttachments[ID] == undefined) return; 
    642     var len = msgAttachments[ID].length; 
    643     for(var i = 0; i < len; i++) 
    644     { 
    645         if(msgAttachments[ID][i] == att) 
    646         { 
    647             delete msgAttachments[ID][i]; 
    648             break; 
    649         } 
    650     }   
    651 } 
    652  
    653 function listAttachment(ID) 
    654 { 
    655    return (typeof(msgAttachments[ID]) == 'undefined') ? '' : JSON.stringify(msgAttachments[ID]);  
    656 } 
    657  
Note: See TracChangeset for help on using the changeset viewer.