Ignore:
Timestamp:
06/18/08 11:28:42 (16 years ago)
Author:
niltonneto
Message:

Versionamento 1.222
Ver changelog de alterações no Trac.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/js/main.js

    r271 r320  
    11// Tempo do auto refresh (em milisegundos) 
    22var time_refresh = 300000; 
    3 var autosave_time = 60000; 
     3// tempo do auto save (em milisegundos) 
     4// 20000 = 20 segundos 
     5var autosave_time = 20000; 
    46 
    57function init(){ 
     
    3537        cyrus_delimiter = Element('cyrus_delimiter').value; 
    3638         
    37         alternate_border(0); 
    3839        cExecute ("$this.db_functions.get_dropdown_contacts", save_contacts); 
    3940        cExecute ("$this.functions.get_preferences", save_preferences); 
    4041        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                                 else 
    74                                         setTimeout('auto_save_msg('+border_id+')',autosave_time); 
    75                         } 
    76                         else 
    77                                 setTimeout('auto_save_msg('+border_id+')',3000); 
    78         } 
    7942} 
    8043 
     
    158121                 
    159122                if ((msg_info.DispositionNotificationTo) && ((msg_info.Unseen == 'U') || (msg_info.Recent == 'N'))){ 
    160                         cExecute ("$this.imap_functions.send_notification&notificationto="+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&notificationto="+msg_info.DispositionNotificationTo+"&subject="+url_encode(msg_info.subject), handler_sendNotification); 
    161126                } 
    162127        } 
     
    285250        var main_list = Element("tbody_resultsearch_"+border_id.substr(18)).childNodes;  
    286251        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); 
    288253                if(check_box && check_box.checked) { 
    289254                        selected_messages += main_list[j].id + ','; 
     
    334299function move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name){ 
    335300 
    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         
    339304        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 
    346319 
    347320                Element('chk_box_select_all_messages').checked = false; 
    348321                mail_msg = Element("tbody_box"); 
     322                //mail_msg = document.getElementById("divScrollMain_"+numBox).firstChild.firstChild; 
    349323                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 
    351334                if ( preferences.use_shortcuts == '1') { 
    352335                        var all_messages = Element('tbody_box').childNodes; 
     
    363346                } 
    364347 
    365                 var msg_to_delete;               
    366348                for (var i=0; i<data.msgs_number.length; i++) 
    367349                { 
     
    370352                                mail_msg.removeChild(msg_to_delete); 
    371353                } 
     354                 
    372355 
    373356                if (data.msgs_number.length == 1) 
     
    375358                else 
    376359                        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){ 
    379361                        if (parseInt(preferences.delete_and_show_previous_message) && folder == get_current_folder()) 
    380362                                show_msg(data.previous_msg); 
     
    399381        else 
    400382                write_msg(get_lang('No selected message.'));             
     383                 
    401384} 
    402385 
    403386function get_selected_messages(){ 
    404387        main = Element("tbody_box"); 
    405          
     388//      main = document.getElementById("divScrollMain_"+numBox).firstChild.firstChild; 
     389 
    406390        // Get all TR (messages) in tBody. 
    407391        main_list = main.childNodes; 
    408          
     392 
    409393        var selected_messages = ''; 
    410394        var selected_messages_by_shortcuts = ''; 
     
    412396        for (j; j<(main_list.length); j++) 
    413397        { 
     398        if (main_list[j].id.indexOf(';') == -1) 
     399        { 
    414400                check_box = Element("check_box_message_"+main_list[j].id); 
    415401                if ( (check_box) && (check_box.checked) ) 
    416                 { 
    417402                        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        } 
    419410                 
    420411                if (preferences.use_shortcuts == '1') 
     
    450441 
    451442        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);           
    454443         
    455444        // Salva a pasta da mensagem respondida ou encaminhada: 
     
    466455        data = []; 
    467456        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(/&lt;/gi,"<"); 
    471                         data.to = data.to.replace(/&gt;/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(/&lt;/gi,"<"); 
     460                                data.to = data.to.replace(/&gt;/gi,">"); 
    472461                } 
    473462                else { 
    474                         data.to = document.getElementById("from_values_" + border_ID).value; 
    475                         data.to = data.to.replace(/&lt;/gi,"<"); 
    476                         data.to = data.to.replace(/&gt;/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(/&lt;/gi,"<"); 
     467                                data.to = data.to.replace(/&gt;/gi,">"); 
     468                        } 
    477469                }        
    478470                 
    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(/&lt;/gi,"<"); 
    482                 data.to_all = data.to_all.replace(/&gt;/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(/&lt;/gi,"<"); 
     475                        data.to_all = data.to_all.replace(/&gt;/gi,">"); 
     476                        var _array_to_all = data.to_all.split(","); 
     477                }        
    493478        } 
    494479         
     
    561546                        break; 
    562547                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 
    563558                        title = "Re: " + data.subject; 
    564559                        Element("subject_" + new_border_ID).value = "Re: " + data.subject; 
     
    590585                        break; 
    591586                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(","); 
    592596                        title = "Re: " + data.subject; 
    593597                        Element("to_" + new_border_ID).value = data.to; 
     
    680684                        break; 
    681685                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; 
    683688                        newMessageTab.imapUid[new_border_ID] = parseInt(border_ID.substr(0,border_ID.indexOf("_"))); 
    684689                        document.getElementById('font_border_id_'+new_border_ID).innerHTML = data.subject; 
     
    728733                default: 
    729734        } 
    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 
    731751        //BEGIN Tab event 
    732752        if (preferences.use_shortcuts == '1') 
     
    792812                        write_msg(get_lang('Your message was sent.'));           
    793813                } 
     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 }); 
    794816        } 
    795817        else{                    
     
    801823                        write_msg(data); 
    802824        } 
    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 }); 
    805825} 
    806826 
     
    856876{ 
    857877        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) 
    863880        { 
     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; 
    864902                newMessageTab.imapUid[border_id] = data.msg_no; 
    865903                newMessageTab.imapBox[border_id] = data.folder_id; 
     
    876914                var content_body =  mainField.document.getElementsByTagName('body').item(0).innerHTML; 
    877915                var body_images = content_body.match(/msg_num=\d*/g); 
     916                var images_part = content_body.match(/msg_part=\d*/g); 
    878917                if (body_images) 
    879918                { 
     
    881920                                content_body =  content_body.replace(body_images[i],"msg_num="+newMessageTab.imapUid[border_id]); 
    882921                        } 
     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                         
    883946                        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;   
    886947                }        
    887948                                 
     
    927988                        cExecute ("$this.imap_functions.delete_msgs&folder="+newMessageTab.imapBox[border_id]+"&msgs_number="+message_id,handler_delete_msg); 
    928989                 
    929                 if (preferences.auto_save_draft == 1) 
    930                                 setTimeout('auto_save_msg('+border_id+')', autosave_time);               
    931  
    932990                var save_link = Element("save_message_options"); 
    933991                save_link.onclick = ''; 
     
    940998 
    941999function save_msg(border_id){ 
     1000 
    9421001        if (newMessageTab.imapBox[border_id]) //Gets the imap folder 
    9431002                var folder_id = newMessageTab.imapBox[border_id]; 
     
    9561015        message_id = newMessageTab.imapUid[border_id]; 
    9571016        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 
    9591018        var textArea = document.createElement("TEXTAREA"); 
    9601019        textArea.style.display='none'; 
    9611020        textArea.name = "body"; 
    9621021        body = document.getElementById("body_"+border_id); 
     1022        if (! body) 
     1023                return; 
    9631024        textArea.value += '<body>\r\n'; 
    9641025        textArea.value += body.contentWindow.document.body.innerHTML; 
     
    9681029        input_folder.name = "folder"; 
    9691030        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; 
    9701035         
    9711036        if (is_ie){ 
     
    9781043        form.appendChild(textArea); 
    9791044        form.appendChild(input_folder); 
     1045        form.appendChild(input_msgid); 
    9801046 
    9811047        cExecuteForm ("$this.imap_functions.save_msg", form, handler_save_msg,border_id);        
     
    10911157function print_all(){ 
    10921158        var folder= Element('border_id_0').innerHTML; 
    1093         var body = Element('divScrollMain').innerHTML; 
     1159        var body = Element('divScrollMain_'+numBox).innerHTML; 
    10941160        var print_width = screen.width - 200; 
    10951161        var x = ((screen.width - print_width) / 2); 
     
    12431309} 
    12441310 
    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  
    13011311function verify_session(data){ 
    13021312        if(data && data.imap_error) { 
Note: See TracChangeset for help on using the changeset viewer.