Changeset 5533 for trunk/expressoMail1_2/js/draw_api.js
- Timestamp:
- 02/22/12 18:04:20 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/js/draw_api.js
r5527 r5533 1 var openTab = { 1 /** 2 * Estrutura que guarda em cache as mensagens abertas, a exemplo da estrutura utilizada 3 * na funcionalidade de anexar mensagens. 4 * Isto reduz a necessidade de acessar estruturas da tela para obter informações sobre 5 * as mensagens, como tem sido para encaminhar, responder, etc. 6 * Manter os dados 'limpos' em uma estrutura 'somente-leitura' permite maior flexibilidade 7 * para mudar a tela e menos processamento de limpeza de dados (por exemplo retirar tags de 8 * formatação, etc.) 9 */ 10 onceOpenedHeadersMessages = {}; 11 12 var openTab = { 2 13 'type' : [], // 8 types of tabs, further info. see expressolivre.org/dev/wiki/mail/Documentacao 3 14 'content_id' : [], … … 153 164 var noden=document.getElementById('lnews_roottree_folders'); 154 165 noden.style.backgroundImage="url(templates/"+template+"/images/menu/rss.png)"; 166 167 168 155 169 } 156 170 // cExecute('$this.rss.getChannels',handlerChannel); … … 206 220 } 207 221 208 /*tree_folders.draw(Element('content_folders'));222 tree_folders.draw(Element('content_folders')); 209 223 if (!expresso_offline) { 210 224 n_root.changeState(); … … 214 228 root_local.changeState(); 215 229 tree_folders.getNodeById('local_Inbox')._select(); 216 } */217 230 } 231 218 232 var trash_span = document.getElementById(mount_url_folder(["lINBOX",special_folders["Trash"]]) + 'tree_folders'); 219 220 221 233 var draft_span = document.getElementById(mount_url_folder(["lINBOX",special_folders["Drafts"]]) + 'tree_folders'); 234 var sent_span = document.getElementById(mount_url_folder(["lINBOX",special_folders["Sent"]]) + 'tree_folders'); 235 var spam_span = document.getElementById(mount_url_folder(["lINBOX",special_folders["Spam"]]) + 'tree_folders'); 222 236 //local folders 223 237 var sent_local_conf = this.preferences.save_in_folder.replace(mount_url_folder(["INBOX",""]),"local_"); … … 321 335 } 322 336 } 323 337 } 338 339 function draw_tree_labels(){ 340 labels = DataLayer.get('label',{criteria:{order: 'name'}}); 341 342 $('#content_folders').append("<div id='MyMarckersList' class='acc-list list-label' ></div>").find("#MyMarckersList") 343 .append("<div class='my-labels'>" + 344 "<img src='../prototype/modules/mail/img/tag.png'/>" + 345 "<a class='title-my-labels' tabindex='0' role='button' aria-expanded='false' title='Meus marcadores'>Meus marcadores</a>" + 346 347 "<span class='status-list-labels ui-icon ui-icon-triangle-1-s'></span>" + 348 "</div>" 349 ) 350 .append(DataLayer.render("../prototype/modules/mail/templates/label_list.ejs", {labels: labels} )) 351 .find("li.label-item").css({"background-color":"#ffffff", "border-color":"#CCCCCC", "color":"#444444"}).click(function(){ 352 var labelId = $(this).attr('class').match(/label-item-([\d]+[()a-zA-Z]*)/)[1]; 353 search_emails("UNDELETED KEYWORD \"$Label"+labelId+"\""); 354 }) 355 .find(".square-color").css("display","").click(function(){ 356 $(this).parent(".label-item").each(function(){ 357 configureLabels({selectedItem: $(this).attr('class').match(/label-item-([\d]+[()a-zA-Z]*)/)[1]}); 358 var id_label_item = $(this).attr('class').match(/label-item-([\d]+[()a-zA-Z]*)/)[1]; 359 $(".label-list-container .label-list").find(".label-item-"+id_label_item).trigger("click"); 360 }); 361 }); 362 363 $("#MyMarckersList a.title-my-labels").click(function() { 364 $("#MyMarckersList ul.label-list").toggleClass("hidden") 365 $('#MyMarckersList .status-list-labels').toggleClass("ui-icon-triangle-1-s"); 366 $('#MyMarckersList .status-list-labels').toggleClass("ui-icon-triangle-1-n"); 367 }); 368 369 if (!labels){ 370 $(".my-labels").addClass("hidden"); 371 } 324 372 } 325 373 … … 436 484 } 437 485 draw_new_tree_folder(); 486 draw_tree_labels(); 438 487 } 439 488 … … 601 650 // stores the percentages of the cells 602 651 //var colSizes = [ ["24","24","12","12","12","16","16","20%","58%","11%","11%"], ["16","16","12","12","12","20%","20%","*","10%","10%"] ]; 603 var colSizes = [ ["2%","2%","1%","1%","1%","1%","2%","20%","48%","11%","11%"], ["16","16","12","12","12","20%","20%","*","10%","10%"] ]; 652 //var colSizes = [ ["2%","2%","1%","1%","1%","1%","2%","2%","20%","46%","11%","11%"], ["16","16","12","12","12","20%","20%","*","10%","10%"] ]; 653 var colSizes = [ ["2%","2%","1%","1%","1%","1%","2%","2%","2%","20%","46%","11%","11%"], ["2%","1%","1%","1%","1%","1%","1%","20%","20%","*","10%","9%"] ]; 604 654 // stores the alignments of the cells 605 655 var colAligns = [ ['','','','','','','','left','left','center','center'], ['','','','','','left','left','left','center','center'] ]; … … 942 992 // Draw the inbox and another folders 943 993 function draw_box(headers_msgs, msg_folder, alternate){ 944 994 /* 945 995 * When the paging response is not in the correct folder you need to change folder 946 996 * This occurs when the Ajax response is not fast enough and the user click in outher … … 968 1018 } 969 1019 /* --- */ 1020 1021 /** 1022 * Get the labels aplyed to the messages and saves the information 1023 * into message array 1024 */ 1025 var messageNumbers = new Array(); 1026 for (var i=0; i<headers_msgs.length; i++) { 1027 messageNumbers.push(headers_msgs[i].msg_number); 1028 } 1029 var labeleds = DataLayer.get('labeled', { 1030 filter: ['AND', ['IN', 'messageNumber', messageNumbers], ['=', 'folderName', msg_folder]], 1031 criteria: {deepness: 2} 1032 }); 1033 1034 if(labeleds) { 1035 for (var i=0; i<headers_msgs.length; i++) { 1036 for (var j=0; j<labeleds.length; j++) { 1037 if (labeleds[j].messageNumber == headers_msgs[i].msg_number) { 1038 if (!headers_msgs[i].labels) 1039 headers_msgs[i].labels = {}; 1040 headers_msgs[i].labels[labeleds[j].label.id] = labeleds[j].label; 1041 } 1042 } 1043 } 1044 } 1045 1046 /** 1047 * Get the followupflags aplyed to the messages and saves the information 1048 * into message array 1049 */ 1050 var followupflaggeds = DataLayer.get('followupflagged', { 1051 filter: ['AND', ['IN', 'messageNumber', messageNumbers], ['=', 'folderName', msg_folder]], 1052 criteria: {deepness: 1} 1053 }); 1054 1055 if(followupflaggeds) { 1056 for (var i=0; i<headers_msgs.length; i++) { 1057 for (var j=0; j<followupflaggeds.length; j++) { 1058 if (followupflaggeds[j].messageNumber == headers_msgs[i].msg_number) { 1059 if (!headers_msgs[i].followupflagged) 1060 headers_msgs[i].followupflagged = {}; 1061 headers_msgs[i].followupflagged = followupflaggeds[j]; 1062 } 1063 } 1064 } 1065 } 1066 1067 /** 1068 * Preenche a estrutura de cache de mensagens para posterior consulta de 1069 * informações sobre as mensagens no escopo global. 1070 */ 1071 for (var i=0; i<headers_msgs.length; i++) { 1072 if (!onceOpenedHeadersMessages[current_folder]) 1073 onceOpenedHeadersMessages[current_folder] = {}; 1074 onceOpenedHeadersMessages[current_folder][headers_msgs[i].msg_number] = headers_msgs[i]; 1075 } 970 1076 971 1077 if (alternate) … … 1030 1136 1031 1137 td_element2 = createTDElement(0,1); 1032 td_element3 = createTDElement(0, 7,"th_resizable","left","message_header_SORTFROM_"+numBox);1138 td_element3 = createTDElement(0,8,"th_resizable","left","message_header_SORTFROM_"+numBox); 1033 1139 td_element3.onclick = function () {sort_box(search_box_type,'SORTFROM');}; 1034 1140 td_element3.innerHTML = get_lang("From"); 1035 1141 1036 td_element4 = createTDElement(0, 8,"th_resizable","left","message_header_SORTSUBJECT_"+numBox);1142 td_element4 = createTDElement(0,9,"th_resizable","left","message_header_SORTSUBJECT_"+numBox); 1037 1143 td_element4.onclick = function () {sort_box(search_box_type,'SORTSUBJECT');}; 1038 1144 td_element4.innerHTML = get_lang("Subject"); 1039 1145 1040 td_element5 = createTDElement(0, 9,"th_resizable","center","message_header_SORTARRIVAL_"+numBox);1146 td_element5 = createTDElement(0,10,"th_resizable","center","message_header_SORTARRIVAL_"+numBox); 1041 1147 td_element5.onclick = function () {sort_box(search_box_type,'SORTARRIVAL');}; 1042 1148 td_element5.innerHTML = get_lang("Date"); 1043 1149 1044 td_element6 = createTDElement(0,1 0,"th_resizable","left","message_header_SORTSIZE_"+numBox);1150 td_element6 = createTDElement(0,11,"th_resizable","left","message_header_SORTSIZE_"+numBox); 1045 1151 td_element6.onclick = function () {sort_box(search_box_type,'SORTSIZE');} 1046 1152 td_element6.innerHTML = get_lang("Size"); … … 1060 1166 var td_element24 = createTDElement(0,5); 1061 1167 td_element24.innerHTML = " "; 1062 1063 var td_element25 = createTDElement(0,6); 1168 1169 1170 var td_element25 = createTDElement(0,7); 1064 1171 td_element25.innerHTML = " "; 1172 1173 var td_element27 = createTDElement(0,8); 1174 td_element25.innerHTML = " "; 1175 1176 var td_element26 = createTDElement(0,6); 1177 td_element26.innerHTML = " "; 1178 1065 1179 1066 1180 tr_element.appendChild(td_element21); … … 1068 1182 tr_element.appendChild(td_element23); 1069 1183 tr_element.appendChild(td_element24); 1184 tr_element.appendChild(td_element26); 1185 tr_element.appendChild(td_element27); 1070 1186 tr_element.appendChild(td_element25); 1187 1071 1188 tr_element.appendChild(td_element3); 1072 1189 tr_element.appendChild(td_element4); … … 1211 1328 }, 1212 1329 helper: function(event){ 1213 if($(this).find("input:checkbox").attr("checked") != "checked"){ 1214 $(this).find("input:checkbox").trigger('click'); 1215 $(this).addClass("selected_msg"); 1216 } 1330 $(this).find("input:checkbox").attr("checked", true); 1217 1331 if($("#table_box").find("tr input:checked").length > 1) 1218 1332 return $(DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : (($("#table_box").find("tr input:checked")).length+" mensagens selecionadas"), type: "messages"})); … … 1228 1342 scrollSpeed: 100, 1229 1343 containment: "#divAppbox" 1230 }).bind("contextmenu", function(){ 1231 if($(this).find("input:checkbox").attr("checked") != "checked"){ 1232 $(this).find("input:checkbox").trigger('click'); 1233 $(this).addClass("selected_msg"); 1344 }).bind("mouseup", function(event){ 1345 if(event.button == 2) 1346 if($(this).find("input:checkbox").attr("checked") != "checked"){ 1347 $(this).find("input:checkbox").trigger('click'); 1348 $(this).addClass("selected_msg"); 1234 1349 } 1235 1350 }); … … 1255 1370 alert("Carregou em "+(_eTime - _bTime)+" ms"); 1256 1371 } 1372 1257 1373 var msg_folder = Element('msg_folder').value; 1258 1374 var msg_number = Element('msg_number').value; … … 1271 1387 if(Element("table_quota")) 1272 1388 connector.loadScript("InfoQuota"); 1273 1389 1274 1390 // creates the dotted ruler which helps user to visualize resizing of columns 1275 1391 var ruler_element = document.getElementById("table_message_ruler"); … … 1281 1397 document.getElementById("exmail_main_body").appendChild(ruler_element); 1282 1398 } 1283 1399 1284 1400 } 1285 1401 … … 1303 1419 // Passar o parâmetro offset para esta função 1304 1420 function make_tr_message(headers_msgs, msg_folder, offsetToGMT){ 1305 if (typeof offsetToGMT == 'undefined') 1306 { 1307 // In older local messages headers_msgs.offsetToGMT is undefined. 1308 offsetToGMT = typeof headers_msgs.offsetToGMT != 'undefined'?headers_msgs.offsetToGMT:0; 1309 } 1421 1422 if (typeof offsetToGMT == 'undefined') 1423 { 1424 // In older local messages headers_msgs.offsetToGMT is undefined. 1425 offsetToGMT = typeof headers_msgs.offsetToGMT != 'undefined'?headers_msgs.offsetToGMT:0; 1426 } 1310 1427 var tr_element = document.createElement('tr'); 1311 1428 if(typeof(preferences.line_height) != 'undefined') … … 1350 1467 chk_box_element.className = "checkbox"; 1351 1468 chk_box_element.setAttribute("id", "check_box_message_"+headers_msgs.msg_number); 1352 chk_box_element.onclick = function(e){ 1353 if (is_ie) 1354 changeBgColor(window.event,headers_msgs.msg_number); 1355 else 1469 chk_box_element.onchange = function(e){ 1470 //if (is_ie) 1356 1471 changeBgColor(e,headers_msgs.msg_number); 1357 1472 }; … … 1415 1530 1416 1531 1417 td_element25 = createTDElement(0, 6,"td_msg",null,"td_message_unseen_"+headers_msgs.msg_number);1532 td_element25 = createTDElement(0,7,"td_msg",null,"td_message_unseen_"+headers_msgs.msg_number); 1418 1533 if ((headers_msgs.Unseen == 'U') || (headers_msgs.Recent == 'N')) 1419 1534 td_element25.innerHTML = "<img src ='templates/"+template+"/images/unseen.gif' title='"+get_lang('Unseen')+"'>"; … … 1422 1537 1423 1538 1424 td_element3 = createTDElement(0, 7,"td_msg td_resizable","left","td_from_"+ headers_msgs.msg_number);1539 td_element3 = createTDElement(0,8,"td_msg td_resizable","left","td_from_"+ headers_msgs.msg_number); 1425 1540 var _onclick = function(){InfoContact.hide();proxy_mensagens.get_msg(headers_msgs.msg_number, msg_folder,true, show_msg);}; 1426 1541 td_element3.onclick = _onclick; … … 1483 1598 } 1484 1599 1485 td_element4 = createTDElement(0, 8,"td_msg td_resizable","left");1600 td_element4 = createTDElement(0,9,"td_msg td_resizable","left"); 1486 1601 td_element4.className += " td_msg_subject"; 1487 1602 td_element4.onclick = _onclick; … … 1511 1626 td_element4.innerHTML += "</a>"; 1512 1627 } 1513 1514 1515 td_element5 = createTDElement(0,9,"td_msg td_resizable","center"); 1628 1629 td_element5 = createTDElement(0,10,"td_msg td_resizable","center"); 1516 1630 td_element5.onclick = _onclick; 1517 1631 1632 td_element27 = createTDElement(0,7,"td_msg",null,"td_message_labels_"+headers_msgs.msg_number); 1633 $(td_element27).addClass("td-label"); 1634 1635 if (headers_msgs.labels) { 1636 td_element27.innerHTML = '<img src="../prototype/modules/mail/img/tag.png">'; 1637 updateLabelsColumn(headers_msgs) 1638 } 1639 1640 td_element26 = createTDElement(0,6,"td_msg",null,"td_message_followup_"+headers_msgs.msg_number); 1641 $(td_element26).addClass("td-followup-flag"); 1642 td_element26.innerHTML = '<div class="flag-edited" style="width:9px;height:6px;"><img src="../prototype/modules/mail/img/flagEditor.png"></div>'; 1643 1644 if (headers_msgs.followupflagged) { 1645 $(td_element26).attr('title', headers_msgs.followupflagged.followupflag.name) 1646 .find(".flag-edited").css("background",headers_msgs.followupflagged.backgroundColor); 1647 if(headers_msgs.followupflagged.isDone == "1"){ 1648 $(td_element26).find(".flag-edited").find("img") 1649 .attr("src", "../prototype/modules/mail/img/flagChecked.png") 1650 .css("margin-left","-3px"); 1651 } 1652 } else { 1653 $(td_element26).find(".flag-edited").css("background","#cccccc"); 1654 } 1655 1656 /** 1657 * Clique para aplicar sinalizador 1658 */ 1659 $(td_element26).click(function() { 1660 1661 var messageClickedId = $(this).attr('id').match(/td_message_followup_([\d]+)/)[1]; 1662 /** 1663 * Hack: 1664 * headers_msgs.followupflagged.id não vai funcionar porque já foi feito DataLayer.commit() 1665 * por isso o id deve ser obtido do banco 1666 * também para verificar se há ou não sinalizador nesta mensagem 1667 */ 1668 var flagged = DataLayer.get('followupflagged', {filter: [ 1669 'AND', 1670 ['=', 'messageNumber', messageClickedId], 1671 ['=', 'folderName', msg_folder] 1672 ]}); 1673 if (flagged == '' || flagged == [] || flagged == 'undefined') { 1674 /** 1675 * Aplica followupflag de Acompanhamento 1676 */ 1677 1678 headers_msgs.followupflagged = { 1679 uid : User.me.id, 1680 folderName : msg_folder, 1681 messageNumber : messageClickedId, 1682 alarmTime : false, 1683 backgroundColor : '#FF2016', 1684 followupflagId: '1', 1685 followupflag: DataLayer.get('followupflag', '1') 1686 }; 1687 $(this).find(".flag-edited").css("background", headers_msgs.followupflagged.backgroundColor); 1688 headers_msgs.followupflagged.id = DataLayer.put('followupflagged', headers_msgs.followupflagged); 1689 1690 } else if (headers_msgs.followupflagged.followupflag.name == 'Follow up') { 1691 /** 1692 * Remover followupflag de Acompanhamento (DFD0078:RI25) 1693 */ 1694 $(this).find(".flag-edited").css("background", "#cccccc"); 1695 1696 1697 DataLayer.remove('followupflagged', flagged[0].id); 1698 $('#td_message_followup_' + messageClickedId + ', ' + 1699 '#td_message_followup_search_' + messageClickedId).find(".flag-edited") 1700 .find("img").attr("src", "../prototype/modules/mail/img/flagEditor.png").css("margin-left","0"); 1701 } else { 1702 $(tr_element).addClass('selected_msg').find(':checkbox').trigger('click'); 1703 configureFollowupflag(); 1704 } 1705 1706 }); 1707 1518 1708 var norm = function (arg) {return (arg < 10 ? '0'+arg : arg);}; 1519 1709 var weekDays = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']; … … 1557 1747 td_element5.alt = td_element5.title; 1558 1748 1559 td_element6 = createTDElement(0,1 0,"td_msg td_resizable","center");1749 td_element6 = createTDElement(0,11,"td_msg td_resizable","center"); 1560 1750 td_element6.onclick = _onclick; 1561 1751 td_element6.setAttribute("noWrap","true"); … … 1567 1757 tr_element.appendChild(td_element22); 1568 1758 tr_element.appendChild(td_element23); 1569 tr_element.appendChild(td_element24); 1759 tr_element.appendChild(td_element24); 1760 tr_element.appendChild(td_element26); 1761 tr_element.appendChild(td_element27); 1570 1762 tr_element.appendChild(td_element25); 1763 1571 1764 tr_element.appendChild(td_element3); 1572 1765 tr_element.appendChild(td_element4); … … 3386 3579 if ((e.keyCode) == 120) //F9 3387 3580 { 3388 emQuickSearch(input_replyto.value, 'replyto', ID , undefined,true);3581 emQuickSearch(input_replyto.value, 'replyto', ID); 3389 3582 } 3390 3583 else … … 3412 3605 if ((window.event.keyCode) == 120) //F9 3413 3606 { 3414 emQuickSearch(input_replyto.value, 'replyto', ID , undefined,true);3607 emQuickSearch(input_replyto.value, 'replyto', ID); 3415 3608 } 3416 3609 else … … 3453 3646 if ((e.keyCode) == 120) //F9 3454 3647 { 3455 emQuickSearch(input_to.value, 'to', ID , undefined,true);3648 emQuickSearch(input_to.value, 'to', ID); 3456 3649 } 3457 3650 else … … 3479 3672 if ((window.event.keyCode) == 120) //F9 3480 3673 { 3481 emQuickSearch(input_to.value, 'to', ID , undefined,true);3674 emQuickSearch(input_to.value, 'to', ID); 3482 3675 } 3483 3676 else … … 3536 3729 if ((e.keyCode) == 120) //F9 3537 3730 { 3538 emQuickSearch(input_cc.value, 'cc', ID , undefined,true);3731 emQuickSearch(input_cc.value, 'cc', ID); 3539 3732 } 3540 3733 else … … 3562 3755 if ((window.event.keyCode) == 120) //F9 3563 3756 { 3564 emQuickSearch(input_cc.value, 'cc', ID , undefined,true);3757 emQuickSearch(input_cc.value, 'cc', ID); 3565 3758 } 3566 3759 else … … 3608 3801 if ((e.keyCode) == 120) //F9 3609 3802 { 3610 emQuickSearch(input_cco.value, 'cco', ID , undefined,true);3803 emQuickSearch(input_cco.value, 'cco', ID); 3611 3804 } 3612 3805 else … … 3633 3826 if ((window.event.keyCode) == 120) //F9 3634 3827 { 3635 emQuickSearch(input_cco.value, 'cco', ID , undefined,true);3828 emQuickSearch(input_cco.value, 'cco', ID); 3636 3829 } 3637 3830 else … … 3656 3849 var cc_load = ""; 3657 3850 a_cc_link.onclick = function () { 3658 var rm = false;3659 3851 var remove = function(){ 3660 3852 document.getElementById('tr_cc_'+ID).style.display = 'none'; … … 3662 3854 $("#cc_"+ID).val(""); 3663 3855 $("#a_cc_link_"+ID).toggleClass("expressomail-button-icon-ative"); 3664 rm = true;3665 3856 } 3666 3857 if(!($("#cc_"+ID).parent().find("div")[0])){ … … 3682 3873 } 3683 3874 } 3684 if (rm) 3685 input_to.focus(); 3686 else 3687 input_cc.focus(); 3875 input_cc.focus(); 3876 3688 3877 return false; 3689 3878 }; … … 4014 4203 $("#"+$(this).attr("name")).attr("checked", (!check ? true : false)); 4015 4204 //$(this).button({ disabled: false }); 4016 if (RichTextEditor.plain[id] != true)4017 setTimeout("RichTextEditor.focus("+ID+")",100);4018 else4019 $('#body_'+ID).focus();4020 4205 }); 4021 4206
Note: See TracChangeset
for help on using the changeset viewer.