Changeset 6711 for sandbox/novoExpressoMail/expressoMail1_2/js/abas.js
- Timestamp:
- 07/05/12 10:29:43 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sandbox/novoExpressoMail/expressoMail1_2/js/abas.js
r6684 r6711 1 1 var BordersArray = new Array(); 2 BordersArray[0] = new setBorderAttributes(0);3 2 var countBorders = 0; 4 3 var partMsgs = new Array(); … … 7 6 var zebraDiscardEventDialog = false; 8 7 var saveBorderError = new Array(); 8 var ID = 1; 9 9 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 mensagens20 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 alternate47 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 mail59 if(openTab.imapBox[ID]!= null && openTab.imapBox[ID]!= 'undefined' ){ //Quando abrir uma Nova Mensagem60 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 necessary121 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 else139 {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 }else202 {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 else211 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 else216 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 }else223 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 else233 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 tbody270 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 PASTA279 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 PASTA293 $(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 else324 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 else419 {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 else441 $('#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 else473 $('#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 bug525 }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 autosave548 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 else561 this.alternate_border(BordersArray[BordersArray.length-2].sequence);562 }563 564 // Remove TD, title565 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 Content579 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 aba586 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 mensagens606 if (typeof(currentTab)!='number')607 return currentTab+"_";608 else609 return "";610 }611 612 function getMessageIdFromRowId(row_id) { // extrai o id da mensagem do id da linha613 var p = row_id.search("_s");614 if (p>0)615 return row_id.substr(0,p);616 else617 return row_id;618 }619 620 function getNumBoxFromTabId(tab_id) { // extrai o numBox do id da tab621 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.