Changeset 5134 for trunk/expressoMail1_2/js/main.js
- Timestamp:
- 11/03/11 13:24:28 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/js/main.js
r5083 r5134 5 5 var autosave_time = 20000; 6 6 7 var results_search_messages = ""; 8 var cabecalho = '<h4>ExpressoLivre - ExpressoMail</h4>'; 9 7 10 function init(){ 8 11 if (!is_ie) … … 20 23 21 24 preferences = data; 25 26 27 if(preferences.show_name_print_messages == "1") { 28 var getUserName = document.getElementById("user_info"); 29 var userName = getUserName.innerHTML; 30 var position = userName.indexOf("-"); 31 var userName = userName.substring(3, position); 32 cabecalho = '<h4>' + userName; 33 } 34 35 22 36 current_folder="INBOX"; 23 24 version = (navigator.userAgent.match( /.+ie\s([\d.]+)/i ) || [])[1];25 if(parseInt(version)==7 && (/trident\/\d/i.test(navigator.userAgent)))26 preferences.use_local_messages="0";27 37 28 38 if( (window.google && google.gears) && !google.gears.factory.getPermission()) … … 318 328 // Call function to draw message 319 329 // If needed, delete old border 320 if (openTab.type[currentTab] == 2 || openTab.type[currentTab] == 3) 330 var isPartMsg = false; 331 for(var ii = 0; ii < partMsgs.length; ii++) 332 if(partMsgs[ii] == ID) isPartMsg = true; 333 334 if ((openTab.type[currentTab] == 2 || openTab.type[currentTab] == 3) && isPartMsg === false) 321 335 delete_border(currentTab,'false'); 322 336 … … 394 408 if(!verify_session(data)) 395 409 return; 410 var total_messages_element = Element('tot_m'); 396 411 397 412 var box = Element("tbody_box"); … … 415 430 416 431 var box = Element("tbody_box"); 417 table_element.insertBefore(box, Element("colgroup_main_"+numBox)); // keeps colgroup as the last child 418 419 if (data.msgs_to_delete.length > 0) 432 //table_element.insertBefore(box, Element("colgroup_main_"+numBox)); // keeps colgroup as the last child 433 //table_element.appendChild(Element("colgroup_main_"+numBox)); 434 435 $(table_element).append(Element("colgroup_main_"+numBox)); 436 437 if (data.msgs_to_delete.length > 0){ 420 438 for (var i=0; i<data.msgs_to_delete.length; i++){ 421 439 if ( (data.msgs_to_delete[i] != undefined) && (data.msgs_to_delete[i] != "")){ … … 423 441 } 424 442 } 425 443 } 426 444 if (data[0].msg_folder != current_folder) // Bad request 427 445 return false; 428 429 var total_messages_element = Element('tot_m');430 431 446 for (var i=0; i<data.length; i++){ 432 447 var existent = document.getElementById(data[i].msg_number); … … 437 452 438 453 if( data[i].next_msg_number != undefined && data[i].next_msg_number != null ){ 439 try { box.insertBefore(new_msg, box.childNodes[data[i].msg_key_position]); } 440 catch (e) { box.insertBefore(new_msg, box.firstChild); } 454 try { 455 box.insertBefore(new_msg, box.childNodes[data[i].msg_key_position]); 456 } 457 catch (e){ 458 $(box).append(new_msg); 459 } 441 460 } 442 461 else if (data[i].Recent == 'N'){ … … 446 465 box.appendChild(new_msg); 447 466 } 448 // if( data[i].next_msg_number != undefined && data[i].next_msg_number != null )449 // box.insertBefore(new_msg, Element(data[i].next_msg_number));450 // else if (data[i].Recent == 'N')451 // box.insertBefore(new_msg,box.firstChild);452 // else453 // box.appendChild(new_msg);454 455 // total_messages_element.innerHTML = parseInt( total_messages_element.innerHTML ) + 1;456 467 } 457 468 } … … 460 471 alert(data['new_msgs'] > 1 ? get_lang("You have %1 new messages", data['new_msgs']) + "!" : get_lang("You have 1 new message") +"!"); 461 472 build_quota(data['quota']); 473 } 474 if(data.new_msgs){ 475 total_messages_element.innerHTML = parseInt( total_messages_element.innerHTML ) + data.new_msgs; 476 }else if(data.tot_msgs){ 477 total_messages_element.innerHTML = data.tot_msgs; 462 478 } 463 479 // Update Box BgColor … … 494 510 } 495 511 496 function delete_msgs(folder, msgs_number, border_ID, show_success_msg,archive){ 512 function delete_msgs(folder, msgs_number, border_ID, show_success_msg,archive){ 513 514 if( preferences.use_local_messages == 1 && expresso_local_messages.isArchiving( msgs_number, folder ) ){ 515 alert( "Impossivel deletar mensagens que estão ainda estão sendo arquivadas." ); 516 return; 517 } 518 497 519 var userTrashFolder = ''; 498 520 … … 507 529 else userTrashFolder = 'INBOX'+cyrus_delimiter+trashfolder; 508 530 509 if(openTab.type[currentTab] == 1) return move_search_msgs('content_id_'+currentTab,userTrashFolder,trashfolder); 510 if(currentTab.toString().indexOf("_r") != -1) msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 531 if(openTab.type[currentTab] == 1) 532 return move_search_msgs('content_id_'+currentTab,userTrashFolder,trashfolder); 533 534 if(currentTab.toString().indexOf("_r") != -1) 535 msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 511 536 512 537 if (!archive && (parseInt(preferences.save_deleted_msg)) && (folder != userTrashFolder)){ … … 574 599 575 600 function move_search_msgs(border_id, new_folder, new_folder_name){ 601 602 if( preferences.use_local_messages == 1 && expresso_local_messages.isArchiving( msgs_number, folder ) ){ 603 alert( "Impossivel mover mensagens que estão ainda estão sendo arquivadas." ); 604 return; 605 } 606 576 607 var selected_messages = ''; 577 608 var temp_msg; … … 663 694 } 664 695 665 function move_msgs2(folder, msgs_number, border_ID, new_folder, new_folder_name,show_success_msg){ 696 function move_msgs2(folder, msgs_number, border_ID, new_folder, new_folder_name,show_success_msg, not_opem_previus){ 697 not_opem_previus = typeof(not_opem_previus) != 'undefined' ? not_opem_previus : false; 698 if( preferences.use_local_messages == 1 && expresso_local_messages.isArchiving( msgs_number, folder ) ){ 699 alert( "Impossivel mover mensagens que estão ainda estão sendo arquivadas." ); 700 return; 701 } 702 666 703 if (! folder || folder == 'null') 667 704 folder = Element("input_folder_"+msgs_number+"_r") ? Element("input_folder_"+msgs_number+"_r").value : (openTab.imapBox[currentTab] ? openTab.imapBox[currentTab]:get_current_folder()); … … 689 726 } 690 727 mail_msg = ( Element("divScrollMain_"+numBox) ) ? Element("divScrollMain_"+numBox).firstChild.firstChild : Element("divScrollMain_0").firstChild.firstChild; 691 if (data.msgs_number.length == 1) 728 if (data.msgs_number.length == 1){ 692 729 write_msg(get_lang("The message was moved to folder ") + lang_folder(data.new_folder_name)); 693 else 730 } 731 else{ 694 732 write_msg(get_lang("The messages were moved to folder ") + lang_folder(data.new_folder_name)); 733 } 695 734 696 735 if (openTab.type[currentTab] > 1){ … … 701 740 var previous_msg = msg_to_delete.previousSibling.id; 702 741 //cExecute("$this.imap_functions.get_info_msg&msg_number="+previous_msg+"&msg_folder=" + current_folder, show_msg); 742 if(!not_opem_previus){ 703 743 cExecute("$this.imap_functions.get_info_msg&msg_number="+previous_msg+"&msg_folder=" + url_encode(folder), show_msg); 744 } 704 745 } 705 746 else 706 747 delete_border(currentTab,'false'); 707 748 } 708 else 749 else{ 709 750 delete_border(currentTab,'false'); 751 } 710 752 if(msg_to_delete) 711 753 mail_msg.removeChild(msg_to_delete); … … 715 757 if(box.childNodes.length > 0){ 716 758 updateBoxBgColor(box.childNodes); 759 } 760 if(folder == get_current_folder()){ 761 Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) - 1; 717 762 } 718 763 return; … … 770 815 delete_border(data.border_ID,'false'); 771 816 } 772 if(folder == get_current_folder()) 817 if(folder == get_current_folder()){ 773 818 Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) - data.msgs_number.length; 774 819 } 775 820 refresh(); 776 821 } … … 796 841 } 797 842 798 if(currentTab.toString().indexOf("_r") != -1){ 799 msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 800 if(msgs_number.indexOf("_s1")) 801 msgs_number = msgs_number.replace('_s1', ''); 843 // se a aba estiver aberta e selecionada, apenas a msg da aba é movida 844 if(currentTab.toString().indexOf("_r") != -1) 845 { 846 //se a aba for aberta atraves de uma pesquisa 847 if(currentTab.toString().indexOf('_s') != -1) 848 msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf('_s')); 849 else 850 msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf('_r')); 802 851 } 803 852 804 853 if (parseInt(msgs_number) > 0 || msgs_number.length > 0){ 805 var params = "&folder="+folder+"&msgs_number="+msgs_number+"&border_ID="+border_ID+"&sort_box_type="+sort_box_type+"&search_box_type="+search_box_type+"&sort_box_reverse="+sort_box_reverse+"&reuse_border="+border_ID+"&new_folder="+escape(new_folder)+"&new_folder_name="+escape(new_folder_name)+"&get_previous_msg="+preferences.delete_and_show_previous_message; 806 cExecute ("$this.imap_functions.move_messages",handler_move_msgs,params); 854 if(!not_opem_previus){ 855 cExecute ("$this.imap_functions.move_messages&folder="+folder+"&msgs_number="+msgs_number+"&border_ID="+border_ID+"&sort_box_type="+sort_box_type+"&search_box_type="+search_box_type+"&sort_box_reverse="+sort_box_reverse+"&reuse_border="+border_ID+"&new_folder="+new_folder+"&new_folder_name="+new_folder_name+"&get_previous_msg="+preferences.delete_and_show_previous_message, handler_move_msgs); 856 }else{ 857 cExecute ("$this.imap_functions.move_messages&folder="+folder+"&msgs_number="+msgs_number+"&border_ID="+border_ID+"&sort_box_type="+sort_box_type+"&search_box_type="+search_box_type+"&sort_box_reverse="+sort_box_reverse+"&reuse_border="+border_ID+"&new_folder="+new_folder+"&new_folder_name="+new_folder_name+"&get_previous_msg="+false, handler_move_msgs); 807 858 } 808 else859 }else 809 860 write_msg(get_lang('No selected message.')); 810 861 811 862 } 812 863 813 function move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name) { 814 move_msgs2(folder, msgs_number, border_ID, new_folder, new_folder_name,true); 864 function move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name, not_opem_previus) { 865 move_msgs2(folder, msgs_number, border_ID, new_folder, new_folder_name,true, not_opem_previus); 866 } 867 868 //Caso deseja-se que não se abra a mensagem anterior independente da 869 //preferencia do usuario 870 function move_msgs_not_previus(folder, msgs_number, border_ID, new_folder, new_folder_name) { 871 move_msgs2(folder, msgs_number, border_ID, new_folder, new_folder_name,true, true); 872 } 873 874 function normalizeMsgNumber( msgNumber ){ 875 876 if (msgNumber || msgNumber == 'selected') 877 msgNumber = get_selected_messages(); 878 879 880 // se a aba estiver aberta e selecionada, apenas a msg da aba é movida 881 if(currentTab.toString().indexOf("_r") != -1) 882 { 883 //se a aba for aberta atraves de uma pesquisa 884 if(currentTab.toString().indexOf('_s') != -1) 885 msgNumber = currentTab.toString().substr(0,currentTab.toString().indexOf('_s')); 886 else 887 msgNumber = currentTab.toString().substr(0,currentTab.toString().indexOf('_r')); 888 } 889 890 if (parseInt(msgNumber) <= 0 || msgNumber.length <= 0){ 891 write_msg(get_lang('No selected message.')); 892 return( false ); 893 } 894 895 return( msgNumber ); 896 815 897 } 816 898 … … 828 910 id_msgs = get_selected_messages(); 829 911 912 if ( parseInt(id_msgs) <= 0 || id_msgs.length <= 0 ) 913 return write_msg(get_lang('No selected message.')); 914 830 915 if(folder_dest=='local_root' || folder_dest==null) //Caso seja o primeiro arquivamento... 831 916 folder_dest = 'local_Inbox'; 832 917 833 if (parseInt(id_msgs) > 0 || id_msgs.length > 0) 834 expresso_mail_sync.archive_msgs(folder,folder_dest,id_msgs); 835 //cExecute("$this.imap_functions.get_info_msgs&folder=" + folder + "&msgs_number=" + id_msgs , handler_arquivar_mensagens); 836 else 837 write_msg(get_lang('No selected message.')); 838 918 id_msgs = expresso_local_messages.checkArchived( id_msgs, folder_dest ); 919 920 if( !id_msgs ){ 921 write_msg( "Todas as mensagens já foram arquivadas anteriormente." ); 922 return; 923 } 924 925 document.getElementById("overlay").style.visibility = "visible"; 926 927 var handler_arquivar_mensagens = function(data) { 928 929 var msgs_info = []; 930 931 for( var i = 0; i < data.length; i++ ) 932 msgs_info[i] = connector.unserialize( data[i] ); 933 934 //vejo se já tinha mensagens locais 935 var h = expresso_local_messages.has_local_mails(); 936 937 expresso_local_messages.insert_mails( msgs_info, folder_dest, function( s, f ){complete_archiving( s, f, h )} ); 938 939 document.getElementById("overlay").style.visibility = "hidden"; 940 } 941 942 cExecute( "$this.imap_functions.get_info_msgs&folder=" + folder + "&msgs_number=" + id_msgs, handler_arquivar_mensagens ); 943 } 944 945 function complete_archiving( success, fails, has_local_messages_before ) 946 { 947 var msgs_to_remove = {}; 948 var target = 'INBOX' + cyrus_delimiter + trashfolder + cyrus_delimiter + 'tmpMoveToLocal'; 949 950 success = expresso_local_messages.select_mail( [ 'original_id', 'original_folder' ], success ); 951 952 for (var i = 0; i < success.length; i++) { 953 954 var msg_info = success[i]; 955 956 // if ( msg_info.dest_folder == target ) 957 // { 958 // msg_info.msg_folder += (Date.parse(new Date)); 959 // } 960 961 //////////////// deselecionando //////////////// 962 Element('chk_box_select_all_messages').checked = false; 963 964 if ( Element("check_box_message_" + msg_info.original_id) ) 965 { 966 Element("check_box_message_" + msg_info.original_id).checked = false; 967 } 968 if ( Element(msg_info.original_id) ) 969 { 970 remove_className(Element(msg_info.original_id), 'selected_msg'); 971 } 972 973 // if ( tree_folders._selected.id.indexOf( 'local_' ) == 0 || msg_info.dest_folder.indexOf( target ) == 0 ) 974 // { 975 // openTab.imapBox[0] = ''; 976 // tree_folders.getNodeById( 'local_Inbox' )._select( ); 977 // change_folder('local_Inbox','Inbox'); 978 // } 979 ///////////////////////////////////////////////// 980 981 //As mensagens arquivadas devem ser removidas, caso o usuario tenha isso configurado. 982 msgs_to_remove[ msg_info.original_folder ] = msgs_to_remove[ msg_info.original_folder ] || []; 983 msgs_to_remove[ msg_info.original_folder ].push( msg_info.original_id ); 984 } 985 986 if (preferences.keep_archived_messages == 0) { 987 //Remove as mensagens 988 for( var folder in msgs_to_remove ){ 989 if(folder != 'undefined') 990 delete_msgs(folder, msgs_to_remove[folder],'null',false,true); 991 } 992 } 993 994 if( !has_local_messages_before && expresso_local_messages.has_local_mails() ) 995 ttreeBox.update_folder(); 996 else 997 update_menu(); 839 998 } 840 999 … … 853 1012 854 1013 // Get all TR (messages) in tBody. 855 if(currentTab.toString().indexOf("_r") != -1){856 return currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));857 }858 859 1014 var main_list = main.childNodes; 860 1015 861 var _ check_box;1016 var _tab_prefix = getTabPrefix(); 862 1017 var selected_messages = ''; 863 1018 var selected_messages_by_shortcuts = ''; … … 865 1020 for (j; j<(main_list.length); j++) 866 1021 { 867 _check_box = Element("check_box_message_" + main_list[j].id); 868 869 if ( (_check_box) && (_check_box.checked) ) 1022 1023 if ( (!isNaN(parseInt(numBox))) && (numBox == 0)) { 1024 check_box = Element("check_box_message_" + main_list[j].id); 1025 } else { 1026 id_mensagem = main_list[j].id.split('_'); 1027 check_box = Element("search_" + numBox + "_check_box_message_" + id_mensagem[0]); 1028 } 1029 1030 if ( (check_box) && (check_box.checked) ) 870 1031 selected_messages += main_list[j].id + ','; 871 1032 … … 880 1041 selected_messages = selected_messages.substring(0,(selected_messages.length-1)); 881 1042 1043 1044 /* Verifica se está na tela de pesquisa. */ 1045 if(selected_messages.indexOf("_") != -1) 1046 { 1047 results_search_messages = selected_messages; 1048 /* Retira a informação da aba */ 1049 selected_messages = selected_messages.substring(0,selected_messages.indexOf("_")); 1050 } 1051 1052 882 1053 if (preferences.use_shortcuts == '1') 883 1054 { … … 897 1068 else 898 1069 return selected_messages; 899 }900 901 function get_selected_messages_folder(){902 var _main;903 var _main_list;904 try{905 _main = document.getElementById("divScrollMain_"+numBox).firstChild.firstChild;906 }catch(e){907 };908 909 if (! _main)910 _main = Element("tbody_box_"+numBox);911 912 if (! _main)913 _main = Element("tbody_box");914 915 // Get all TR (messages) in tBody.916 _main_list = _main.childNodes;917 918 var _check_box;919 var selected_messages_folder;920 // var selected_messages_by_shortcuts = '';921 var j = 0;922 for (j; j<(_main_list.length); j++)923 {924 925 _check_box = Element("check_box_message_" + _main_list[j].id);926 927 if ( (_check_box) && (_check_box.checked) && (_main_list[j].name) ) {928 if (!selected_messages_folder)929 selected_messages_folder = _main_list[j].name;930 else {931 if (selected_messages_folder!=_main_list[j].name)932 return false;933 }934 }935 }936 return selected_messages_folder;937 1070 } 938 1071 … … 971 1104 9 : get_lang("Reply without history"), 972 1105 10: get_lang("Reply to all without history")}; 973 1106 if(new_border_ID != 0) 974 1107 if(!confirm(get_lang("Your message to %1 has not been saved or sent. "+ 975 1108 "To %2 will be necessary open it again. Discard your message?", … … 982 1115 } 983 1116 } 1117 } 1118 if (new_border_ID == 'maximo'){ 1119 RichTextEditor.editorReady = true; 1120 return false; 984 1121 } 985 1122 if (new_border_ID == false) … … 1039 1176 if (document.getElementById("subject_" + border_ID)) 1040 1177 data.subject = document.getElementById("subject_" + border_ID).innerHTML; 1178 if(data.subject == get_lang("(no subject) ")) 1179 data.subject = ''; 1180 1041 1181 if (document.getElementById("body_" + border_ID)) 1042 1182 data.body = document.getElementById("body_" + border_ID).innerHTML; … … 1052 1192 data.date_hour = Element('date_hour_' + border_ID).value; 1053 1193 } 1194 1054 1195 var signature = RichTextEditor.getSignatureDefault(); 1055 if(type!="new" && type!="edit") 1196 1197 if(type!="new" && type!="edit" && document.getElementById("is_local_"+border_ID) != null) 1056 1198 data.is_local_message = (document.getElementById("is_local_"+border_ID).value=="1")?true:false; 1057 1199 switch(type){ … … 1061 1203 title = "Re: " + data.subject; 1062 1204 Element("subject_" + new_border_ID).value = "Re: " + data.subject; 1063 useOriginalAttachments(new_border_ID,border_ID,data.is_local_message); 1205 1206 if (data.is_local_message){ 1207 alert(get_lang("In the local file attachments, including images, will be disregarded. To forward / reply with the attachments, please first make the reopening of the message")+'.'); 1208 var imagens = data.body.match(/<img[^>]*>/g); 1209 if(imagens != null) 1210 for (var x = 0; x < imagens.length; x++) 1211 data.body = data.body.replace(imagens[x],''); 1212 }else{ 1213 useOriginalAttachments(new_border_ID,border_ID); 1214 } 1215 1064 1216 // Insert the signature automaticaly at message body if use_signature preference is set 1065 1217 if (preferences.use_signature == "1"){ … … 1077 1229 Element("subject_" + new_border_ID).value = "Re: " + data.subject; 1078 1230 Element("to_" + new_border_ID).value = data.to; 1079 useOriginalAttachments(new_border_ID,border_ID,data.is_local_message); 1231 if(data.is_local_message){ 1232 alert(get_lang("In the local file attachments, including images, will be disregarded. To forward / reply with the attachments, please first make the reopening of the message")+'.'); 1233 var imagens = data.body.match(/<img[^>]*>/g); 1234 if(imagens != null) 1235 for (var x = 0; x < imagens.length; x++) 1236 data.body = data.body.replace(imagens[x],''); 1237 }else{ 1238 useOriginalAttachments(new_border_ID,border_ID); 1239 } 1240 1080 1241 block_quoted_body = make_body_reply(data.body, data.to, data.date_day, data.date_hour); 1081 1242 // Insert the signature automaticaly at message body if use_signature preference is set … … 1112 1273 Element('space_link_' + new_border_ID).style.display='none'; 1113 1274 } 1114 useOriginalAttachments(new_border_ID,border_ID,data.is_local_message); 1275 if (data.is_local_message){ 1276 alert(get_lang("In the local file attachments, including images, will be disregarded. To forward / reply with the attachments, please first make the reopening of the message")+'.'); 1277 var imagens = data.body.match(/<img[^>]*>/g); 1278 if(imagens != null) 1279 for (var x = 0; x < imagens.length; x++) 1280 data.body = data.body.replace(imagens[x],''); 1281 } 1282 else useOriginalAttachments(new_border_ID,border_ID); 1283 1115 1284 // Insert the signature automaticaly at message body if use_signature preference is set 1116 1285 if (preferences.use_signature == "1") … … 1160 1329 break; 1161 1330 case "forward": 1162 data.is_local_message = (document.getElementById("is_local_"+border_ID).value=="1")?true:false;1331 1163 1332 msg_forward_from = document.createElement('input'); 1164 1333 msg_forward_from.id = "msg_forward_from_" + new_border_ID; … … 1169 1338 document.getElementById("subject_" + new_border_ID).value = "Fw: " + data.subject; 1170 1339 var divFiles = Element("divFiles_"+new_border_ID); 1340 1341 1342 if (data.is_local_message) {//Local messages 1343 document.getElementById("is_local_forward"+new_border_ID).value = "1"; 1344 alert(get_lang("In the local file attachments, including images, will be disregarded. To forward / reply with the attachments, please first make the reopening of the message")+'.'); 1345 var imagens = data.body.match(/<img[^>]*>/g); 1346 if(imagens != null) 1347 for (var x = 0; x < imagens.length; x++) 1348 data.body = data.body.replace(imagens[x],''); 1349 } 1350 else{ 1351 1352 1353 1171 1354 var campo_arquivo; 1355 1172 1356 if (Element("attachments_" + border_ID)){ 1173 1357 var attachments = document.getElementById("attachments_" + border_ID).getElementsByTagName("a"); 1174 1358 1175 for (var i = (attachments.length > 1 ? 1 : 0); i < attachments.length; i++){1359 for (var i = 0; i < attachments.length; i++){ 1176 1360 if((attachments[i].tagName=="SPAN") || (attachments[i].tagName=="IMG") || 1177 1361 ((attachments[i].href.indexOf("javascript:download_local_attachment")==-1)&&(attachments[i].href.indexOf("javascript:download_attachments")==-1))) … … 1191 1375 } 1192 1376 else { 1193 var tempNomeArquivo = attachments[i].firstChild.nodeValue.split("(");1194 var nomeArquivo = t rim(tempNomeArquivo[0]);1377 var tempNomeArquivo = tmp.split("&newfilename="); 1378 var nomeArquivo = tempNomeArquivo[tempNomeArquivo.length - 1]; 1195 1379 } 1196 1380 … … 1218 1402 } 1219 1403 } 1404 } 1220 1405 // Insert the signature automaticaly at message body if use_signature preference is set 1221 if (preferences.use_signature == "1")1406 if (preferences.use_signature == "1") 1222 1407 RichTextEditor.setInitData(new_border_ID,'<div><br type="_moz"></div>' + signature + '<div><br type="_moz"></div>'+ make_forward_body(data.body, data.to, data.date, data.subject, data.to_all, data.cc)); 1223 1408 else … … 1266 1451 Element("to_" + new_border_ID).value = data.to; 1267 1452 if (data.cc){ 1453 data.cc = data.cc.replace(/</gi,"<"); 1454 data.cc = data.cc.replace(/>/gi,">"); 1268 1455 Element("cc_" + new_border_ID).value = data.cc; 1269 Element("space_link_" + new_border_ID).style.display = 'none';1270 1456 Element("a_cc_link_" + new_border_ID).style.display = 'none'; 1457 if(Element("cco_" + new_border_ID) != null) 1458 Element("space_link_" + new_border_ID).style.display = 'none'; 1271 1459 Element("tr_cc_"+ new_border_ID).style.display = ''; 1272 1460 } 1273 1461 if (data.cco){ 1462 if(Element("cco_" + new_border_ID) != null){ 1274 1463 Element("cco_" + new_border_ID).value = data.cco; 1275 1464 Element("space_link_" + new_border_ID).style.display = 'none'; … … 1277 1466 Element("tr_cco_"+ new_border_ID).style.display = ''; 1278 1467 } 1468 } 1279 1469 Element("subject_" + new_border_ID).value = data.subject; 1280 1470 … … 1284 1474 var element_important_message = Element("important_message_" + new_border_ID); 1285 1475 if(element_important_message) { 1286 if(Element("is_important_" + border_ID).value == "1") element_important_message.checked = true; 1476 1477 if(Element("disposition_important_" + border_ID)) 1478 element_important_message.checked = true; 1287 1479 } 1288 1480 … … 1301 1493 tmp = link_attachment.innerHTML.substring(0,link_attachment.innerHTML.lastIndexOf("(")); 1302 1494 a_tmp[2] = "'"+tmp.substring(0,tmp.length-1)+"'"; 1303 s_tmp = trim(escape(connector.serialize(a_tmp))); 1495 s_tmp = escape(connector.serialize(a_tmp)); 1496 1304 1497 divFiles.innerHTML += "<input style='border:0' type='CHECKBOX' name='forwarding_attachments[]' checked value=\""+s_tmp+"\"/>"; 1305 1498 divFiles.appendChild(link_attachment); … … 1315 1508 set_border_caption("border_id_" + new_border_ID, title); 1316 1509 1317 1510 resizeWindow(); 1511 //save_msg(new_border_ID); 1318 1512 return new_border_ID; //Preciso retornar o ID da nova mensagem. 1319 1513 } … … 1484 1678 { 1485 1679 var handler = function(data){ 1486 if(typeof(expresso_local_messages) != "undefined"){ 1680 1487 1681 if(data.msg_day == '') 1488 1682 { 1489 1683 header=expresso_local_messages.get_msg_date(data.original_ID, proxy_mensagens.is_local_folder(get_current_folder())); 1490 if(header){ 1684 1491 1685 data.fulldate=header.fulldate; 1492 1686 data.smalldate=header.smalldate; 1493 1687 data.msg_day = header.msg_day; 1494 1688 data.msg_hour = header.msg_hour; 1495 } 1496 } 1689 1497 1690 } 1498 1691 this.show_msg(data); … … 1564 1757 mail_as_plain = ( mail_as_plain ) ? mail_as_plain.checked : false; 1565 1758 1759 var content_body = RichTextEditor.getData('body_'+ID); 1760 //Remove imagens do corpo que estao com o checkbox desmarcados 1761 var files_checkbox = $("#divFiles_"+ID+" input:checkbox"); 1762 var files_unchecked = new Array(); 1763 for (var i = 0; i < files_checkbox.length; i++) 1764 if(files_checkbox[i].checked !== true) 1765 files_unchecked.push(connector.unserialize(unescape(trim(files_checkbox[i].value)))); 1766 1767 var imagens = content_body.match(/<img[^>]*>/g); 1768 1769 if(imagens != null) 1770 for (var x = 0; x < imagens.length; x++) 1771 for (var xx = 0; xx < files_unchecked.length; xx++) 1772 if(imagens[x].indexOf('indexPart='+files_unchecked[xx][3].replace(/'/g,'')) !== -1) 1773 content_body = content_body.replace(imagens[x],''); 1774 1775 //--------------------------------------------------------------------------// 1776 1566 1777 var textArea = document.createElement("TEXTAREA"); 1567 1778 textArea.style.display='none'; 1568 1779 textArea.name = "body"; 1569 textArea.value = RichTextEditor.getData('body_'+ID); 1780 textArea.value = content_body; 1781 1570 1782 var input_folder = document.createElement("INPUT"); 1571 1783 input_folder.style.display='none'; … … 1633 1845 handler_send_message(data_return,ID); 1634 1846 } 1635 else 1847 else{ 1636 1848 cExecuteForm("$this.imap_functions.send_mail", form, handler_send_message, ID); 1849 } 1850 } 1851 function is_valid_email(campo){ 1852 var invalidEmail = searchEmail(campo); 1853 var semicolon = campo.split(";"); 1854 1855 if((campo.replace(/^\s+|\s+$/g,"")) != ""){ 1856 if(invalidEmail[0] == true){ 1857 write_msg("Erro de SMTP: Os endereços de destinatário a seguir falharam: "+ invalidEmail[1]); 1858 return false; 1859 }else{ 1860 if(semicolon.length > 1){ 1861 var stringError = "Erro de SMTP: Os endereços devem ser separados apenas por vígula: "; 1862 for(var i= 0; i < semicolon.length; i++){ 1863 stringError = stringError + semicolon[i]; 1864 if(i+1 < semicolon.length) 1865 stringError = stringError + " ; "; 1866 } 1867 write_msg(stringError); 1868 return false; 1869 }else { 1870 return true; 1871 } 1872 } 1873 } 1874 else{ 1875 write_msg(get_lang("Message without receiver")); 1876 return false; 1877 } 1637 1878 } 1638 1879 function change_tr_properties(tr_element, newUid, newSubject){ … … 1657 1898 { 1658 1899 Element("send_button_"+border_id).style.visibility="visible"; 1659 var handler_delete_msg = function(data){refresh(preferences.alert_new_msg);}; 1660 1661 if (data == null || data.append != true ) 1900 var handler_delete_msg = function(data){refresh(preferences.alert_new_msg);RichTextEditor.execPosInstance('body_'+border_id);}; 1901 if(data === null) 1662 1902 { 1663 RichTextEditor.saveFlag = 0; 1664 if (! data.append) 1665 if(data == 'Post-Content-Length') 1666 write_msg(get_lang('The size of this message has exceeded the limit (%1B).', preferences.max_attachment_size ? preferences.max_attachment_size : Element('upload_max_filesize').value)); 1667 else 1903 write_msg(get_lang('ERROR saving your message.')); 1904 return null; 1905 } 1906 1907 if(data.append === "Over quota"){ 1908 write_msg(get_lang('ERROR saving your message over quota.')); 1909 return; 1910 } 1911 else if ( data.append !== true ) 1912 { 1913 if (data.append == null) 1668 1914 write_msg(get_lang('ERROR saving your message.')); 1669 1915 else … … 1685 1931 { 1686 1932 var newImage = false; 1933 RichTextEditor.saveFlag = 1; 1687 1934 openTab.imapUid[border_id] = data.msg_no; 1688 1935 openTab.imapBox[border_id] = data.folder_id; 1689 1936 1690 1937 var newTitle = document.getElementById('subject_'+border_id).value; 1691 if (newTitle == '') 1938 if (newTitle.length > 18) 1939 newTitle = newTitle.substr(18) + '...'; 1940 else if (newTitle == '') 1692 1941 newTitle = get_lang("No subject"); 1693 set_border_caption('border_id_'+border_id, newTitle); 1942 document.getElementById('font_border_id_'+border_id).innerHTML = newTitle; 1943 Element('border_id_'+border_id).title = newTitle; 1694 1944 1695 1945 // Replace the embedded images for new uids 1696 1946 var content_body = RichTextEditor.getData('body_'+border_id); 1697 1698 if (is_ie) 1947 var body_images = content_body.match(/msgNumber=\d*/g); 1948 var folder_images = content_body.match(/msgFolder=[^&]*&/g); 1949 1950 if (body_images != null) 1699 1951 { 1700 var content_body = mainField.document.getElementsByTagName('body').item(0).innerHTML; 1701 var body_images = content_body.match(/msg_num=\d*/g); 1702 var images_part = content_body.match(/msg_part=\d*/g); 1703 if (body_images) 1952 for (var i=0; i<body_images.length; i++) 1704 1953 { 1705 for (var i=0; i<body_images.length; i++){ 1706 content_body = content_body.replace(body_images[i],"msg_num="+openTab.imapUid[border_id]); 1954 if( folder_images != null) 1955 content_body = content_body.replace(folder_images[i], "msgFolder=INBOX" + cyrus_delimiter + draftsfolder +"&"); 1956 1957 1958 1959 1960 content_body = content_body.replace(body_images[i],"msgNumber="+openTab.imapUid[border_id]); 1961 } 1962 1963 var images_part = content_body.match(/indexPart=[0-9.]*/g); 1964 1965 if(images_part != null) 1966 { 1967 for (var x = 0; x < images_part.length; x++) 1968 { 1969 var position = images_part[x].substr(10,images_part[x].length); 1970 content_body = content_body.replace(images_part[x],'indexPart(||.|||.||)='+data.imagesParts[position]); 1971 } 1972 1707 1973 } 1708 1709 var allImgs = new Array (images_part.length); 1710 //var j=-1; 1711 for (var i in images_part){ 1712 1713 if (i == 0) 1714 var image_number = parseInt(images_part[i].substr(9)); 1715 else 1716 image_number = "null"; 1717 1718 if (! isNaN(image_number)) 1719 { 1720 if (! allImgs[image_number]) 1721 { 1722 allImgs[image_number] = true; 1723 //j--; 1724 } 1725 //content_body = content_body.replace(images_part[i],'msg_part='+j); 1726 } 1727 //content_body = content_body.replace(/msg_part=-/g,'msg_part='); 1728 } 1729 1974 content_body = content_body.replace(/indexPart\(\|\|\.\|\|\|\.\|\|\)=/g,'indexPart='); 1730 1975 } 1731 } 1732 else 1733 { 1734 for (var i = 0; i < bodyChildNodes.length; i++){ 1735 if (typeof(bodyChildNodes[i].tagName) != 'undefined' && bodyChildNodes[i].tagName.search(/img/i) != -1) 1736 { 1737 bodyChildNodes[i].src = bodyChildNodes[i].src.replace(/msg_num=\d*/g, "msg_num="+openTab.imapUid[border_id]); 1738 1739 var allImgs = new Array(); 1740 var image_number = parseInt(bodyChildNodes[i].src.match(/msg_part=\d*/g)[0].substr(9)); 1741 if (! allImgs[image_number]) 1742 { 1743 allImgs[image_number] = true; 1744 } 1745 } 1746 else 1747 { 1748 continue; 1749 } 1750 1751 } 1752 } 1976 1977 1753 1978 1754 1979 //Replace all files to new files 1755 1980 var divFiles = Element("divFiles_"+border_id); 1756 elFiles = divFiles.getElementsByTagName("input"); 1757 var countCheck =0; 1758 for (var i=0; i<elFiles.length; i++) { 1759 if(elFiles[i].value !=""){ 1760 if (elFiles[i].type == "checkbox") { 1761 var tmpData = connector.unserialize(decodeURIComponent(elFiles[i].value)); 1762 tmpData[1] = data.msg_no; 1763 elFiles[i].value = encodeURIComponent(connector.serialize(tmpData)); 1764 countCheck++; 1765 } 1766 else { 1767 elFiles[i].value =""; 1768 parantNodeFile = elFiles[i].parentNode.parentNode; 1769 parantNodeFile.removeChild(elFiles[i].parentNode); 1770 i--; 1771 } 1772 } 1773 } 1981 divFiles.innerHTML = ''; 1982 1774 1983 1775 1984 var attach_files = connector.unserialize(data.files); 1776 1985 if (attach_files != null) { 1777 1986 openTab.countFile[border_id] = attach_files.length; 1778 att_index = countCheck; 1779 for (att_index; att_index < attach_files.length; att_index++) 1780 { 1987 for (var att_index = 0; att_index < attach_files.length; att_index++){ 1781 1988 1782 1989 var link_attachment = document.createElement("a"); 1783 var fileName = attach_files[att_index].substr(0,attach_files[att_index].indexOf('_SIZE_')); 1784 var fileSize = parseInt(attach_files[att_index].substr(attach_files[att_index].indexOf('_SIZE_')+6))/1024 1785 link_attachment.innerHTML = fileName + " ("+borkb((parseInt(fileSize)*1024))+")"; 1786 1787 var href = "'"+folder_id+"','"+data.msg_no+"','"+(att_index)+"','"+(att_index+2)+"','base64'"; 1990 1991 var fileName = Base64.decode(attach_files[att_index].name); 1992 var fileSize = attach_files[att_index].size / 1024; 1993 1994 1995 link_attachment.innerHTML = fileName + " ("+parseInt(fileSize)+" kb)"; 1996 1997 var encoding = /\.eml$/.exec(fileName)? '7bit' : 'base64'; 1998 var href = "'"+folder_id+"','"+data.msg_no+"','"+(att_index)+"','0."+(att_index+1)+"','"+encoding+"'"; 1788 1999 1789 2000 link_attachment.setAttribute("href", "javascript:download_attachments("+href+")"); … … 1793 2004 s_tmp = escape(connector.serialize(a_tmp)); 1794 2005 1795 var check_attachment = document.createElement(" INPUT");2006 var check_attachment = document.createElement("input"); 1796 2007 check_attachment.type = 'CHECKBOX'; 1797 2008 check_attachment.name = 'forwarding_attachments[]'; 1798 check_attachment.value = trim(s_tmp); 1799 1800 if (!divFiles.childNodes[0]) 1801 { 1802 divFiles.appendChild(document.createElement("BR")); 1803 } 1804 else 1805 { 1806 divFiles.insertBefore(document.createElement("BR"),divFiles.childNodes[0]); 1807 } 1808 1809 divFiles.insertBefore(link_attachment,divFiles.childNodes[0]); 1810 divFiles.insertBefore(check_attachment,divFiles.childNodes[0]); 1811 1812 check_attachment.checked = true; 1813 check_attachment.setAttribute("checked", "checked"); 2009 check_attachment.value = s_tmp; 2010 2011 1814 2012 1815 2013 divFiles.appendChild(check_attachment); 1816 2014 divFiles.appendChild(link_attachment); 2015 1817 2016 divFiles.appendChild(document.createElement("br")); 2017 2018 check_attachment.checked = true; 2019 check_attachment.setAttribute("checked", "checked"); 1818 2020 } 1819 2021 } … … 1843 2045 change_tr_properties(tr_msg, data.msg_no, data.subject); 1844 2046 } 1845 } else { 1846 refresh(); 1847 } 1848 1849 var save_link = Element("save_message_options_"+border_id); 1850 save_link.onclick = ''; 1851 save_link.className = 'message_options_inactive'; 1852 watch_changes_in_msg(border_id); 1853 write_msg(get_lang('Your message was save as draft in folder %1.', lang_folder(folder_name))); 1854 setTimeout( function(){RichTextEditor.saveFlag = 1;}, 1000 ); 1855 } 1856 } 1857 1858 function save_msg(border_id,withImage){ 2047 2048 } 2049 setTimeout( function(){RichTextEditor.saveFlag = 1;RichTextEditor.execPosInstance('body_'+border_id);}, 1000 ); 2050 } 2051 return null; 2052 } 2053 2054 function save_msg(border_id,withImage, out){ 1859 2055 if (typeof(withImage) == 'undefined') 1860 2056 withImage = false; … … 1867 2063 var folder_id = openTab.imapBox[border_id]; 1868 2064 else 1869 var folder_id = "INBOX /"+draftsfolder;2065 var folder_id = "INBOX" + cyrus_delimiter + draftsfolder; 1870 2066 1871 2067 if (folder_id == 'INBOX') // and folder name from border … … 1879 2075 tmp_folder_id=folder_id; 1880 2076 message_id = openTab.imapUid[border_id]; 1881 var handler_save_msg = function(data){return_save(data,this.tmp_border_id,this.tmp_folder_name,this.tmp_folder_id,this.message_id);} 2077 var handler_save_msg = function(data){ 2078 if(typeof(out) == 'undefined'){ 2079 return_save(data,this.tmp_border_id,this.tmp_folder_name,this.tmp_folder_id,this.message_id); 2080 var save_link = Element("save_message_options_"+border_id); 2081 if(!withImage){ 2082 if(data.append === true){ 2083 save_link.className = 'message_options_inactive'; 2084 save_link.onclick = ''; 2085 watch_changes_in_msg(border_id); 2086 write_msg(get_lang('Your message was save as draft in folder %1.', lang_folder(folder_name))); 2087 } 2088 if(auto){ 2089 auto = false; 2090 } 2091 } 2092 else{ 2093 write_msg(get_lang('Wait a moment, your image is uploading ...')); 2094 var auto = true; 2095 setTimeout( function(){save_msg(border_id)}, 1000 ); 2096 } 2097 }else{ 2098 if(data.append === true){ 2099 write_msg(get_lang('Your message was save as draft in folder %1.', lang_folder(folder_name))); 2100 }else if(data.append == null){ 2101 write_msg(get_lang('ERROR saving your message.')); 2102 }if(data.append === "Over quota"){ 2103 write_msg(get_lang('ERROR saving your message over quota.')); 2104 } 2105 } 2106 2107 } 1882 2108 1883 2109 var mail_as_plain = document.getElementById( 'textplain_rt_checkbox_' + border_id ); 1884 2110 mail_as_plain = ( mail_as_plain ) ? mail_as_plain.checked : false; 1885 2111 2112 var content_body = RichTextEditor.getData("body_"+border_id); 2113 //Remove imagens do corpo que estao com o checkbox desmarcados 2114 var files_checkbox = $("#divFiles_"+border_id+" input:checkbox"); 2115 var files_unchecked = new Array(); 2116 for (var i = 0; i < files_checkbox.length; i++) 2117 if(files_checkbox[i].checked !== true) 2118 files_unchecked.push(connector.unserialize(unescape(trim(files_checkbox[i].value)))); 2119 2120 var imagens = content_body.match(/<img[^>]*>/g); 2121 if(imagens != null) 2122 for (var x = 0; x < imagens.length; x++) 2123 for (var xx = 0; xx < files_unchecked.length; xx++) 2124 if(imagens[x].indexOf('indexPart='+files_unchecked[xx][3].replace(/'/g,'')) !== -1) 2125 content_body = content_body.replace(imagens[x],''); 2126 2127 if(files_unchecked.length > 0) 2128 RichTextEditor.setData("body_"+border_id,content_body); 2129 2130 1886 2131 var textArea = document.createElement("TEXTAREA"); 1887 2132 textArea.style.display='none'; 1888 2133 textArea.name = "body"; 1889 textArea.value = RichTextEditor.getData("body_"+border_id);2134 textArea.value = content_body; 1890 2135 var input_folder = document.createElement("INPUT"); 1891 2136 input_folder.style.display='none'; … … 1948 2193 } 1949 2194 else 1950 write_msg( 'ERROR saving your message.');2195 write_msg(get_lang('ERROR saving your message.')); 1951 2196 } 1952 2197 … … 1957 2202 tmp_folder_name=folder_name; 1958 2203 var handler_save_msg = function(data){return_saveas(data,this.tmp_border_id,this.tmp_folder_name);} 2204 2205 var content_body = RichTextEditor.getData("body_"+border_id); 2206 //Remove imagens do corpo que estao com o checkbox desmarcados 2207 var files_checkbox = $("#divFiles_"+border_id+" input:checkbox"); 2208 var files_unchecked = new Array(); 2209 for (var i = 0; i < files_checkbox.length; i++) 2210 if(files_checkbox[i].checked !== true) 2211 files_unchecked.push(connector.unserialize(unescape(trim(files_checkbox[i].value)))); 2212 2213 var imagens = content_body.match(/<img[^>]*>/g); 2214 2215 if(imagens != null) 2216 for (var x = 0; x < imagens.length; x++) 2217 for (var xx = 0; xx < files_unchecked.length; xx++) 2218 if(imagens[x].indexOf('indexPart='+files_unchecked[xx][3].replace(/'/g,'')) !== -1) 2219 content_body = content_body.replace(imagens[x],''); 2220 1959 2221 var textArea = document.createElement("TEXTAREA"); 1960 2222 textArea.style.display='none'; 1961 2223 textArea.name = "body"; 1962 textArea.value = RichTextEditor.getData("body_"+border_id);2224 textArea.value = content_body; 1963 2225 1964 2226 var input_folder = document.createElement("INPUT"); … … 1984 2246 function set_messages_flag(flag, msgs_to_set){ 1985 2247 var handler_set_messages_flag = function (data){ 1986 var _tab_sufix = getTabSufix();1987 var _chk_box;1988 var _fld_box;1989 2248 if(!verify_session(data)) 1990 2249 return; 1991 var msgs_to_set = data.msgs_to_set.split(","); // messages ids 1992 var rowids_to_set = data.rowids_to_set.split(","); // rows ids 2250 var msgs_to_set = data.msgs_to_set.split(","); 1993 2251 1994 2252 if(!data.status) { … … 1996 2254 Element('chk_box_select_all_messages').checked = false; 1997 2255 for (var i = 0; i < msgs_to_set.length; i++) { 1998 Element("check_box_message_" + rowids_to_set[i]).checked = false;1999 remove_className(Element( rowids_to_set[i]), 'selected_msg');2256 Element("check_box_message_" + msgs_to_set[i]).checked = false; 2257 remove_className(Element(msgs_to_set[i]), 'selected_msg'); 2000 2258 } 2001 2259 if(!data.msgs_unflageds) … … 2027 2285 } 2028 2286 proxy_mensagens.get_msg(msgs_to_set[i],current_folder, false, setFlag); 2029 } 2030 2031 _chk_box = Element("check_box_message_" + rowids_to_set[i]); 2032 _fld_box = (_tab_sufix ? Element("check_box_message_" + msgs_to_set[i]) : null); 2033 if(_chk_box){ 2287 2288 2289 } 2290 if(Element("check_box_message_" + msgs_to_set[i])){ 2034 2291 switch(data.flag){ 2035 2292 case "unseen": 2036 set_msg_as_unread(rowids_to_set[i]);2037 if (_fld_box)2038 2293 set_msg_as_unread(msgs_to_set[i]); 2039 _chk_box.checked = false; 2294 if(results_search_messages != "") 2295 set_msg_as_unread(results_search_messages, true); 2296 Element("check_box_message_" + msgs_to_set[i]).checked = false; 2040 2297 break; 2041 2298 case "seen": 2042 set_msg_as_read( rowids_to_set[i], false);2043 if (_fld_box)2044 set_msg_as_read( msgs_to_set[i]);2045 _chk_box.checked = false;2299 set_msg_as_read(msgs_to_set[i], false); 2300 if(results_search_messages != "") 2301 set_msg_as_read(results_search_messages, false, true); 2302 Element("check_box_message_" + msgs_to_set[i]).checked = false; 2046 2303 break; 2047 2304 case "flagged": 2048 set_msg_as_flagged(rowids_to_set[i]);2049 if (_fld_box)2050 2305 set_msg_as_flagged(msgs_to_set[i]); 2051 _chk_box.checked = false; 2306 if(results_search_messages != "") 2307 set_msg_as_flagged(results_search_messages, true); 2308 document.getElementById("check_box_message_" + msgs_to_set[i]).checked = false; 2052 2309 break; 2053 2310 case "unflagged": 2054 set_msg_as_unflagged(rowids_to_set[i]);2055 if (_fld_box)2056 2311 set_msg_as_unflagged(msgs_to_set[i]); 2057 _chk_box.checked = false; 2312 if(results_search_messages != "") 2313 set_msg_as_unflagged(results_search_messages, true); 2314 Element("check_box_message_" + msgs_to_set[i]).checked = false; 2058 2315 break; 2059 2316 } … … 2064 2321 2065 2322 var folder = get_current_folder(); 2066 if (msgs_to_set == 'get_selected_messages') {2323 if (msgs_to_set == 'get_selected_messages') 2067 2324 var msgs_to_set = this.get_selected_messages(); 2068 if ( (msgs_to_set) && (msgs_to_set.match(/_s/)) ) {2069 folder = get_selected_messages_folder();2070 if (!folder) {2071 alert(get_lang("You cant manipulate messages from multiple folders on search"));2072 return;2073 }2074 }2075 }2076 2325 else 2077 2326 folder = Element("input_folder_"+msgs_to_set+"_r").value; 2078 2327 2079 2328 if (msgs_to_set) 2080 if (folder && proxy_mensagens.is_local_folder(folder))2081 expresso_local_messages.set_messages_flag(msgs_to_set, flag); //expresso_local_messages.set_messages_flag(msgs_to_set.replace(/_s[^,]*/g,""), flag);2082 else2083 2329 cExecute ("$this.imap_functions.set_messages_flag&folder="+folder+"&msgs_to_set="+msgs_to_set+"&flag="+flag, handler_set_messages_flag); 2084 2330 else … … 2137 2383 var folder= Element('border_id_0').innerHTML; 2138 2384 var thead = Element('divScrollHead_'+numBox).firstChild.firstChild.innerHTML; 2385 2386 msgs_number = get_selected_messages(); 2387 if(msgs_number == false){ 2139 2388 var tbody = Element('divScrollMain_'+numBox).firstChild.firstChild.innerHTML; 2389 }else{ 2390 msgs_number = msgs_number.split(","); 2391 var tbody = ""; 2392 for(var i = 0; i < msgs_number.length; i++){ 2393 tbody += "<tr id="+msgs_number[i]+" class=\"tr_msg_unread tr_msg_read2\">"+ Element(msgs_number[i]).innerHTML+"</tr>"; 2394 } 2395 } 2140 2396 var print_width = screen.width - 200; 2141 2397 var x = ((screen.width - print_width) / 2); … … 2151 2407 thead = thead.replace(seekDot, "style='display:none'"); 2152 2408 tbody = tbody.replace(seekDot, "style='display:none'"); 2153 2409 thead = thead.replace("<td style=\"cursor: pointer;\"></td>", ""); 2410 thead = thead.replace("<td style=\"cursor: pointer;\" style='display:none'><input title=\"Selecionar todas as mensagens.\" class=\"checkbox\" id=\"chk_box_select_all_messages\" type=\"checkbox\"></td>", ""); 2154 2411 while (1){ 2155 2412 try{ … … 2157 2414 var html = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html>' 2158 2415 + '<head><link rel="stylesheet" type="text/css" href="templates/'+template+'/print.css"></head>' 2159 + '<body class="print-all-messages"><h1>ExpressoLivre - ExpressoMail</h1>'2416 + cabecalho + '</h4><hr>' 2160 2417 + '<h2>'+folder+'</h2><hr/><blockquote><font size="2">' 2161 2418 + '<table width="100%" cellpadding="0" cellspacing="0">' … … 2204 2461 else if(countAtt > 1) 2205 2462 for (var i = 1; i <attachments.getElementsByTagName('a').length; i++) 2206 att += attachments.getElementsByTagName('a')[i].innerHTML + " | ";2463 att += " | " + attachments.getElementsByTagName('a')[i].innerHTML; 2207 2464 } 2208 2465 2209 2466 var body = Element('body_'+border_ID); 2210 2467 2211 if(!is_ie)2212 {2213 var link = location.href.replace(/\/expressoMail1_2\/(.*)/, "");2214 var tab_tags = body.getElementsByTagName("IMG");2215 for(var i = 0; i < tab_tags.length;i++)2216 {2217 var _img = document.createElement("IMG");2218 _img.src = tab_tags[i].src;2219 if(tab_tags[i].src.toUpperCase().indexOf('/INC/SHOW_EMBEDDED_ATTACH.PHP?MSG_FOLDER=') > -1)2220 {2221 _img.src = link + '/expressoMail1_2'+tab_tags[i].src.substr(tab_tags[i].src.toUpperCase().indexOf('/INC/SHOW_EMBEDDED_ATTACH.PHP?MSG_FOLDER='));2222 }2223 tab_tags[i].parentNode.replaceChild(_img,tab_tags[i]);2224 }2225 }2226 2468 var print_width = screen.width - 200; 2227 2469 var x = ((screen.width - print_width) / 2); … … 2258 2500 try{ 2259 2501 var html ='<body>'; 2260 html += "<h4>ExpressoLivre - ExpressoMail</h4><hr>";2502 html += cabecalho + '</h4><hr>'; 2261 2503 html += '<table><tbody>'; 2262 2504 if(sender) … … 2289 2531 html += "</tbody></table><hr>"; 2290 2532 window_print.document.write(html + body.innerHTML); 2291 if(!is_ie){ 2533 2292 2534 var tab_tags = window_print.document.getElementsByTagName("IMG"); 2535 var link = location.href.replace(/\/expressoMail1_2\/(.*)/, ""); 2293 2536 for(var i = 0; i < tab_tags.length;i++){ 2294 var _img = document.createElement("IMG"); 2295 _img.src = tab_tags[i].src; 2537 var _img = tab_tags[i].cloneNode(true); 2538 if(tab_tags[i].src.toUpperCase().indexOf('INC/GET_ARCHIVE.PHP?MSGFOLDER=') > -1) 2539 _img.src = link + '/expressoMail1_2/'+tab_tags[i].src.substr(tab_tags[i].src.toUpperCase().indexOf('INC/GET_ARCHIVE.PHP?MSGFOLDER=')); 2540 2296 2541 tab_tags[i].parentNode.replaceChild(_img,tab_tags[i]); 2297 2542 } 2298 } 2543 2299 2544 break; 2300 2545 } … … 2319 2564 if (get_current_folder() == 'INBOX'+cyrus_delimiter+trashfolder){ 2320 2565 draw_paging(0); 2321 kill_current_box();2566 remove_rows(document.getElementById("table_box")); 2322 2567 Element('tot_m').innerHTML = 0; 2323 2568 Element('new_m').innerHTML = 0; … … 2339 2584 if (get_current_folder() == 'INBOX'+cyrus_delimiter+spamfolder){ 2340 2585 draw_paging(0); 2341 kill_current_box();2586 remove_rows(document.getElementById("table_box")); 2342 2587 } 2343 2588 tree_folders.getNodeById('INBOX'+cyrus_delimiter+spamfolder).alter({caption: get_lang("Spam")}); … … 2367 2612 write_msg(get_lang('Error compressing messages (ZIP). Contact the administrator.')); 2368 2613 } 2369 else 2370 download_attachments(null, null, data, null,null,'mensagens.zip'); 2614 else{ 2615 var filename = 'mensagens.zip'; 2616 if (data.match(/\.eml$/gi)) { 2617 filename = 'fonte_da_mensagem.eml'; 2618 } 2619 download_attachments(null, null, data, null,null,filename); 2620 } 2371 2621 } 2372 2622 … … 2379 2629 } 2380 2630 2381 function select_all_search_messages(select, id){ 2382 var search_box = Element("table_resultsearch_" + getNumBoxFromTabId(id)).firstChild; 2383 var felement = search_box.firstChild; 2384 while(felement) 2385 { 2386 if (select) { 2387 felement.firstChild.firstChild.checked = true; 2388 add_className(felement, 'selected_msg'); 2389 } 2390 else { 2391 felement.firstChild.firstChild.checked = false; 2392 remove_className(felement, 'selected_msg'); 2393 } 2394 felement = felement.nextSibling; 2395 } 2631 function select_all_search_messages(select, aba){ 2632 jQuery(function() { 2633 if(select){ 2634 jQuery("#"+aba+" tr").each(function(i, o) { 2635 2636 o.firstChild.firstChild.checked = true; 2637 add_className(o, 'selected_msg'); 2638 }); 2639 }else{ 2640 jQuery("#"+aba+" tr").each(function(i, o) { 2641 2642 o.firstChild.firstChild.checked = false; 2643 remove_className(o, 'selected_msg'); 2644 }); 2645 } 2646 }); 2647 2648 2649 2396 2650 } 2397 2651 … … 2426 2680 } 2427 2681 } 2682 function save_image2(info){ 2683 var obj = jQuery.parseJSON(unescape(info)); 2684 download_attachments(obj.folder, obj.message, obj.thumbIndex, obj.pid, obj.encoding, obj.type.replace("/",".")); 2685 } 2428 2686 2429 2687 function nospam(msgs_number, border_ID, folder){ 2430 2688 if (folder == 'null') 2431 2689 folder = get_current_folder(); 2432 var new_folder = 'INBOX'; 2690 var new_folder = ''; 2691 if(folder.substr(0,4) == 'user'){ 2692 arrayFolder = folder.split(cyrus_delimiter); 2693 new_folder = 'user'+cyrus_delimiter+arrayFolder[1]; 2694 } 2695 else{ 2696 new_folder = 'INBOX'; 2697 } 2433 2698 var new_folder_name = get_lang('INBOX'); 2434 2699 var handler_move_msgs = function(data){ … … 2449 2714 2450 2715 if (parseInt(msgs_number) > 0 || msgs_number.length > 0) 2451 cExecute ("$this.imap_functions.spam&folder="+folder+"&spam=false"+"&msgs_number="+msgs_number+"&border_ID="+border_ID+"&sort_box_type="+sort_box_type+"&sort_box_reverse="+sort_box_reverse+"&reuse_border="+border_ID+"&new_folder="+new_folder+"&new_folder_name="+new_folder_name+"&get_previous_msg="+ preferences.delete_and_show_previous_message+"&cyrus_delimiter="+cyrus_delimiter, handler_move_msgs);2716 cExecute ("$this.imap_functions.spam&folder="+folder+"&spam=false"+"&msgs_number="+msgs_number+"&border_ID="+border_ID+"&sort_box_type="+sort_box_type+"&sort_box_reverse="+sort_box_reverse+"&reuse_border="+border_ID+"&new_folder="+new_folder+"&new_folder_name="+new_folder_name+"&get_previous_msg="+0+"&cyrus_delimiter="+cyrus_delimiter, handler_move_msgs); 2452 2717 else 2453 2718 write_msg(get_lang('No selected message.')); … … 2457 2722 if (folder == 'null') 2458 2723 folder = get_current_folder(); 2459 var new_folder = 'INBOX'+cyrus_delimiter+'Spam'; 2724 var new_folder = ''; 2725 if(folder.substr(0,4) == 'user') 2726 { 2727 arrayFolder = folder.split(cyrus_delimiter); 2728 new_folder = 'user'+cyrus_delimiter+arrayFolder[1]+cyrus_delimiter+spamfolder; 2729 } 2730 else 2731 { 2732 new_folder = 'INBOX' + cyrus_delimiter + spamfolder; 2733 } 2460 2734 var new_folder_name = 'Spam'; 2735 var not_opem_previus = true; 2461 2736 var handler_move_msgs = function(data){ 2462 proxy_mensagens.proxy_move_messages(folder, msgs_number, border_ID, new_folder, new_folder_name); 2463 if (openTab.type[currentTab] > 1) 2737 proxy_mensagens.proxy_move_messages(folder, msgs_number, border_ID, new_folder, new_folder_name, not_opem_previus); 2738 if (openTab.type[currentTab] > 1){ 2739 if(preferences.delete_and_show_previous_message == 1) 2464 2740 delete_border(currentTab,'false'); 2741 } 2465 2742 } 2466 2743 … … 2471 2748 2472 2749 if(parseInt(msgs_number) > 0 || msgs_number.length > 0) 2473 cExecute ("$this.imap_functions.spam&folder="+folder+"&spam=true"+"&msgs_number="+msgs_number+"&border_ID="+border_ID+"&sort_box_type="+sort_box_type+"&sort_box_reverse="+sort_box_reverse+"&reuse_border="+border_ID+"&new_folder="+new_folder+"&new_folder_name="+new_folder_name+"&get_previous_msg="+ preferences.delete_and_show_previous_message+"&cyrus_delimiter="+cyrus_delimiter, handler_move_msgs);2750 cExecute ("$this.imap_functions.spam&folder="+folder+"&spam=true"+"&msgs_number="+msgs_number+"&border_ID="+border_ID+"&sort_box_type="+sort_box_type+"&sort_box_reverse="+sort_box_reverse+"&reuse_border="+border_ID+"&new_folder="+new_folder+"&new_folder_name="+new_folder_name+"&get_previous_msg="+0+"&cyrus_delimiter="+cyrus_delimiter, handler_move_msgs); 2474 2751 else 2475 2752 write_msg(get_lang('No selected message.')); … … 2565 2842 if ( er.test(wfolders_tree._selected.id) ) 2566 2843 { 2567 archive_msgs('INBOX/Lixeira/tmpMoveToLocal',wfolders_tree._selected.id,data); 2568 cExecute('$this.imap_functions.delete_mailbox',function(){},'del_past=INBOX/Lixeira/tmpMoveToLocal'); 2844 alert( "Mensagens não podem ser importadas em pastas locais" ); 2845 //archive_msgs('INBOX/Lixeira/tmpMoveToLocal',wfolders_tree._selected.id,data); 2846 //cExecute('$this.imap_functions.delete_mailbox',function(){},'del_past=INBOX/Lixeira/tmpMoveToLocal'); 2569 2847 } 2570 2848 else{ … … 2614 2892 } 2615 2893 function import_calendar(data){ 2894 var import_url = '$this.db_functions.import_vcard&msg_folder='+data; 2895 2616 2896 function handler_import_calendar(data){ 2617 2897 if(data === true){ 2618 2898 write_msg(get_lang("The event was imported successfully.")); 2619 2899 } 2900 else if( data['url'] ) 2901 { 2902 var form = document.createElement( "form" ); 2903 2904 form.setAttribute( "action", DEFAULT_URL + data['url'] + '&isPost=true' ); 2905 form.setAttribute( "method", "POST" ); 2906 2907 document.body.appendChild( form ); 2908 2909 form.submit(); 2910 } 2911 else 2912 write_msg(get_lang(data)); 2620 2913 } 2621 2914 if(confirm(get_lang("Do you confirm this import to your Calendar?"))){ 2622 cExecute('$this.db_functions.import_vcard&msg_folder='+data,handler_import_calendar); 2623 } 2915 cExecute( import_url +'&from_ajax=true',handler_import_calendar); 2916 } 2917 } 2918 function open_msg_part(data){ 2919 var handler_open_msg_part = function (data) 2920 { 2921 if(data.append == 1) 2922 { 2923 proxy_mensagens.get_msg(data.msg_number,data.msg_folder,false,show_msg); 2924 partMsgs.push(data.msg_number); 2925 } 2926 else 2927 write_msg(data.append); 2928 } 2929 cExecute('$this.imap_functions.ope_msg_part&msg_folder='+data+'&save_folder=INBOX'+cyrus_delimiter+trashfolder , handler_open_msg_part); 2624 2930 } 2625 2931 function hack_sent_queue(data,rowid_message) { … … 2696 3002 var er_Email = new RegExp("<(.*?)>"); 2697 3003 // TODO Use validateEmail of common functions ! 2698 var er_ValidaEmail = new RegExp("^[_a-z 0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$");3004 var er_ValidaEmail = new RegExp("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,3})$"); 2699 3005 2700 3006 for (i=0; i < arrayEmailsFull.length; i++){ … … 2702 3008 tempEmail = email == null ? arrayEmailsFull[i]:email[1]; 2703 3009 tempEmail = tempEmail.replace(/^\s+|\s+$/g,""); 3010 2704 3011 if (tempEmail != '') { 2705 3012 singleEmail = er_ValidaEmail.exec(tempEmail); 2706 2707 3013 if (singleEmail == null) { 2708 3014 arrayInvalidEmails[0] = true; 2709 arrayInvalidEmails[1] += (email == null ? arrayEmailsFull[i] : email[1]) + " ;";3015 arrayInvalidEmails[1] += (email == null ? arrayEmailsFull[i] : email[1]) + ""; 2710 3016 } 2711 3017 }
Note: See TracChangeset
for help on using the changeset viewer.