Changeset 271 for trunk/expressoMail1_2/js/main.js
- Timestamp:
- 04/30/08 17:11:15 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/js/main.js
r245 r271 1 1 // Tempo do auto refresh (em milisegundos) 2 2 var time_refresh = 300000; 3 var autosave_time = 60000; 4 3 5 function init(){ 4 6 if (!is_ie) … … 38 40 setTimeout('auto_refresh()', time_refresh); 39 41 } 42 43 var away = false; 44 var away_timer; 45 function setAway () 46 { 47 away_timer = setTimeout("setAway()", 5000); 48 away=true; 49 } 50 51 function auto_save_msg(border_id) 52 { 53 if (document.getElementById('border_id_'+border_id)) 54 { 55 var keypress_handler = function stop_counting () 56 { 57 clearTimeout(away_timer); 58 away=false; 59 away_timer = setTimeout('setAway()',5000); 60 }; 61 62 var obj = document.getElementById('body_'+border_id).contentWindow.document; 63 if ( obj.addEventListener ) 64 obj.addEventListener('keypress', keypress_handler, false); 65 else if ( obj.attachEvent ) 66 obj.attachEvent('onkeypress', keypress_handler); 67 68 if (away) 69 { 70 var save_link = Element("save_message_options"); 71 if (save_link.onclick != '') 72 save_msg(border_id); 73 else 74 setTimeout('auto_save_msg('+border_id+')',autosave_time); 75 } 76 else 77 setTimeout('auto_save_msg('+border_id+')',3000); 78 } 79 } 80 81 function watch_changes_in_msg(border_id) 82 { 83 if (document.getElementById('border_id_'+border_id)) 84 { 85 function keypress_handler () 86 { 87 away=false; 88 var save_link = Element("save_message_options"); 89 save_link.onclick = function onclick(event) { newMessageTab.toPreserve[border_id] = true; save_msg(border_id); } ; 90 save_link.style.color = '#0000ff'; 91 }; 92 93 var obj = document.getElementById('body_'+border_id).contentWindow.document; 94 if ( obj.addEventListener ) 95 obj.addEventListener('keypress', keypress_handler, false); 96 else if ( obj.attachEvent ) 97 obj.attachEvent('onkeypress', keypress_handler); 98 99 var subject_obj = document.getElementById('subject_'+border_id); 100 if ( subject_obj.addEventListener ) 101 subject_obj.addEventListener('keypress', keypress_handler, false); 102 else if ( subject_obj.attachEvent ) 103 subject_obj.attachEvent('onkeypress', keypress_handler); 104 105 var to_obj = document.getElementById('to_'+border_id); 106 if ( to_obj.addEventListener ) 107 to_obj.addEventListener('keypress', keypress_handler, false); 108 else if ( to_obj.attachEvent ) 109 to_obj.attachEvent('onkeypress', keypress_handler); 110 111 } 112 } 113 114 40 115 41 116 function show_msg(msg_info){ … … 105 180 var box = Element("tbody_box"); 106 181 table_element.appendChild(box); 107 var len = data.length; 108 for (var i=0; i<len; i++){ 182 for (var i=0; i<data.length; i++){ 109 183 var new_msg = this.make_tr_message(data[i], current_folder); 110 184 _dragArea.makeDragged(new_msg, data[i].msg_number, data[i].subject, true); 111 185 eval(data[i].command); 112 186 } 187 188 for (var i=0; i<data.msgs_to_delete.length; i++){ 189 var remove_msg = document.getElementById(data.msgs_to_delete[i]); 190 if (remove_msg) 191 remove_msg.parentNode.removeChild(remove_msg); 192 } 113 193 if(parseInt(alert_new_msg) && data.new_msgs > 0) 114 194 alert(get_lang("You have %1 new", data['new_msgs'])+" "+(data['new_msgs'] > 1 ? get_lang("messages") : get_lang("message")) +"!"); 115 195 if(data.new_msgs > 0){ 116 Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + parseInt(data.new_msgs); 196 Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + parseInt(data.new_msgs); //refresh tab title 117 197 update_quota(); 118 198 } … … 368 448 369 449 function new_message(type, border_ID){ 370 var new_border_ID = draw_new_message(); 450 451 var new_border_ID = draw_new_message(parseInt(border_ID)); 452 if (preferences.auto_save_draft == 1) 453 setTimeout('auto_save_msg('+new_border_ID+')', autosave_time); 454 371 455 // Salva a pasta da mensagem respondida ou encaminhada: 372 456 var folder_message = Element("input_folder_"+border_ID); … … 596 680 break; 597 681 case "edit": 682 newMessageTab.imapBox[new_border_ID] = folder_message.value 683 newMessageTab.imapUid[new_border_ID] = parseInt(border_ID.substr(0,border_ID.indexOf("_"))); 684 document.getElementById('font_border_id_'+new_border_ID).innerHTML = data.subject; 598 685 data.to = Element("to_values_" + border_ID).value; 599 686 data.to = data.to.replace(/</gi,"<"); … … 610 697 Element("subject_" + new_border_ID).value = data.subject; 611 698 699 var divFiles = Element("divFiles_"+new_border_ID); 700 if (Element("attachments_" + border_ID)){ 701 var attachments = document.getElementById("attachments_" + border_ID).childNodes; 702 for (var i = (attachments.length > 1 ? 1 : 0); i < attachments.length; i++){ 703 var link_attachment = document.createElement("A"); 704 link_attachment.setAttribute("href", attachments[i].href); 705 link_attachment.innerHTML = attachments[i].innerHTML; 706 var tmp = link_attachment.href.replace("javascript:download_attachments(", "").replace(")", ""); 707 var a_tmp = tmp.split(','); 708 tmp = link_attachment.innerHTML.substring(0,link_attachment.innerHTML.lastIndexOf("(")); 709 a_tmp[2] = "'"+tmp.substring(0,tmp.length-1)+"'"; 710 s_tmp = escape(connector.serialize(a_tmp)); 711 divFiles.innerHTML += "<input style='border:0' type='CHECKBOX' name='forwarding_attachments[]' checked value=\""+s_tmp+"\"/>"; 712 divFiles.appendChild(link_attachment); 713 } 714 } 612 715 var body = Element("body_" + new_border_ID); 613 716 body.contentWindow.document.open(); … … 682 785 set_message_flag(msg_number_forwarded.value, 'forwarded'); 683 786 } 684 685 787 delete_border(ID,'true'); 686 788 if(wfolders.alert){ … … 699 801 write_msg(data); 700 802 } 803 if ((! newMessageTab.toPreserve[ID]) && (newMessageTab.imapUid[ID] != 0)) 804 cExecute ("$this.imap_functions.delete_msgs&folder="+newMessageTab.imapBox[ID]+"&msgs_number="+newMessageTab.imapUid[ID],function(data){ return }); 701 805 } 702 806 703 807 function send_message(ID, folder, folder_name){ 808 var save_link = Element("save_message_options"); 809 save_link.onclick = ''; 810 save_link.style.color = '#999'; 811 704 812 ID_tmp = ID; 705 813 706 814 var handler_send_message = function(data){ 707 send_message_return(data, this.ID_tmp); 708 } 709 815 send_message_return(data, this.ID_tmp); // this is a hack to escape quotation form connector bug 816 }; 817 710 818 var textArea = document.createElement("TEXTAREA"); 711 819 textArea.style.display='none'; … … 719 827 input_folder.name = "folder"; 720 828 input_folder.value = folder; 829 var msg_id = document.createElement("INPUT"); 830 msg_id.style.display='none'; 831 msg_id.name = "msg_id"; 832 msg_id.value = newMessageTab.imapUid[ID]; 721 833 722 834 if (is_ie){ … … 730 842 form.appendChild(textArea); 731 843 form.appendChild(input_folder); 844 form.appendChild(msg_id); 732 845 733 846 var _subject = trim(Element("subject_"+ID).value); … … 736 849 return; 737 850 } 738 739 cExecuteForm ("$this.imap_functions.send_mail", form, handler_send_message); 740 } 741 742 function save_msg(border_id, folder_id, folder_name){ 743 var handler_save_msg = function(data){ 744 if(!verify_session(data)) 745 return; 746 if (data.append){ 747 write_msg(get_lang('Your message was save as draft in folder %1.', data.folder_name)); 748 delete_border(data.border_id,'true'); 749 } 750 else 751 write_msg('ERRO saving your message.'); 752 } 753 754 var msg_data = new Array(); 755 if (document.getElementById("to_" + border_id)) 756 msg_data.to = Element("to_" + border_id).value; 757 758 if (document.getElementById("cc_" + border_id)) 759 msg_data.cc = Element("cc_" + border_id).value; 760 761 if (document.getElementById("cco_" + border_id)) 762 msg_data.cco = Element("cco_" + border_id).value; 763 764 if (document.getElementById("subject_" + border_id)) 765 msg_data.subject = Element("subject_" + border_id).value; 766 767 if (document.getElementById("body_" + border_id)) 768 msg_data.body = Element("body_" + border_id).contentWindow.document.body.innerHTML; 769 770 var args = "$this.imap_functions.save_msg"; 771 var body = msg_data.body.replace(/ l/g, "%nbsp;"); 772 body = url_encode(msg_data.body); 773 msg_data.subject = url_encode(msg_data.subject); 774 var params = "folder_id="+folder_id+"&folder_name="+folder_name+"&border_id="+border_id+"&to="+msg_data.to+"&cc="+msg_data.cc+"&cco="+msg_data.cco+"&subject="+msg_data.subject+"&body="+body; 775 cExecute( args, handler_save_msg, params); 776 } 851 852 cExecuteForm ("$this.imap_functions.send_mail", form, handler_send_message, ID); 853 } 854 855 function return_save(data,border_id,folder_name,folder_id,message_id) 856 { 857 var handler_delete_msg = function(data){ refresh(preferences.alert_new_msg); }; 858 RichTextEditor.saveFlag = 1; 859 860 if (! data) 861 write_msg('ERROR saving your message.'); 862 else 863 { 864 newMessageTab.imapUid[border_id] = data.msg_no; 865 newMessageTab.imapBox[border_id] = data.folder_id; 866 867 var newTitle = document.getElementById('subject_'+border_id).value; 868 if (newTitle.length > 18) 869 newTitle = newTitle.substr(18) + '...'; 870 else if (newTitle == '') 871 newTitle = get_lang("No subject"); 872 document.getElementById('font_border_id_'+border_id).innerHTML = newTitle; 873 874 // Replace the embedded images for new uids 875 var mainField = document.getElementById('body_'+border_id).contentWindow; 876 var content_body = mainField.document.getElementsByTagName('body').item(0).innerHTML; 877 var body_images = content_body.match(/msg_num=\d*/g); 878 if (body_images) 879 { 880 for (var i=0; i<body_images.length; i++){ 881 content_body = content_body.replace(body_images[i],"msg_num="+newMessageTab.imapUid[border_id]); 882 } 883 mainField.document.getElementsByTagName('body').item(0).innerHTML = content_body; 884 // This is not just stupid, it refresh screen to avoid broken images 885 mainField.document.getElementsByTagName('body').item(0).innerHTML = mainField.document.getElementsByTagName('body').item(0).innerHTML; 886 } 887 888 //Replace all files to new files 889 var divFiles = Element("divFiles_"+border_id); 890 var divParent = divFiles.parentNode; 891 divParent.removeChild(divFiles); 892 divFiles = document.createElement('DIV'); 893 divFiles.id = "divFiles_"+border_id; 894 divParent.appendChild(divFiles); 895 896 var attach_files = connector.unserialize(data.files); 897 if (attach_files != null) { 898 newMessageTab.countFile[border_id] = attach_files.length; 899 for (att_index = 0; att_index < attach_files.length; att_index++){ 900 901 var link_attachment = document.createElement("A"); 902 var fileName = attach_files[att_index].substr(0,attach_files[att_index].indexOf('_SIZE_')); 903 var fileSize = parseInt(attach_files[att_index].substr(attach_files[att_index].indexOf('_SIZE_')+6))/1024 904 link_attachment.innerHTML = fileName + " ("+parseInt(fileSize)+" kb)"; 905 906 var href = "'"+folder_id+"','"+data.msg_no+"','"+(att_index)+"','"+(att_index+2)+"','base64'"; 907 908 link_attachment.setAttribute("href", "javascript:download_attachments("+href+")"); 909 910 var a_tmp = href.split(','); 911 a_tmp[2] = fileName; 912 s_tmp = escape(connector.serialize(a_tmp)); 913 914 var check_attachment = document.createElement("INPUT"); 915 check_attachment.type = 'CHECKBOX'; 916 check_attachment.name = 'forwarding_attachments[]'; 917 check_attachment.value = s_tmp; 918 919 divFiles.appendChild(check_attachment); 920 divFiles.appendChild(link_attachment); 921 divFiles.appendChild(document.createElement("BR")); 922 923 check_attachment.checked = true; 924 } 925 } 926 if (message_id) 927 cExecute ("$this.imap_functions.delete_msgs&folder="+newMessageTab.imapBox[border_id]+"&msgs_number="+message_id,handler_delete_msg); 928 929 if (preferences.auto_save_draft == 1) 930 setTimeout('auto_save_msg('+border_id+')', autosave_time); 931 932 var save_link = Element("save_message_options"); 933 save_link.onclick = ''; 934 save_link.style.color = '#999'; 935 watch_changes_in_msg(border_id); 936 937 write_msg(get_lang('Your message was save as draft in folder %1.', folder_name)); 938 } 939 } 940 941 function save_msg(border_id){ 942 if (newMessageTab.imapBox[border_id]) //Gets the imap folder 943 var folder_id = newMessageTab.imapBox[border_id]; 944 else 945 var folder_id = "INBOX/"+draftsfolder; 946 947 if (folder_id == 'INBOX') // and folder name from border 948 var folder_name = get_lang(folder_id); 949 else 950 var folder_name = folder_id.substr(6); 951 952 // hack to avoid form connector bug, escapes quotation. Please see #179 953 tmp_border_id=border_id; 954 tmp_folder_name=folder_name; 955 tmp_folder_id=folder_id; 956 message_id = newMessageTab.imapUid[border_id]; 957 var handler_save_msg = function(data){ return_save(data,this.tmp_border_id,this.tmp_folder_name,this.tmp_folder_id,this.message_id); } 958 959 var textArea = document.createElement("TEXTAREA"); 960 textArea.style.display='none'; 961 textArea.name = "body"; 962 body = document.getElementById("body_"+border_id); 963 textArea.value += '<body>\r\n'; 964 textArea.value += body.contentWindow.document.body.innerHTML; 965 textArea.value += '\r\n</body>'; 966 var input_folder = document.createElement("INPUT"); 967 input_folder.style.display='none'; 968 input_folder.name = "folder"; 969 input_folder.value = folder_id; 970 971 if (is_ie){ 972 var i = 0; 973 while (document.forms(i).name != "form_message_"+border_id){i++} 974 form = document.forms(i); 975 } 976 else 977 form = document.forms["form_message_"+border_id]; 978 form.appendChild(textArea); 979 form.appendChild(input_folder); 980 981 cExecuteForm ("$this.imap_functions.save_msg", form, handler_save_msg,border_id); 982 } 983 984 function return_saveas(data,border_id,folder_name) 985 { 986 if(!verify_session(data)) 987 return; 988 if (data.append) 989 { 990 delete_border(border_id,null); 991 write_msg(get_lang('Your message was save as draft in folder %1.', folder_name)); 992 } 993 else 994 write_msg('ERROR saving your message.'); 995 } 996 997 998 function save_as_msg(border_id, folder_id, folder_name){ 999 // hack to avoid form connector bug, escapes quotation. Please see #179 1000 tmp_border_id=border_id; 1001 tmp_folder_name=folder_name; 1002 var handler_save_msg = function(data){ return_saveas(data,this.tmp_border_id,this.tmp_folder_name); } 1003 var textArea = document.createElement("TEXTAREA"); 1004 textArea.style.display='none'; 1005 textArea.name = "body"; 1006 body = document.getElementById("body_"+border_id); 1007 textArea.value += '<body>\r\n'; 1008 textArea.value += body.contentWindow.document.body.innerHTML; 1009 textArea.value += '\r\n</body>'; 1010 1011 var input_folder = document.createElement("INPUT"); 1012 input_folder.style.display='none'; 1013 input_folder.name = "folder"; 1014 input_folder.value = folder_id; 1015 1016 if (is_ie){ 1017 var i = 0; 1018 while (document.forms(i).name != "form_message_"+border_id){i++} 1019 form = document.forms(i); 1020 } 1021 else 1022 form = document.forms["form_message_"+border_id]; 1023 form.appendChild(textArea); 1024 form.appendChild(input_folder); 1025 1026 cExecuteForm ("$this.imap_functions.save_msg", form, handler_save_msg,border_id); 1027 } 1028 777 1029 778 1030 // Get checked messages
Note: See TracChangeset
for help on using the changeset viewer.