Changeset 271 for trunk/expressoMail1_2/js
- Timestamp:
- 04/30/08 17:11:15 (16 years ago)
- Location:
- trunk/expressoMail1_2/js
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/js/QuickCatalogSearch.js
r128 r271 11 11 _this = this; 12 12 13 var title = get_lang('Select a name') + ':';14 13 var el = document.createElement("DIV"); 15 14 el.style.visibility = "hidden"; … … 23 22 el.innerHTML = ""; 24 23 25 if (data.quickSearch_only_in_userSector)26 title += "<font color='BLACK' nowrap> ("+get_lang('Showing only the results found in your organization')+".)</font>"27 28 el.innerHTML = " <b><font color='BLUE' nowrap>"+title+"</font></b><br> ";29 30 24 if (document.getElementById('select_QuickCatalogSearch') == null){ 25 26 var title_innerHTML = get_lang('Select a name') + ':'; 27 if (data.quickSearch_only_in_userSector) 28 title_innerHTML += "<font color='BLACK' nowrap> ("+get_lang('Showing only the results found in your organization')+".)</font>" 29 30 var title = document.createElement("SPAM"); 31 title.id = 'window_QuickCatalogSearch_title'; 32 title.innerHTML = " <b><font color='BLUE' nowrap>"+title_innerHTML+"</font></b><br> "; 33 el.appendChild(title); 34 31 35 var cmb = document.createElement("SELECT"); 32 36 cmb.id = "select_QuickCatalogSearch"; … … 83 87 } 84 88 else{ 89 var title_innerHTML = get_lang('Select a name') + ':'; 90 if (data.quickSearch_only_in_userSector) 91 title_innerHTML += "<font color='BLACK' nowrap> ("+get_lang('Showing only the results found in your organization')+".)</font>" 92 93 var title = Element('window_QuickCatalogSearch_title'); 94 title.innerHTML = " <b><font color='BLUE' nowrap>"+title_innerHTML+"</font></b><br> "; 95 85 96 var cmb = document.getElementById('select_QuickCatalogSearch'); 86 97 cmb.onkeypress = function (e) … … 109 120 } 110 121 }; 111 112 122 113 123 for (i=0; i<cmb.length; i++) 114 124 cmb.options[i--] = null; -
trunk/expressoMail1_2/js/abas.js
r245 r271 69 69 } 70 70 71 /*var span_options = document.getElementById("span_options");72 if (span_options){73 span_options.parentNode.removeChild(span_options);74 var span_options = document.createElement("SPAN");75 span_options.setAttribute("id","span_options");76 }77 78 if ((span_options) && (ID == 0)){79 var span_D = Element("span_D");80 span_options.innerHTML =81 '<span title="'+get_lang("Delete")+'" style="margin-left:8px;" class="message_options" onclick=delete_msgs(\'null\',\'selected\',\'null\')>'+get_lang("Delete")+'</span> | '+82 '<span title="'+get_lang("Move")+'" class="message_options" onclick=wfolders.makeWindow(\"\",\"move_to\")>'+get_lang("Move")+'</span> | '+83 '<span title="'+get_lang("Print")+'" class="message_options" onclick=print_all()>'+get_lang("Print")+'</span> | '+84 '<span title="'+get_lang("Export")+'" class="message_options" onclick="export_all_selected_msgs()">'+get_lang("Export")+'</span>';85 span_options.setAttribute('style',"font-size:5px;");86 span_D.parentNode.insertBefore(span_options,span_D);87 } else88 if ((span_options) && (ID != 0)){89 span_options.innerHTML = '<span title="'+get_lang("Delete")+'" style="margin-left:8px" class="message_options" onclick=delete_search_msgs('+content.id+')>'+get_lang("Delete")+'</span> | '+90 '<span title="'+get_lang("Move")+'" class="message_options" onclick=wfolders.makeWindow(\"border_id_'+content.id.substr(11)+'\",\"move_to\")>'+get_lang("Move")+'</span>';91 var span_D = Element("span_D");92 span_D.parentNode.insertBefore(span_options,span_D);93 }94 */95 71 return ID; 96 72 } … … 108 84 } 109 85 Element("footer_menu").style.display = 'none'; 110 var ID = id_value ? id_value : parseInt(BordersArray[(BordersArray.length-1)].sequence) + 1; 86 87 if (! id_value) // Is new message? 88 var ID = parseInt(BordersArray[(BordersArray.length-1)].sequence) + 1; 89 else{ 90 var ID = id_value; 91 if (document.getElementById("border_id_"+id_value+"_r")) // Edit message? if yes treat like new 92 var id_value = null; 93 } 111 94 112 95 td = document.createElement("TD"); … … 204 187 if(!ID) 205 188 return false; 189 206 190 if (msg_sent == 'false') 207 191 { … … 211 195 try 212 196 { 213 if (body.contentWindow.document.designMode.toLowerCase() == 'on') 197 var save_link = Element("save_message_options"); 198 if ((body.contentWindow.document.designMode.toLowerCase() == 'on') && (save_link.onclick != '')) 214 199 { 215 200 var discard_msg = confirm(get_lang("Your message has not been sent. Discard your message?"), ""); … … 220 205 else 221 206 { 207 if (! newMessageTab.toPreserve[ID]) 208 cExecute ("$this.imap_functions.delete_msgs&folder="+newMessageTab.imapBox[ID]+"&msgs_number="+newMessageTab.imapUid[ID],function(data){ return }); 222 209 Element('to_'+ID).focus(); 223 210 } … … 229 216 } 230 217 } 218 219 newMessageTab.toPreserve[ID] = false; 220 newMessageTab.imapUid[ID] = 0; 231 221 232 222 hold_session = false; -
trunk/expressoMail1_2/js/common_functions.js
r197 r271 45 45 // onUnload edit message 46 46 if(!is_ie) 47 window.onbeforeunload = unloadMess; 47 { 48 var beforeunload = window.onbeforeunload; 49 window.onbeforeunload = function() 50 { 51 if ( typeof beforeunload == 'function' ) 52 beforeunload(); 53 54 return unloadMess(); 55 }; 56 } 48 57 function unloadMess(){ 49 58 var mess = get_lang("Your message has not been sent and will be discarted."); … … 154 163 } 155 164 156 function download_attachments(msg_folder, msg_number, idx_file, msg_part, encoding, new_file_name ){165 function download_attachments(msg_folder, msg_number, idx_file, msg_part, encoding, new_file_name, show_iframe){ 157 166 div_attachment = document.getElementById("id_div_attachment"); 158 167 var params = ''; … … 167 176 if(encoding) 168 177 params += "&encoding="+encoding; 178 169 179 div_attachment.innerHTML="<iframe style='display:none;width:0;height:0' name='attachment' src='inc/gotodownload.php?msg_folder="+msg_folder+"&msg_number="+msg_number+"&idx_file="+idx_file+"&msg_part="+msg_part+params+"'></iframe>"; 170 180 } 181 171 182 function download_all_attachments(msg_folder, msg_number){ 172 183 var handler_source = function(data){ … … 176 187 } 177 188 // Add Input File Dynamically. 178 var countFiles = 0;179 189 function addFile(id_border){ 180 190 divFiles = document.getElementById("divFiles_"+id_border); 181 countFiles++; 191 192 if (divFiles.lastChild) 193 var countDivFiles = parseInt(divFiles.lastChild.id.split('_')[2]) + 1; 194 195 if (! countDivFiles) 196 var countDivFiles = 1; 197 182 198 divFile = document.createElement('DIV'); 183 inputFile = document.createElement("INPUT"); 199 200 var inputFile = document.createElement("INPUT"); 184 201 185 202 var tmp_id_border = document.createAttribute('id_border'); 186 203 tmp_id_border.value = id_border; 204 187 205 inputFile.setAttributeNode(tmp_id_border); 188 inputFile.id = "inputFile_"+id_border+ countFiles;206 inputFile.id = "inputFile_"+id_border+"_"+countDivFiles; 189 207 inputFile.onchange = function () {validateFileExtension(this.value, this.id.replace("input","div"), this.getAttribute('id_border'));}; 190 208 inputFile.type = 'file'; 191 209 inputFile.size = 50; 192 210 inputFile.maxLength = 255; 193 inputFile.name='file_'+countFiles; 211 inputFile.name='file_'+countDivFiles; 212 194 213 divFile.appendChild(inputFile); 195 linkFile = document.createElement("A"); 196 linkFile.id = "linkFile_"+id_border+countFiles; 214 215 var linkFile = document.createElement("A"); 216 linkFile.id = "linkFile_"+id_border+"_"+countDivFiles; 197 217 linkFile.href='javascript:void(0)'; 198 218 linkFile.onclick=function () {removeFile(this.id.replace("link","div"));}; … … 200 220 //divFile.innerHTML += " "; 201 221 divFile.appendChild(linkFile); 202 divFile.id = "divFile_"+id_border+ countFiles;222 divFile.id = "divFile_"+id_border+"_"+countDivFiles; 203 223 divFiles.appendChild(divFile); 204 224 } 205 225 // Remove Input File Dynamically. 206 226 function removeFile(id){ 227 var border_id = id.substr(8,1); 207 228 var el = Element(id); 208 229 el.parentNode.removeChild(el); … … 210 231 211 232 function validateFileExtension(fileName, id, id_border){ 212 var fileExtension = fileName.split("."); 233 var error_flag = false; 234 if (fileName[0] != '/'){ // file name is windows format? 235 var file = fileName.substr(fileName.lastIndexOf('\\') + 1, fileName.length); 236 if ((fileName.indexOf(':\\') != 1) && (fileName.indexOf('\\\\') != 0)) // Is stored in partition or a network file? 237 error_flag = true; 238 } 239 else // is nix 240 var file = fileName.substr(fileName.lastIndexOf('/') + 1, fileName.length); 241 242 var fileExtension = file.split("."); 213 243 fileExtension = fileExtension[(fileExtension.length-1)]; 214 215 244 for(var i=0; i<denyFileExtensions.length; i++) 216 245 { 217 246 if(denyFileExtensions[i] == fileExtension) 218 247 { 219 alert(get_lang('File extension forbidden') + '.'); 220 removeFile(id); 221 addFile(id_border); 222 } 223 } 248 error_flag = true; 249 break; 250 } 251 252 } 253 254 if (error_flag == true){ 255 alert(get_lang('File extension forbidden or invalid file') + '.'); 256 removeFile(id); 257 addFile(id_border); 258 return false; 259 } 260 return true; 261 224 262 } 225 263 -
trunk/expressoMail1_2/js/connector.js
r197 r271 506 506 // url: 'module.class.method' 507 507 // form: form element (for upload files) 508 function cExecuteForm(url, form, handler ){508 function cExecuteForm(url, form, handler,id){ 509 509 connector.buildBar(); 510 510 isExecuteForm = true; … … 526 526 } 527 527 528 if(countFiles) { 528 var divFiles = Element("divFiles_"+id); 529 if (divFiles.firstChild) { 529 530 el = document.createElement('input'); 530 531 el.type = 'hidden'; 531 532 el.name = 'countFiles'; 532 el.value = countFiles; 533 var countDivFiles = 0; 534 try{ 535 countDivFiles = parseInt(divFiles.lastChild.firstChild.id.split('_')[2]) + 1; // The id of last file 536 } 537 catch (e) { var countDivFiles = 0; }; 538 el.value = countDivFiles ; 533 539 form.appendChild(el); 534 540 } -
trunk/expressoMail1_2/js/draw_api.js
r252 r271 871 871 var option_edit = '<span class="message_options" onclick="new_message(\'edit\',\''+ID+'\');">'+get_lang('Edit')+'</span> | '; 872 872 var option_print = '<span class="message_options" onclick="print_msg(\''+info_msg.msg_folder+'\',\''+info_msg.msg_number+'\',\''+ID+'\');">'+get_lang('Print')+'</span> | '; 873 var option_delete = '<span class="message_options" onclick="delete_msgs(\''+info_msg.msg_folder+'\',\''+info_msg.msg_number+'\',\''+ID+'\');">'+get_lang('Delete')+'</span>'; 873 var option_delete = '<span class="message_options" onclick="delete_msgs(\''+info_msg.msg_folder+'\',\''+info_msg.msg_number+'\',\''+ID+'\');">'+get_lang('Delete')+'</span> | '; 874 var option_hide_more = document.createElement("SPAN"); 875 option_hide_more.className = 'message_options'; 876 options.align = 'right'; 877 option_hide_more.value = 'more_options'; 878 option_hide_more.id = 'option_hide_more_'+ID; 879 option_hide_more.innerHTML = get_lang('Options'); 880 option_hide_more.onclick = function(){ 881 var _height = Element("div_message_scroll_"+ID).style.height; 882 _height = parseInt(_height.replace("px","")); 883 var _offset = 35; 884 if (this.value == 'more_options'){ 885 this.innerHTML = "<b><u>"+get_lang('Options')+"</u></b>"; 886 this.value = 'hide_options'; 887 Element("div_message_scroll_"+ID).style.height = (_height - _offset)+"px"; 888 Element('table_message_others_options_'+ID).style.display = ''; 889 } 890 else{ 891 this.innerHTML = get_lang('Options'); 892 this.value = 'more_options'; 893 Element("div_message_scroll_"+ID).style.height = (_height + _offset)+"px"; 894 Element('table_message_others_options_'+ID).style.display = 'none'; 895 } 896 }; 874 897 options.innerHTML = option_edit + option_print + option_delete; 898 options.appendChild(option_hide_more); 875 899 tr.appendChild(td); 876 900 tr.appendChild(options); … … 896 920 var td1 = document.createElement("TD"); 897 921 td1.innerHTML = get_lang("From: "); 922 td1.appendChild(deny_email(info_msg.from.email)); 898 923 td1.width = "7%"; 899 924 … … 903 928 var td111 = document.createElement("TD"); 904 929 td111.innerHTML = get_lang("Sent by")+": "; 930 td111.appendChild(deny_email(info_msg.sender.email)); 905 931 td111.setAttribute("noWrap","true"); 906 932 var sender = document.createElement("TD"); … … 911 937 sender_values.value = info_msg.sender.full; //Veio do IMAP, sem images nem links. 912 938 sender.innerHTML += draw_plugin_cc(ID, info_msg.sender.full); 913 sender.appendChild(deny_email(info_msg.sender.email));914 939 sender.className = "header_message_field"; 915 940 tr111.appendChild(td111); … … 925 950 if (info_msg.Draft != "X"){ 926 951 from.innerHTML += draw_plugin_cc(ID, info_msg.from); 927 from.appendChild(deny_email(info_msg.from.email));928 952 tbody_message_others_options.appendChild(tr1); 929 953 } … … 1197 1221 } 1198 1222 1199 function draw_new_message( ){1200 var ID = create_border("" );1223 function draw_new_message(border_ID){ 1224 var ID = create_border("",border_ID); 1201 1225 hold_session = true; 1202 1226 ///////////////////////////////////////////////////////////////////////////////////////////////////////// … … 1241 1265 wfolders.alert = true; 1242 1266 } 1243 var option_save = '<span class="message_options" onclick=wfolders.makeWindow("'+ID+'","save");>'+get_lang("Save")+'</span> | '; 1267 // var option_save_as = '<span class="message_options" onclick=wfolders.makeWindow("'+ID+'","save");>'+get_lang("Save as")+'</span> | '; 1268 var option_save = '<span id="save_message_options" class="message_options" onclick="newMessageTab.toPreserve['+ID+'] = true; save_msg('+ID+');">'+get_lang("Save")+'</span> | '; 1244 1269 var option_search = '<span class="message_options" onclick=openListUsers("'+ID+'");>'+get_lang("Search")+'</span>'; 1245 1270 td_menu_new_message.innerHTML = option_send + option_send_and_file + option_save + option_search; … … 2046 2071 dn_em.setAttribute("title",get_lang("Block Sender")); 2047 2072 dn_em.style.cursor = "pointer"; 2048 dn_em.innerHTML = "<img onclick=filter.new_rule('"+email+"') src='./templates/default/images/deny.gif'>";2073 dn_em.innerHTML = "<img align='top' onclick=filter.new_rule('"+email+"') src='./templates/default/images/deny.gif'>"; 2049 2074 return dn_em; 2050 2075 -
trunk/expressoMail1_2/js/filter.js
r246 r271 370 370 _this.out_officeF = false; 371 371 //Save outoffice in prefs: 372 if(!prefe) 373 connector.loadScript("preferences"); 372 connector.loadScript("preferences"); 374 373 prefe.save("outoffice", _this.out_officeF); 375 374 } … … 530 529 _this.out_officeF = (aux[4].replace("\n","") == "off") ? false : true; 531 530 //Save outoffice in prefs: 532 if(!prefe) 533 connector.loadScript("preferences"); 531 connector.loadScript("preferences"); 534 532 prefe.save("outoffice", _this.out_officeF); 535 533 } -
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 -
trunk/expressoMail1_2/js/preferences.js
r244 r271 73 73 "<option value='15'>"+get_lang("Big")+"</option>"+ 74 74 "</select></td></tr>"+ 75 "<tr><td> - " + get_lang("Auto save draft") + "?</td>"+ 76 "<td><input type='checkBox' id='auto_save_draft' name='auto_save_draft'></td></tr>"+ 75 77 "<tr><td> - " + get_lang("Use shortcuts?") + "</td>"+ 76 78 "<td><input type='checkBox' id='use_shortcuts' name='use_shortcuts'></td></tr>"+ … … 131 133 txt_signature.value = preferences.signature; 132 134 133 if( preferences.use_shortcuts == 1){Element("use_shortcuts").checked = true;} 135 if( preferences.use_shortcuts == 1) Element("use_shortcuts").checked = true; 136 if( preferences.auto_save_draft == 1) Element("auto_save_draft").checked = true; 134 137 } 135 138 … … 152 155 reload_page = true; 153 156 else if(preferences.use_shortcuts != Element("use_shortcuts").checked) 157 reload_page = true; 158 else if(preferences.auto_save_draft != Element("auto_save_draft").checked) 154 159 reload_page = true; 155 160 … … 166 171 preferences.signature = Element("txt_signature").value; 167 172 preferences.use_shortcuts = Element("use_shortcuts").checked ? 1 : 0; 173 preferences.auto_save_draft = Element("auto_save_draft").checked ? 1 : 0; 174 168 175 var _this = this; 169 176 … … 217 224 218 225 if(! this.prefeW[div.id]) { 219 div.style.height = is_ie ? "3 55px" : "365px";226 div.style.height = is_ie ? "385px" : "370px"; 220 227 div.style.width = "510px"; 221 228 div.style.visibility = "hidden"; -
trunk/expressoMail1_2/js/rich_text_editor.js
r163 r271 1 var newMessageTab = { 2 'imapUid' : [], // Stores the imap email number of current tab 3 'countFile' : [0,0,0,0,0,0,0,0,0,0], // Stores the number of files attached in current tab 4 'imapBox' : [], // Stores the folder name 5 'toPreserve' : [] // Check if the message should be removed from draft after send 6 }; 7 8 var defaultDraftFolder = ''; 9 1 10 function cRichTextEditor(){ 11 this.emwindow = new Array; 2 12 this.editor; 3 13 this.table; 4 14 this.id; 5 15 this.buildEditor(); 16 this.saveFlag = 0; 6 17 } 7 18 … … 151 162 152 163 var buttons = ['bold', 'italic', 'underline', 'forecolor', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 153 'undo', 'redo', 'insertorderedlist', 'insertunorderedlist', 'outdent', 'indent', 'link', 'signature' ];164 'undo', 'redo', 'insertorderedlist', 'insertunorderedlist', 'outdent', 'indent', 'link', 'signature', 'image', 'table']; 154 165 155 166 for (var i=0; i<buttons.length; i++){ … … 166 177 else if (buttons[i] == 'link') 167 178 img.onclick = function () {RichTextEditor.createLink();}; 179 else if (buttons[i] == 'image') 180 img.onclick = function () {RichTextEditor.createImage();}; 181 else if (buttons[i] == 'table') 182 img.onclick = function () {RichTextEditor.createTable();}; 168 183 else 169 184 img.onclick = function () {RichTextEditor.editorCommand(this.id,'');}; … … 181 196 182 197 cRichTextEditor.prototype.editorCommand = function(command, option) { 183 var mainField = document.getElementById(this.editor).contentWindow;184 198 try { 199 var mainField = document.getElementById(this.editor).contentWindow; 185 200 mainField.focus(); 186 201 if (command == 'signature'){ … … 198 213 } 199 214 } 200 else 201 mainField.document.execCommand(command, false, option); 215 else if (command == 'CreateLink') 216 mainField.document.execCommand('CreateLink', false, option); 217 else if (command == 'Table'){ 218 if (is_ie){ 219 var sel = document.selection; 220 if (sel!=null) 221 { 222 var rng = sel.createRange(); 223 if (rng!=null) 224 rng.pasteHTML(option); 225 } 226 } 227 else 228 mainField.document.execCommand('inserthtml', false, option); 229 } 230 else // command == Image 231 mainField.document.execCommand('InsertImage', false, option); 202 232 //mainField.focus(); 203 } catch (e) { }233 } catch (e) { alert(e.description); } 204 234 } 205 235 … … 222 252 this.editorCommand("CreateLink", szURL); 223 253 } 254 } 255 256 // It include the image file in emails body 257 // It saves and attach in drafts folder and open it 258 cRichTextEditor.prototype.addInputFile = function() 259 { 260 var id = this.editor.substr(5); // border_id 261 divFiles = document.getElementById("divFiles_"+id); 262 var countDivFiles = divFiles.childNodes.length + 1; 263 264 var inputFile = document.getElementById('inputFile_img'); 265 var divFiles = document.getElementById('divFiles_'+id); 266 inputFile.id = 'inputFile_'+id +"_"+countDivFiles; 267 inputFile.name = 'file_'+countDivFiles; 268 divFile = document.createElement('DIV'); 269 divFile.appendChild(inputFile); 270 divFiles.appendChild(divFile); 271 272 var form_upload = document.getElementById('form_upload'); 273 form_upload.parentNode.removeChild(form_upload); 274 win.close(); 275 276 if (! validateFileExtension(inputFile.value, inputFile.id , id)) 277 return false; 278 279 RichTextEditor.saveFlag = 0; // See if save function finished 280 save_msg(id); 281 setTimeout("RichTextEditor.insertImgHtml("+id+")",1000); 282 } 283 284 cRichTextEditor.prototype.insertImgHtml = function (id){ 285 if (RichTextEditor.saveFlag == 0) 286 setTimeout("RichTextEditor.insertImgHtml("+id+")",500); 287 else 288 this.editorCommand('Image', './inc/show_embedded_attach.php?msg_folder=INBOX/'+draftsfolder+'&msg_num='+newMessageTab.imapUid[id]+'&msg_part='+(newMessageTab.countFile[id]+1)); 289 // this.editorCommand('Image', '.inc/gotodownload.php?msg_folder="+msg_folder+"&msg_number="+msg_number+"&idx_file="+idx_file+"&msg_part="+msg_part+params')); 290 } 291 292 cRichTextEditor.prototype.insertTableHtml = function (){ 293 var id = this.editor.substr(5); // border_id 294 var rows = document.getElementById('rows').selectedIndex; 295 var cols = document.getElementById('cols').selectedIndex; 296 var insertTable = '<table border="1px"><tbody>'; 297 for (var i = 0; i <= rows; i++){ 298 insertTable += "<tr>"; 299 for (var j = 0; j <= cols; j++) 300 insertTable += "<td> </td>"; 301 insertTable += "</tr>"; 302 } 303 insertTable += "</tbody></table>"; 304 this.editorCommand('Table', insertTable); 305 } 306 307 cRichTextEditor.prototype.createTable = function(){ 308 var form = document.getElementById("table_window"); 309 if (form == null){ 310 form = document.createElement("DIV"); 311 form.id = "table_window"; 312 form.style.visibility = "hidden"; 313 form.style.position = "absolute"; 314 form.style.background = "#eeeeee"; 315 form.style.left = "0px"; 316 form.style.top = "0px"; 317 form.style.width = "0px"; 318 form.style.height = "0px"; 319 document.body.appendChild(form); 320 } 321 322 var form_table = document.createElement("DIV"); 323 form_table.id = "form_table"; 324 form_table.style.position = "absolute"; 325 form_table.style.top = "5px"; 326 form_table.style.left = "5px"; 327 form_table.style.width = "170px"; 328 form_table.style.height = "120px"; 329 form_table.name = get_lang("Insert Table"); 330 form_table.innerHTML = get_lang('Select the table size')+':<br><br>'+ 331 get_lang('Rows')+': '+ get_lang('Cols')+':<br>'+ 332 '<select name="rows" id="rows"><option value="1">1</option>'+ 333 '<option value="2">2</option>'+ 334 '<option value="3">3</option>'+ 335 '<option value="4">4</option>'+ 336 '<option value="5">5</option>'+ 337 '<option value="6">6</option>'+ 338 '<option value="7">7</option>'+ 339 '<option value="8">8</option>'+ 340 '<option value="9">9</option></select> '+ 341 '<select name="cols" id="cols"><option value="1">1</option>'+ 342 '<option value="2">2</option>'+ 343 '<option value="3">3</option>'+ 344 '<option value="4">4</option>'+ 345 '<option value="5">5</option>'+ 346 '<option value="6">6</option>'+ 347 '<option value="7">7</option>'+ 348 '<option value="8">8</option>'+ 349 '<option value="9">9</option></select><br><br>'+ 350 '<input title="Close" value="' + get_lang('Close') + '" type="button" onclick="win.close()"> '+ 351 '<input title="Include" value="' + get_lang('Include') + '" type="button" onclick="RichTextEditor.insertTableHtml();win.close();">'; 352 form.appendChild(form_table); 353 354 this.showWindow(form); 355 } 356 357 cRichTextEditor.prototype.createImage = function(){ 358 var form = document.getElementById("attachment_window"); 359 if (form == null){ 360 form = document.createElement("DIV"); 361 form.id = "attachment_window"; 362 form.style.visibility = "hidden"; 363 form.style.position = "absolute"; 364 form.style.background = "#eeeeee"; 365 form.style.left = "0px"; 366 form.style.top = "0px"; 367 form.style.width = "0px"; 368 form.style.height = "0px"; 369 document.body.appendChild(form); 370 } 371 372 var form_upload = document.createElement("DIV"); 373 form_upload.id = "form_upload"; 374 form_upload.style.position = "absolute"; 375 form_upload.style.top = "5px"; 376 form_upload.style.left = "5px"; 377 form_upload.name = get_lang("Upload File"); 378 form_upload.style.width = "450px"; 379 form_upload.style.height = "75px"; 380 form_upload.innerHTML = get_lang('Select the desired image file')+':<br>'+ 381 '<input name="image_at" maxlength="255" size="50" id="inputFile_img" type="file"><br>' + 382 '<input title="Include" value="' + get_lang('Include') + '"' + 'type="button" onclick="RichTextEditor.addInputFile();"> ' + 383 '<input title="Close" value="' + get_lang('Close') + '"' + 384 ' type="button" onclick="win.close()">'; 385 form.appendChild(form_upload); 386 387 this.showWindow(form); 388 } 389 cRichTextEditor.prototype.showWindow = function (div){ 390 391 if(! div) { 392 return; 393 } 394 395 if(! this.emwindow[div.id]) { 396 div.style.width = div.firstChild.style.width; 397 div.style.height = div.firstChild.style.height; 398 div.style.zIndex = "10000"; 399 var title = div.firstChild.name; 400 var wHeight = div.offsetHeight + "px"; 401 var wWidth = div.offsetWidth + "px"; 402 div.style.width = div.offsetWidth - 5; 403 404 win = new dJSWin({ 405 id: 'win_'+div.id, 406 content_id: div.id, 407 width: wWidth, 408 height: wHeight, 409 title_color: '#3978d6', 410 bg_color: '#eee', 411 title: title, 412 title_text_color: 'white', 413 button_x_img: '../phpgwapi/images/winclose.gif', 414 border: true }); 415 416 this.emwindow[div.id] = win; 417 win.draw(); 418 } 419 else 420 win = this.emwindow[div.id]; 421 win.open(); 224 422 } 225 423 -
trunk/expressoMail1_2/js/search.js
r163 r271 266 266 table.id = "table_resultsearch_" + search_tabs; 267 267 table.width = "100%"; 268 table.borderColorDark = "#bbbbbb"; 269 table.frame = "void"; 270 table.rules = "rows"; 271 table.cellPadding = "0"; 272 table.cellSpacing = "0"; 268 273 269 274 var tbody = document.createElement("TBODY"); … … 275 280 for( var i=0; i < nw_array.length; i++){ 276 281 var tr = document.createElement("TR"); 277 //var color = "#F0F0F0"; 278 //tr.style.background = color; 282 tr.style.height = "30px"; 279 283 tr.className = 'tr_msg_read'; 280 284 … … 326 330 if( j == 3){ 327 331 var subject_encode = url_encode(aux[2]); 332 if (! subject_encode) 333 aux[2] = get_lang("no subject") + "..."; 328 334 td.width = "30%"; 329 335 var td1 = '<div style="width:100%;overflow:hidden"><a href=javascript:void(0) onclick=EsearchE.open_msg(\"' + url_encode(mailbox) + '\",\"' + uid_msg + '\",\"' + subject_encode + '\")>' + aux[2] +'</a></div>'; … … 345 351 } 346 352 } 347 aux.splice(0,(aux.length)); 348 tbody.appendChild(tr); 353 aux.splice(0,(aux.length)); 354 355 subject = tr.firstChild; 356 subject = subject.nextSibling.nextSibling.nextSibling.firstChild.firstChild.innerHTML; 357 // _dragArea.makeDragged(tr, msg_number, subject, true); 358 _dragArea.makeDragged(tr, tr.firstChild.firstChild.id.substr(tr.firstChild.firstChild.id.indexOf(';')+1), subject, true); 359 tbody.appendChild(tr); 349 360 } 350 361 table.appendChild(tbody); … … 376 387 var table_element = document.createElement("TABLE"); 377 388 var tbody_element = document.createElement("TBODY"); 378 table_element.border = 1;379 389 table_element.setAttribute("id", "table_message_header_box"); 380 390 table_element.className = "table_message_header_box"; … … 447 457 content_search.appendChild(div_scroll_result); 448 458 if (span_options) 449 content_search.appendChild(span_options); 459 content_search.appendChild(span_options); 450 460 } 451 461 -
trunk/expressoMail1_2/js/wfolders.js
r197 r271 47 47 wfolders.arrayWin[el.id].close(); 48 48 if (type == 'save'){ 49 save_ msg(border_id, wfolders_tree._selected.id, wfolders_tree._selected.caption);49 save_as_msg(border_id, wfolders_tree._selected.id, wfolders_tree._selected.caption,true); 50 50 } 51 51 else if (type == 'send_and_file'){
Note: See TracChangeset
for help on using the changeset viewer.