Changeset 320 for trunk/expressoMail1_2/js/main.js
- Timestamp:
- 06/18/08 11:28:42 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/js/main.js
r271 r320 1 1 // Tempo do auto refresh (em milisegundos) 2 2 var time_refresh = 300000; 3 var autosave_time = 60000; 3 // tempo do auto save (em milisegundos) 4 // 20000 = 20 segundos 5 var autosave_time = 20000; 4 6 5 7 function init(){ … … 35 37 cyrus_delimiter = Element('cyrus_delimiter').value; 36 38 37 alternate_border(0);38 39 cExecute ("$this.db_functions.get_dropdown_contacts", save_contacts); 39 40 cExecute ("$this.functions.get_preferences", save_preferences); 40 41 setTimeout('auto_refresh()', time_refresh); 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 else74 setTimeout('auto_save_msg('+border_id+')',autosave_time);75 }76 else77 setTimeout('auto_save_msg('+border_id+')',3000);78 }79 42 } 80 43 … … 158 121 159 122 if ((msg_info.DispositionNotificationTo) && ((msg_info.Unseen == 'U') || (msg_info.Recent == 'N'))){ 160 cExecute ("$this.imap_functions.send_notification¬ificationto="+msg_info.DispositionNotificationTo+"&subject="+url_encode(msg_info.subject), handler_sendNotification); 123 /* var confNotification = confirm(get_lang("The sender waits your notification of reading. Do you want to confirm this?"), ""); 124 if (confNotification)*/ 125 cExecute ("$this.imap_functions.send_notification¬ificationto="+msg_info.DispositionNotificationTo+"&subject="+url_encode(msg_info.subject), handler_sendNotification); 161 126 } 162 127 } … … 285 250 var main_list = Element("tbody_resultsearch_"+border_id.substr(18)).childNodes; 286 251 for (j = 0; j < main_list.length; j++) { 287 var check_box = Element("check_box_ search_message_"+main_list[j].id);252 var check_box = Element("check_box_message_"+main_list[j].id); 288 253 if(check_box && check_box.checked) { 289 254 selected_messages += main_list[j].id + ','; … … 334 299 function move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name){ 335 300 336 if ( folder == 'null')337 folder = Element("input_folder_"+msgs_number+"_r") ? Element("input_folder_"+msgs_number+"_r").value : get_current_folder(); 338 301 if (! folder || folder == 'null') 302 folder = Element("input_folder_"+msgs_number+"_r") ? Element("input_folder_"+msgs_number+"_r").value : get_current_folder(); 303 339 304 var handler_move_msgs = function(data){ 340 341 if(typeof(data) == 'string' && data.match(/^(.*)TRYCREATE(.*)$/)){ 342 var move_to_folder = data.match(/^(.*)Spam(.*)$/) ? "Spam" : "Lixeira"; 343 alert(get_lang('Its %1 folder is not created. It is necessary to create so that it functions correctly.', move_to_folder)); 344 return false; 345 } 305 if(typeof(data) == 'string') 306 if (data.match(/^(.*)TRYCREATE(.*)$/)){ 307 connector.loadScript('TreeS'); 308 var move_to_folder = data.match(/^(.*)Spam(.*)$/) ? "Spam" : trashfolder; 309 alert(get_lang('There is not %1 folder, Expresso is creating it for you... Please, repeat your request later.', move_to_folder)); 310 connector.loadScript('TreeShow'); 311 ttree.FOLDER = 'root'; 312 ttreeBox.new_past(move_to_folder); 313 return false; 314 }else{ 315 alert(data); 316 return false; 317 } 318 346 319 347 320 Element('chk_box_select_all_messages').checked = false; 348 321 mail_msg = Element("tbody_box"); 322 //mail_msg = document.getElementById("divScrollMain_"+numBox).firstChild.firstChild; 349 323 data.msgs_number = data.msgs_number.split(","); 350 324 325 var msg_to_delete; 326 all_search_msg = msgs_number.split(','); 327 for (var i=0; i <= all_search_msg.length; i++) 328 { 329 msg_to_delete = Element(folder+';'+all_search_msg[i]); 330 if (msg_to_delete) 331 msg_to_delete.parentNode.removeChild(msg_to_delete); 332 } 333 351 334 if ( preferences.use_shortcuts == '1') { 352 335 var all_messages = Element('tbody_box').childNodes; … … 363 346 } 364 347 365 var msg_to_delete;366 348 for (var i=0; i<data.msgs_number.length; i++) 367 349 { … … 370 352 mail_msg.removeChild(msg_to_delete); 371 353 } 354 372 355 373 356 if (data.msgs_number.length == 1) … … 375 358 else 376 359 write_msg(get_lang("The messages were moved to folder ") + lang_folder(data.new_folder_name)); 377 378 if (data.border_ID != '' && data.border_ID != 'null'){ 360 if (data.border_ID.indexOf('r') != -1){ 379 361 if (parseInt(preferences.delete_and_show_previous_message) && folder == get_current_folder()) 380 362 show_msg(data.previous_msg); … … 399 381 else 400 382 write_msg(get_lang('No selected message.')); 383 401 384 } 402 385 403 386 function get_selected_messages(){ 404 387 main = Element("tbody_box"); 405 388 // main = document.getElementById("divScrollMain_"+numBox).firstChild.firstChild; 389 406 390 // Get all TR (messages) in tBody. 407 391 main_list = main.childNodes; 408 392 409 393 var selected_messages = ''; 410 394 var selected_messages_by_shortcuts = ''; … … 412 396 for (j; j<(main_list.length); j++) 413 397 { 398 if (main_list[j].id.indexOf(';') == -1) 399 { 414 400 check_box = Element("check_box_message_"+main_list[j].id); 415 401 if ( (check_box) && (check_box.checked) ) 416 {417 402 selected_messages += main_list[j].id + ','; 418 } 403 } 404 else 405 { // Message from search tab 406 check_box = Element("check_box_message_"+main_list[j].id.substr(main_list[j].id.indexOf(';')+1)); 407 if ( (check_box) && (check_box.checked) ) 408 selected_messages += main_list[j].id.substr(main_list[j].id.indexOf(';')+1) + ','; 409 } 419 410 420 411 if (preferences.use_shortcuts == '1') … … 450 441 451 442 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 443 455 444 // Salva a pasta da mensagem respondida ou encaminhada: … … 466 455 data = []; 467 456 if (Element("from_" + border_ID)){ 468 if (document.getElementById("reply_to_" + border_ID)){469 data.to = document.getElementById("reply_to_values_" + border_ID).value;470 data.to = data.to.replace(/</gi,"<");471 data.to = data.to.replace(/>/gi,">");457 if (document.getElementById("reply_to_" + border_ID)){ 458 data.to = document.getElementById("reply_to_values_" + border_ID).value; 459 data.to = data.to.replace(/</gi,"<"); 460 data.to = data.to.replace(/>/gi,">"); 472 461 } 473 462 else { 474 data.to = document.getElementById("from_values_" + border_ID).value; 475 data.to = data.to.replace(/</gi,"<"); 476 data.to = data.to.replace(/>/gi,">"); 463 if (document.getElementById("from_values_" + border_ID)) 464 { 465 data.to = document.getElementById("from_values_" + border_ID).value; 466 data.to = data.to.replace(/</gi,"<"); 467 data.to = data.to.replace(/>/gi,">"); 468 } 477 469 } 478 470 479 data.to_all = document.getElementById("to_values_" + border_ID).value; 480 data.to_all = data.to_all.replace(/\n/gi," "); 481 data.to_all = data.to_all.replace(/</gi,"<"); 482 data.to_all = data.to_all.replace(/>/gi,">"); 483 // delete user email from to_all array. 484 var _array_to_all = data.to_all.split(","); 485 data.to_all = new Array(); 486 var j = 0; 487 for(i = 0; i < _array_to_all.length; i++) { 488 if(_array_to_all[i].lastIndexOf(Element("user_email").value) == "-1"){ 489 data.to_all[j++] = _array_to_all[i]; 490 } 491 } 492 data.to_all = data.to_all.join(","); 471 if (document.getElementById("to_values_" + border_ID)){ 472 data.to_all = document.getElementById("to_values_" + border_ID).value; 473 data.to_all = data.to_all.replace(/\n/gi," "); 474 data.to_all = data.to_all.replace(/</gi,"<"); 475 data.to_all = data.to_all.replace(/>/gi,">"); 476 var _array_to_all = data.to_all.split(","); 477 } 493 478 } 494 479 … … 561 546 break; 562 547 case "reply_to_all_without_history": 548 // delete user email from to_all array. 549 data.to_all = new Array(); 550 var j = 0; 551 for(i = 0; i < _array_to_all.length; i++) { 552 if(_array_to_all[i].lastIndexOf(Element("user_email").value) == "-1"){ 553 data.to_all[j++] = _array_to_all[i]; 554 } 555 } 556 data.to_all = data.to_all.join(","); 557 563 558 title = "Re: " + data.subject; 564 559 Element("subject_" + new_border_ID).value = "Re: " + data.subject; … … 590 585 break; 591 586 case "reply_to_all_with_history": 587 // delete user email from to_all array. 588 data.to_all = new Array(); 589 var j = 0; 590 for(i = 0; i < _array_to_all.length; i++) { 591 if(_array_to_all[i].lastIndexOf(Element("user_email").value) == "-1"){ 592 data.to_all[j++] = _array_to_all[i]; 593 } 594 } 595 data.to_all = data.to_all.join(","); 592 596 title = "Re: " + data.subject; 593 597 Element("to_" + new_border_ID).value = data.to; … … 680 684 break; 681 685 case "edit": 682 newMessageTab.imapBox[new_border_ID] = folder_message.value 686 newMessageTab.imapBox[new_border_ID] = folder_message.value; 687 newMessageTab.toPreserve[new_border_ID] = true; 683 688 newMessageTab.imapUid[new_border_ID] = parseInt(border_ID.substr(0,border_ID.indexOf("_"))); 684 689 document.getElementById('font_border_id_'+new_border_ID).innerHTML = data.subject; … … 728 733 default: 729 734 } 730 735 736 if (preferences.auto_save_draft == 1) 737 { 738 var time_auto_save = false; 739 var save_link = document.getElementById("save_message_options"); 740 741 function auto_sav() 742 { 743 if ( time_auto_save ) 744 clearTimeout(time_auto_save); 745 746 time_auto_save = setTimeout("save_msg("+new_border_ID+")", autosave_time); 747 } 748 config_events(body.contentWindow.document,'keypress', auto_sav); 749 } 750 731 751 //BEGIN Tab event 732 752 if (preferences.use_shortcuts == '1') … … 792 812 write_msg(get_lang('Your message was sent.')); 793 813 } 814 if ((! newMessageTab.toPreserve[ID]) && (newMessageTab.imapUid[ID] != 0)) 815 cExecute ("$this.imap_functions.delete_msgs&folder="+newMessageTab.imapBox[ID]+"&msgs_number="+newMessageTab.imapUid[ID],function(data){ return }); 794 816 } 795 817 else{ … … 801 823 write_msg(data); 802 824 } 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 });805 825 } 806 826 … … 856 876 { 857 877 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 878 879 if (data.append != true || !data) 863 880 { 881 RichTextEditor.saveFlag = -1; 882 if (! data.append) 883 write_msg('ERROR saving your message.'); 884 else 885 { 886 if (data.append.match(/^(.*)TRYCREATE(.*)$/)) 887 { 888 connector.loadScript('TreeS'); 889 alert(get_lang('There is not %1 folder, Expresso is creating it for you... Please, repeat your request later.',draftsfolder)); 890 connector.loadScript('TreeShow'); 891 ttree.FOLDER = 'root'; 892 ttreeBox.new_past(draftsfolder); 893 setTimeout('save_msg('+border_id+')',3000); 894 } 895 else 896 write_msg(data.append); 897 } 898 } 899 else 900 { 901 RichTextEditor.saveFlag = 1; 864 902 newMessageTab.imapUid[border_id] = data.msg_no; 865 903 newMessageTab.imapBox[border_id] = data.folder_id; … … 876 914 var content_body = mainField.document.getElementsByTagName('body').item(0).innerHTML; 877 915 var body_images = content_body.match(/msg_num=\d*/g); 916 var images_part = content_body.match(/msg_part=\d*/g); 878 917 if (body_images) 879 918 { … … 881 920 content_body = content_body.replace(body_images[i],"msg_num="+newMessageTab.imapUid[border_id]); 882 921 } 922 var allImgs = new Array (images_part.length); 923 var j=-1; 924 for (var i in images_part){ 925 926 if (is_ie) 927 if (i == 0) 928 var image_number = parseInt(images_part[i].substr(9)); 929 else 930 image_number = "null"; 931 else 932 var image_number = parseInt(images_part[i].substr(9)); 933 934 if (! isNaN(image_number)) 935 { 936 if (! allImgs[image_number]) 937 { 938 allImgs[image_number] = true; 939 j--; 940 } 941 content_body = content_body.replace(images_part[i],'msg_part='+j); 942 } 943 } 944 content_body = content_body.replace(/msg_part=-/g,'msg_part='); 945 883 946 mainField.document.getElementsByTagName('body').item(0).innerHTML = content_body; 884 // This is not just stupid, it refresh screen to avoid broken images885 mainField.document.getElementsByTagName('body').item(0).innerHTML = mainField.document.getElementsByTagName('body').item(0).innerHTML;886 947 } 887 948 … … 927 988 cExecute ("$this.imap_functions.delete_msgs&folder="+newMessageTab.imapBox[border_id]+"&msgs_number="+message_id,handler_delete_msg); 928 989 929 if (preferences.auto_save_draft == 1)930 setTimeout('auto_save_msg('+border_id+')', autosave_time);931 932 990 var save_link = Element("save_message_options"); 933 991 save_link.onclick = ''; … … 940 998 941 999 function save_msg(border_id){ 1000 942 1001 if (newMessageTab.imapBox[border_id]) //Gets the imap folder 943 1002 var folder_id = newMessageTab.imapBox[border_id]; … … 956 1015 message_id = newMessageTab.imapUid[border_id]; 957 1016 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 1017 959 1018 var textArea = document.createElement("TEXTAREA"); 960 1019 textArea.style.display='none'; 961 1020 textArea.name = "body"; 962 1021 body = document.getElementById("body_"+border_id); 1022 if (! body) 1023 return; 963 1024 textArea.value += '<body>\r\n'; 964 1025 textArea.value += body.contentWindow.document.body.innerHTML; … … 968 1029 input_folder.name = "folder"; 969 1030 input_folder.value = folder_id; 1031 var input_msgid = document.createElement("INPUT"); 1032 input_msgid.style.display='none'; 1033 input_msgid.name = "msg_id"; 1034 input_msgid.value = message_id; 970 1035 971 1036 if (is_ie){ … … 978 1043 form.appendChild(textArea); 979 1044 form.appendChild(input_folder); 1045 form.appendChild(input_msgid); 980 1046 981 1047 cExecuteForm ("$this.imap_functions.save_msg", form, handler_save_msg,border_id); … … 1091 1157 function print_all(){ 1092 1158 var folder= Element('border_id_0').innerHTML; 1093 var body = Element('divScrollMain ').innerHTML;1159 var body = Element('divScrollMain_'+numBox).innerHTML; 1094 1160 var print_width = screen.width - 200; 1095 1161 var x = ((screen.width - print_width) / 2); … … 1243 1309 } 1244 1310 1245 /*function select_all_messages(select){1246 var main = Element("tbody_box");1247 var main_list = main.childNodes;1248 var len_main_list = main_list.length;1249 1250 var j = 0;1251 if (select){1252 for (j; j<len_main_list; j++){1253 var check_box = Element("check_box_message_"+main_list[j].id);1254 if (check_box){1255 check_box.checked = true;1256 var tr = Element(main_list[j].id);1257 switch(tr.className){1258 case "tr_msg_read":1259 tr.className = 'selected_seen_msg_bg';1260 break;1261 case "tr_msg_unread":1262 tr.className = 'selected_unseen_msg_bg';1263 break;1264 case "important_msg_read":1265 tr.className = 'selected_important_msg_read';1266 break;1267 case "important_msg_unread":1268 tr.className = 'selected_important_msg_unread';1269 break;1270 }1271 }1272 }1273 }1274 else{1275 for (j; j<len_main_list; j++){1276 var check_box = Element("check_box_message_"+main_list[j].id);1277 if (check_box){1278 check_box.checked = false;1279 1280 var tr = Element(main_list[j].id);1281 switch(tr.className){1282 case "selected_seen_msg_bg":1283 tr.className = 'tr_msg_read';1284 break;1285 case "selected_unseen_msg_bg":1286 tr.className = 'tr_msg_unread';1287 break;1288 case "selected_important_msg_read":1289 tr.className = 'important_msg_read';1290 break;1291 case "selected_important_msg_unread":1292 tr.className = 'important_msg_unread';1293 break;1294 }1295 }1296 }1297 }1298 }*/1299 1300 1301 1311 function verify_session(data){ 1302 1312 if(data && data.imap_error) {
Note: See TracChangeset
for help on using the changeset viewer.