Changeset 5604 for trunk/expressoMail1_2/js/main.js
- Timestamp:
- 03/02/12 03:48:47 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/js/main.js
r5588 r5604 277 277 var save_link = Element("save_message_options_"+border_id); 278 278 save_link.onclick = function onclick(event) {openTab.toPreserve[border_id] = true;save_msg(border_id);} ; 279 $("#save_message_options_"+border_id).button({ disabled: false});279 $("#save_message_options_"+border_id).button({disabled: false}); 280 280 $(".header-button").button(); 281 281 }; … … 580 580 return $(DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : $(this).find(".td_msg_subject").text(), type: "messages"})); 581 581 }, 582 cursorAt: { cursor: "move", top: 5, left: 56},582 cursorAt: {cursor: "move", top: 5, left: 56}, 583 583 refreshPositions: true , 584 584 scroll: true, … … 1805 1805 case "edit": 1806 1806 openTab.imapBox[new_border_ID] = folder_message.value; 1807 //openTab.toPreserve[new_border_ID] = true;1808 openTab.imapUid[new_border_ID] = parseInt(border_ID.substr(0,border_ID.indexOf("_")));1809 1807 document.getElementById('font_border_id_'+new_border_ID).innerHTML = data.subject; 1810 1808 title = "Edição: "+data.subject; … … 2073 2071 } 2074 2072 } 2075 if ((! openTab.toPreserve[ID]) && (openTab.imapUid[ID] != 0)) 2076 cExecute ("$this.imap_functions.delete_msgs&folder="+openTab.imapBox[ID]+"&msgs_number="+openTab.imapUid[ID],function(data){return}); 2077 delete_border(ID,'true'); // Becarefull: email saved automatically should be deleted. delete_border erase information about openTab 2073 delete_border(ID,'true'); 2078 2074 } 2079 2075 else{ … … 2087 2083 var save_link = Element("save_message_options_"+ID); 2088 2084 save_link.onclick = function onclick(event) {openTab.toPreserve[ID] = true;save_msg(ID);} ; 2089 $("#save_message_options_"+ID).button({ disabled: false});2085 $("#save_message_options_"+ID).button({disabled: false}); 2090 2086 //save_link.className = 'message_options'; 2091 2087 } … … 2173 2169 save_link.onclick = ''; 2174 2170 $("#save_message_options_"+ID).button({ disabled: true }); 2175 //save_link.className = 'message_options_inactive';2176 2171 2177 2172 ID_tmp = ID; … … 2184 2179 mail_as_plain = ( mail_as_plain ) ? mail_as_plain.checked : false; 2185 2180 2186 var content_body = RichTextEditor.getData('body_'+ID); 2187 //Remove imagens do corpo que estao com o checkbox desmarcados 2188 var files_checkbox = $("#divFiles_"+ID+" input:checkbox"); 2189 var files_unchecked = new Array(); 2190 for (var i = 0; i < files_checkbox.length; i++) 2191 if(files_checkbox[i].checked !== true) 2192 files_unchecked.push(connector.unserialize(unescape(trim(files_checkbox[i].value)))); 2193 2194 var imagens = content_body.match(/<img[^>]*>/g); 2195 2196 if(imagens != null) 2197 for (var x = 0; x < imagens.length; x++) 2198 for (var xx = 0; xx < files_unchecked.length; xx++) 2199 if(imagens[x].indexOf('indexPart='+files_unchecked[xx][3].replace(/'/g,'')) !== -1) 2200 content_body = content_body.replace(imagens[x],''); 2201 2202 //--------------------------------------------------------------------------// 2203 2181 var content_body = RichTextEditor.getData('body_'+ID); 2204 2182 var textArea = document.createElement("TEXTAREA"); 2205 2183 textArea.style.display='none'; … … 2210 2188 input_folder.style.display='none'; 2211 2189 input_folder.name = "folder"; 2212 input_folder.value = folder; 2213 var msg_id = document.createElement("INPUT"); 2214 msg_id.style.display='none'; 2215 msg_id.name = "msg_id"; 2216 msg_id.value = openTab.imapUid[ID]; 2190 input_folder.value = folder; 2191 2192 var uids = document.createElement("INPUT"); 2193 uids.style.display='none'; 2194 uids.name = "uids_save"; 2195 uids.value = uidsSave[ID].toString(); 2196 2197 var save_folder = document.createElement("INPUT"); 2198 save_folder.style.display='none'; 2199 save_folder.name = "save_folder"; 2200 save_folder.value = (openTab.imapBox[ID] && openTab.type[ID] < 6) ? openTab.imapBox[ID]: "INBOX" + cyrus_delimiter + draftsfolder; 2201 2202 var msg_attachments = document.createElement("INPUT"); 2203 msg_attachments.style.display='none'; 2204 msg_attachments.name = "attachments"; 2205 msg_attachments.value = listAttachment(ID); 2217 2206 2218 2207 if (is_ie){ … … 2239 2228 form.appendChild(textArea); 2240 2229 form.appendChild(input_folder); 2241 form.appendChild(msg_id);2242 2243 2230 2244 2231 // Implementação do In_Reply_To e References … … 2248 2235 msgId.value = currentTab; 2249 2236 2250 var msgFolder = document.createElement("INPUT"); 2251 msgFolder.style.display = 'none'; 2252 msgFolder.name = 'messageFolder'; 2253 msgFolder.value = openTab.imapBox[currentTab]; 2237 2254 2238 2255 2239 form.appendChild(msgId); 2256 form.appendChild(msgFolder);2257 2258 2240 form.appendChild(save_folder); 2241 form.appendChild(uids); 2242 form.appendChild(msg_attachments); 2259 2243 2260 2244 var mail_type = document.createElement('input'); … … 2350 2334 } 2351 2335 2352 function return_save(data,border_id,folder_name,folder_id,message_id)2353 {2354 Element("send_button_"+border_id).style.visibility="visible";2355 var handler_delete_msg = function(data){refresh(preferences.alert_new_msg);RichTextEditor.execPosInstance('body_'+border_id);};2356 2357 2358 if(data === null)2359 {2360 write_msg(get_lang('ERROR saving your message.'));2361 return null;2362 }2363 if(typeof(data.append) == 'undefined')2364 data.append = false;2365 2366 if(data.append === "Over quota"){2367 write_msg(get_lang('ERROR saving your message over quota.'));2368 return;2369 }2370 else if ( data.append !== true )2371 {2372 if (data.append == null)2373 write_msg(get_lang('ERROR saving your message.'));2374 else2375 {2376 if (data.append.match(/^(.*)TRYCREATE(.*)$/))2377 {2378 connector.loadScript('TreeS');2379 alert(get_lang('There is not %1 folder, Expresso is creating it for you... Please, repeat your request later.',draftsfolder));2380 connector.loadScript('TreeShow');2381 ttree.FOLDER = 'root';2382 ttreeBox.new_past(draftsfolder);2383 setTimeout('save_msg('+border_id+')',3000);2384 }2385 else2386 write_msg(data.append);2387 }2388 }2389 else2390 {2391 var newImage = false;2392 RichTextEditor.saveFlag = 1;2393 openTab.imapUid[border_id] = data.msg_no;2394 openTab.imapBox[border_id] = data.folder_id;2395 2396 var newTitle = document.getElementById('subject_'+border_id).value;2397 if (newTitle.length > 18)2398 newTitle = newTitle.substr(18) + '...';2399 else if (newTitle == '')2400 newTitle = get_lang("No subject");2401 document.getElementById('font_border_id_'+border_id).innerHTML = newTitle;2402 Element('border_id_'+border_id).title = newTitle;2403 2404 // Replace the embedded images for new uids2405 var content_body = RichTextEditor.getData('body_'+border_id);2406 var body_images = content_body.match(/msgNumber=\d*/g);2407 var folder_images = content_body.match(/msgFolder=[^&]*&/g);2408 2409 if (body_images != null)2410 {2411 for (var i=0; i<body_images.length; i++)2412 {2413 if( folder_images != null)2414 content_body = content_body.replace(folder_images[i], "msgFolder=INBOX" + cyrus_delimiter + draftsfolder +"&");2415 2416 2417 2418 2419 content_body = content_body.replace(body_images[i],"msgNumber="+openTab.imapUid[border_id]);2420 }2421 2422 var images_part = content_body.match(/indexPart=[0-9.]*/g);2423 2424 if(images_part != null)2425 {2426 for (var x = 0; x < images_part.length; x++)2427 {2428 var position = images_part[x].substr(10,images_part[x].length);2429 content_body = content_body.replace(images_part[x],'indexPart(||.|||.||)='+data.imagesParts[position]);2430 }2431 2432 }2433 content_body = content_body.replace(/indexPart\(\|\|\.\|\|\|\.\|\|\)=/g,'indexPart=');2434 }2435 2436 2437 2438 //Replace all files to new files2439 var divFiles = Element("divFiles_"+border_id);2440 divFiles.innerHTML = '';2441 2442 2443 var attach_files = connector.unserialize(data.files);2444 if (attach_files != null) {2445 openTab.countFile[border_id] = attach_files.length;2446 for (var att_index = 0; att_index < attach_files.length; att_index++){2447 2448 var link_attachment = document.createElement("a");2449 2450 var fileName = Base64.decode(attach_files[att_index].name);2451 var fileSize = attach_files[att_index].size / 1024;2452 2453 2454 link_attachment.innerHTML = fileName + " ("+parseInt(fileSize)+" kb)";2455 2456 var encoding = /\.eml$/.exec(fileName)? '7bit' : 'base64';2457 var href = "'"+folder_id+"','"+data.msg_no+"','"+(att_index)+"','0."+(att_index+1)+"','"+encoding+"'";2458 2459 link_attachment.setAttribute("href", "javascript:download_attachments("+href+")");2460 2461 var a_tmp = href.split(',');2462 a_tmp[2] = fileName;2463 s_tmp = escape(connector.serialize(a_tmp));2464 2465 var check_attachment = document.createElement("input");2466 check_attachment.type = 'CHECKBOX';2467 check_attachment.name = 'forwarding_attachments[]';2468 check_attachment.value = s_tmp;2469 2470 2471 2472 divFiles.appendChild(check_attachment);2473 divFiles.appendChild(link_attachment);2474 2475 divFiles.appendChild(document.createElement("br"));2476 2477 check_attachment.checked = true;2478 check_attachment.setAttribute("checked", "checked");2479 }2480 }2481 2482 if(RichTextEditor.newImageId !== false)2483 {2484 var rex = new RegExp('<img id="'+RichTextEditor.newImageId+'" src="" [^\/>]*\/>', 'i');2485 var newImg = '<img src="./inc/get_archive.php?msgFolder=INBOX'+cyrus_delimiter+draftsfolder+'&msgNumber='+openTab.imapUid[border_id]+'&indexPart=0.'+(openTab.countFile[border_id])+'" />';2486 content_body = content_body.replace(rex,newImg);2487 2488 RichTextEditor.newImageID = false;2489 newImage = true;2490 }2491 2492 if(body_images != null || newImage === true)2493 {2494 RichTextEditor.setData('body_'+border_id,content_body);2495 }2496 2497 if (message_id)2498 {2499 cExecute ("$this.imap_functions.delete_msgs&folder="+openTab.imapBox[border_id]+"&msgs_number="+message_id,handler_delete_msg);2500 if (openTab.imapBox[0] == "INBOX" + cyrus_delimiter + draftsfolder)2501 {2502 //Update mailbox2503 var tr_msg = document.getElementById(message_id);2504 change_tr_properties(tr_msg, data.msg_no, data.subject);2505 }2506 2507 }2508 setTimeout( function(){RichTextEditor.saveFlag = 1;RichTextEditor.execPosInstance('body_'+border_id);}, 1000 );2509 }2510 return null;2511 }2512 2336 2513 2337 function autoSave( ID ) … … 2517 2341 } 2518 2342 2519 function save_msg(border_id ,withImage, out){2343 function save_msg(border_id){ 2520 2344 2521 //seta o status do auto_save = true 2522 if (preferences.auto_save_draft == 1) 2523 autoSaveControl.status[border_id] = true; 2524 /////////////////////////////////////////// 2525 2526 if (typeof(withImage) == 'undefined') 2527 withImage = false; 2528 2529 var sendButton = Element("send_button_"+border_id); 2530 if (sendButton) 2531 sendButton.style.visibility="hidden"; 2532 2533 if (openTab.imapBox[border_id] && openTab.type[border_id] < 6) //Gets the imap folder 2534 var folder_id = openTab.imapBox[border_id]; 2535 else 2536 var folder_id = "INBOX" + cyrus_delimiter + draftsfolder; 2537 2538 if (folder_id == 'INBOX') // and folder name from border 2539 var folder_name = get_lang(folder_id); 2540 else 2541 var folder_name = folder_id.substr(6); 2542 2543 // hack to avoid form connector bug, escapes quotation. Please see #179 2544 tmp_border_id=border_id; 2545 tmp_folder_name=folder_name; 2546 tmp_folder_id=folder_id; 2547 message_id = openTab.imapUid[border_id]; 2548 var handler_save_msg = function(data){ 2549 if(typeof(out) == 'undefined'){ 2550 return_save(data,this.tmp_border_id,this.tmp_folder_name,this.tmp_folder_id,this.message_id); 2551 var save_link = Element("save_message_options_"+border_id); 2552 if(!withImage){ 2553 if(data.append === true){ 2554 $("#save_message_options_"+border_id).button(); 2555 $("#save_message_options_"+border_id).button({ disabled: true }); 2556 watch_changes_in_msg(border_id); 2557 write_msg(get_lang('Your message was save as draft in folder %1.', lang_folder(folder_name))); 2558 } 2559 if(auto){ 2560 auto = false; 2561 } 2562 } 2563 else{ 2564 write_msg(get_lang('Wait a moment, your image is uploading ...')); 2565 var auto = true; 2566 setTimeout( function(){save_msg(border_id)}, 1000 ); 2567 } 2568 }else{ 2569 if(data.append === true){ 2570 write_msg(get_lang('Your message was save as draft in folder %1.', lang_folder(folder_name))); 2571 }else if(data.append == null){ 2572 write_msg(get_lang('ERROR saving your message.')); 2573 }if(data.append === "Over quota"){ 2574 write_msg(get_lang('ERROR saving your message over quota.')); 2575 } 2576 } 2577 2578 } 2579 2580 var mail_as_plain = document.getElementById( 'textplain_rt_checkbox_' + border_id ); 2581 mail_as_plain = ( mail_as_plain ) ? mail_as_plain.checked : false; 2582 2583 var content_body = RichTextEditor.getData("body_"+border_id); 2584 //Remove imagens do corpo que estao com o checkbox desmarcados 2585 var files_checkbox = $("#divFiles_"+border_id+" input:checkbox"); 2586 var files_unchecked = new Array(); 2587 for (var i = 0; i < files_checkbox.length; i++) 2588 if(files_checkbox[i].checked !== true) 2589 files_unchecked.push(connector.unserialize(unescape(trim(files_checkbox[i].value)))); 2590 2591 var imagens = content_body.match(/<img[^>]*>/g); 2592 if(imagens != null) 2593 for (var x = 0; x < imagens.length; x++) 2594 for (var xx = 0; xx < files_unchecked.length; xx++) 2595 if(imagens[x].indexOf('indexPart='+files_unchecked[xx][3].replace(/'/g,'')) !== -1) 2596 content_body = content_body.replace(imagens[x],''); 2597 2598 if(files_unchecked.length > 0) 2599 RichTextEditor.setData("body_"+border_id,content_body); 2600 2601 2602 var textArea = document.createElement("TEXTAREA"); 2603 textArea.style.display='none'; 2604 textArea.name = "body"; 2605 textArea.value = content_body; 2606 var input_folder = document.createElement("INPUT"); 2607 input_folder.style.display='none'; 2608 input_folder.name = "folder"; 2609 input_folder.value = folder_id; 2610 var input_msgid = document.createElement("INPUT"); 2611 input_msgid.style.display='none'; 2612 input_msgid.name = "msg_id"; 2613 input_msgid.value = message_id; 2614 var input_insertImg = document.createElement("INPUT"); 2615 input_insertImg.style.display='none'; 2616 input_insertImg.name = "insertImg"; 2617 input_insertImg.value = withImage; 2618 2619 2620 if (is_ie) 2345 //seta o status do auto_save = true 2346 if (preferences.auto_save_draft == 1) 2347 autoSaveControl.status[border_id] = true; 2348 /////////////////////////////////////////// 2349 2350 var idJavascript = DataLayer.put('message',DataLayer.form("#form_message_"+border_id)); 2351 uidsSave[border_id] = []; 2352 DataLayer.commit(false,false,function(data){ 2353 if(data != null && data['message://'+idJavascript].id !== undefined ) 2621 2354 { 2622 var i = 0; 2623 while (document.forms(i).name != "form_message_"+border_id){i++} 2624 form = document.forms(i); 2625 } 2626 else 2627 { 2628 form = document.forms["form_message_"+border_id]; 2629 } 2630 2631 form.appendChild(textArea); 2632 form.appendChild(input_folder); 2633 form.appendChild(input_msgid); 2634 form.appendChild(input_insertImg); 2635 2636 var mail_type; 2637 2638 if (is_ie) 2639 { 2640 mail_type = document.createElement('<input type="hidden" />'); 2355 uidsSave[border_id].push(data['message://'+idJavascript].id); 2356 write_msg('Mensagem salva com sucesso!'); 2641 2357 } 2642 2358 else 2643 { 2644 mail_type = document.createElement('input'); 2645 mail_type.setAttribute('type', 'hidden'); 2646 } 2647 mail_type.setAttribute('name', 'type'); 2648 var mail_type_value = ( mail_as_plain ) ? 'plain' : 'html'; 2649 mail_type.setAttribute("value", mail_type_value); 2650 2651 form.parentNode.appendChild(mail_type); 2652 2653 cExecuteForm ("$this.imap_functions.save_msg", form, handler_save_msg,border_id); 2654 } 2655 2656 function return_saveas(data,border_id,folder_name) 2657 { 2658 if(!verify_session(data)) 2659 return; 2660 if (data.append) 2661 { 2662 delete_border(border_id,null); 2663 write_msg(get_lang('Your message was save as draft in folder %1.', folder_name)); 2664 } 2665 else 2666 write_msg(get_lang('ERROR saving your message.')); 2667 } 2668 2669 2670 function save_as_msg(border_id, folder_id, folder_name){ 2671 // hack to avoid form connector bug, escapes quotation. Please see #179 2672 tmp_border_id=border_id; 2673 tmp_folder_name=folder_name; 2674 var handler_save_msg = function(data){return_saveas(data,this.tmp_border_id,this.tmp_folder_name);} 2675 2676 var content_body = RichTextEditor.getData("body_"+border_id); 2677 //Remove imagens do corpo que estao com o checkbox desmarcados 2678 var files_checkbox = $("#divFiles_"+border_id+" input:checkbox"); 2679 var files_unchecked = new Array(); 2680 for (var i = 0; i < files_checkbox.length; i++) 2681 if(files_checkbox[i].checked !== true) 2682 files_unchecked.push(connector.unserialize(unescape(trim(files_checkbox[i].value)))); 2683 2684 var imagens = content_body.match(/<img[^>]*>/g); 2685 2686 if(imagens != null) 2687 for (var x = 0; x < imagens.length; x++) 2688 for (var xx = 0; xx < files_unchecked.length; xx++) 2689 if(imagens[x].indexOf('indexPart='+files_unchecked[xx][3].replace(/'/g,'')) !== -1) 2690 content_body = content_body.replace(imagens[x],''); 2691 2692 var textArea = document.createElement("TEXTAREA"); 2693 textArea.style.display='none'; 2694 textArea.name = "body"; 2695 textArea.value = content_body; 2696 2697 var input_folder = document.createElement("INPUT"); 2698 input_folder.style.display='none'; 2699 input_folder.name = "folder"; 2700 input_folder.value = folder_id; 2701 2702 if (is_ie){ 2703 var i = 0; 2704 while (document.forms(i).name != "form_message_"+border_id){i++} 2705 form = document.forms(i); 2706 } 2707 else 2708 form = document.forms["form_message_"+border_id]; 2709 form.appendChild(textArea); 2710 form.appendChild(input_folder); 2711 2712 cExecuteForm ("$this.imap_functions.save_msg", form, handler_save_msg,border_id); 2359 write_msg('Erro ao salvar sua menssagem!'); 2360 }); 2361 2713 2362 } 2714 2363 … … 3874 3523 } 3875 3524 3525 3526 DataLayer.codec( "message", "detail", { 3527 3528 decoder:function( form ){ 3529 var border_id = form.abaID; 3530 ///Dfininindo pasta a ser salva mensagem 3531 var folder_id = (openTab.imapBox[border_id] && openTab.type[border_id] < 6) ? openTab.imapBox[border_id]: "INBOX" + cyrus_delimiter + draftsfolder; 3532 form.folder = folder_id; 3533 form.body = RichTextEditor.getData("body_"+border_id); 3534 form.attachments = listAttachment(border_id); 3535 form.uidsSave = uidsSave[border_id].toString(); 3536 return( form ); 3537 3538 }, 3539 3540 encoder:function( pref ){ 3541 3542 return( pref ); 3543 } 3544 3545 }); 3546 3547 DataLayer.codec( "mailAttachment", "detail", { 3548 3549 decoder: function(evtObj){ 3550 3551 if( notArray = $.type(evtObj) !== "array" ) 3552 evtObj = [ evtObj ]; 3553 3554 var res = $.map(evtObj, function( form){ 3555 return [$.map(form.files , function( files){ 3556 return { source: files , disposition : form['attDisposition'+form.abaID]}; 3557 })]; 3558 }); 3559 return notArray ? res[0] : res; 3560 }, 3561 3562 encoder: function(){} 3563 3564 3565 });
Note: See TracChangeset
for help on using the changeset viewer.