Ignore:
Timestamp:
06/15/12 17:00:17 (12 years ago)
Author:
gustavo
Message:

Ticket #2766 - Merge do branch das novas funcionalidaes para o trunk

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/expressoMail1_2/js/main.js

    r6494 r6528  
    99var checkAlarmsFilter = false; 
    1010 
     11var dynamicPersonalContacts = new Array(); 
     12var dynamicPersonalGroups = new Array(); 
     13var dynamicContacts = new Array(); 
     14var dynamicContactList = new Array(); 
     15var topContact = 0; 
     16 
    1117//Os IE's < 9 não possui suporte a trim() introduzida no JavaScript 1.8.1 
    1218if(!String.prototype.trim){   
    1319        String.prototype.trim = function(){ 
    14                                                                 return this.replace(/^\s+|\s+$/g,''); 
    15                                                         }  
     20                return this.replace(/^\s+|\s+$/g,''); 
     21        }  
    1622} 
    1723         
     
    2127        return folders.join(cyrus_delimiter); 
    2228}  
     29 
     30function updateDynamicContactList(){ 
     31        dynamicContactList = new Array(); 
     32        $.merge(dynamicContactList, dynamicContacts); 
     33        $.merge(dynamicContactList, dynamicPersonalGroups); 
     34        $.merge(dynamicContactList, dynamicPersonalContacts); 
     35} 
     36 
     37function updateDynamicContact(){ 
     38        dynamicContacts = new Array(); 
     39        var dynamicData = REST.get("/dynamiccontacts").collection.itens; 
     40        if(dynamicData){ 
     41                $.each(dynamicData, function(index, value){ 
     42                        if(index ==0){ 
     43                                topContact = parseInt(value.data[2].value); 
     44                        } 
     45                        var dynamic = { 
     46                                name : value.data[0].value, 
     47                                email : value.data[1].value, 
     48                                value: value.data[0].value + " - " + value.data[1].value, 
     49                                type: "", 
     50                                id: parseInt(value.data[3].value), 
     51                                qtd : parseInt(value.data[2].value) 
     52                        }; 
     53                        dynamicContacts.push(dynamic); 
     54                }); 
     55        } 
     56} 
     57 
     58function updateDynamicPersonalGroups(){ 
     59        dynamicPersonalGroups = new Array(); 
     60        var groupsData = REST.get("/groups").collection.itens; 
     61        if(groupsData){ 
     62                $.each(groupsData, function(index, value){ 
     63                        var group = { 
     64                                id : parseInt(value.data[0].value), 
     65                                name : value.data[2].value, 
     66                                email : value.data[2].value, 
     67                                value: value.data[2].value + " - " + value.data[2].value, 
     68                                type: "G" 
     69                        }; 
     70                        dynamicPersonalGroups.push(group); 
     71                }); 
     72        } 
     73} 
     74 
     75function updateDynamicPersonalContacts(){ 
     76        dynamicPersonalContacts = new Array(); 
     77        var contactsData = REST.get("/contacts").collection.itens; 
     78        if(contactsData){ 
     79                $.each(contactsData, function(index, value){ 
     80                        var contact = { 
     81                                id : parseInt(value.data[0].value), 
     82                                name : value.data[1].value, 
     83                                email : value.data[2].value, 
     84                                value: value.data[1].value + " - " + value.data[2].value, 
     85                                type: "P" 
     86                        }; 
     87                        dynamicPersonalContacts.push(contact); 
     88                }); 
     89        } 
     90} 
     91 
    2392function init(){ 
    2493        if (!is_ie) 
    2594                Element('tableDivAppbox').width = '100%'; 
    2695 
    27         var save_contacts = function(data){ 
     96        /*var save_contacts = function(data){ 
    2897                contacts = data; 
    2998                if (preferences.use_local_messages == 1 && window.google && google.gears) 
     
    31100                                expresso_local_messages.capt_url('controller.php?action=$this.db_functions.get_dropdown_contacts_to_cache'); 
    32101 
     102        }*/ 
     103        if(parseInt(preferences.use_dynamic_contacts)){ 
     104                var load_dynamics = function(){ 
     105                        updateDynamicContact(); 
     106                        updateDynamicPersonalGroups(); 
     107                        updateDynamicPersonalContacts(); 
     108                        updateDynamicContactList(); 
     109                }; 
     110                load_dynamics(); 
    33111        } 
    34112        var save_preferences = function(data){ 
     
    71149                //Substituido por padrão Jquery 
    72150                cExecute ("$this.imap_functions.get_range_msgs2&folder=INBOX&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type=SORTARRIVAL&search_box_type=ALL&sort_box_reverse=1", handler_draw_box); 
    73                 cExecute ("$this.db_functions.get_dropdown_contacts", save_contacts); //Save contacts needs preferences. 
     151                //cExecute ("$this.db_functions.get_dropdown_contacts", save_contacts); //Save contacts needs preferences. 
    74152                if(preferences.hide_folders == "1") 
    75153                        Element('divAppboxHeader').innerHTML =  title_app_menu; 
     
    193271        cyrus_delimiter = Element('cyrus_delimiter').value; 
    194272 
    195         cExecute ("$this.db_functions.get_dropdown_contacts_to_cache", function(data) {contacts = data;}); 
     273        //cExecute ("$this.db_functions.get_dropdown_contacts_to_cache", function(data) {contacts = data;}); 
    196274        //cExecute ("$this.functions.get_preferences", save_preferences); 
    197275        } 
     
    17601838                case "reply_without_history": 
    17611839                        RichTextEditor.replyController = true; //Seta o editor como modo reply 
    1762                         content.find('[name="input_to"]').val(data.to); 
     1840                        content.find('[name="input_to"]').val(data.to);                  
     1841                         
     1842                        draw_reply_boxes_by_field("to", data.to, content); 
     1843                         
    17631844                        title = "Re: " + html_entities(data.subject); 
    17641845                        content.find(".subject").val("Re: " + data.subject);                     
     
    17771858                        content.find(".subject").val("Re: " + data.subject); 
    17781859                        content.find('[name="input_to"]').val(data.to); 
     1860                         
     1861                        draw_reply_boxes_by_field("to", data.to, content); 
     1862                         
    17791863                        content.find('[name="msg_reply_from"]').val($("#msg_number_" + border_ID).val());        
    17801864 
     
    18071891                        else 
    18081892                                content.find('[name="input_to"]').val(data.to + ',' + data.to_all); 
    1809                                  
     1893                         
     1894                        draw_reply_boxes_by_field("to", data.to_all, content); 
     1895                         
    18101896                        if (data.cc){ 
    18111897                                data.cc = new Array(); 
     
    18181904                                if(data.cc != ""){ 
    18191905                                        content.find('[name="input_cc"]').val(data.cc); 
    1820                                         input_binds(content.find('[name="input_cc"]'), new_border_ID); 
     1906                                        input_binds(content.find('[name="input_cc"]').parent(), new_border_ID); 
    18211907                                        content.find(".cc-tr").show();//cc-button 
    18221908                                        //document.getElementById("a_cc_link" + new_border_ID).value = data.cc; 
    18231909                                        content.find(".cc-button").toggleClass("expressomail-button-icon-ative"); 
    18241910                                        content.find(".cc-button").find("span").html("Remover CC"); 
    1825                                         content.find('[name="input_cc"]').elastic().unbind('blur'); 
    1826                                         content.find('[name="input_cc"]').trigger("update"); 
     1911                                        draw_reply_boxes_by_field("cc", data.cc, content); 
    18271912                                } 
    18281913                        } 
     
    18461931                        else 
    18471932                                data.to_all = ""; 
     1933 
     1934                        draw_reply_boxes_by_field("to", data.to_all, content); 
     1935                         
    18481936                        title = "Re: " + html_entities(data.subject); 
    18491937                         
     
    18621950                                if(data.cc != ""){ 
    18631951                                        content.find('[name="input_cc"]').val(data.cc); 
    1864                                         input_binds(content.find('[name="input_cc"]'), new_border_ID); 
     1952                                        input_binds(content.find('[name="input_cc"]').parent(), new_border_ID); 
    18651953                                        content.find(".cc-tr").show(); 
    18661954                                        content.find(".cc-button").toggleClass("expressomail-button-icon-ative"); 
    18671955                                        content.find(".cc-button").find("span").html("Remover CC"); 
    1868                                         content.find('[name="input_cc"]').elastic().unbind('blur'); 
    1869                                         content.find('[name="input_cc"]').trigger("update"); 
     1956                                         
     1957                                        draw_reply_boxes_by_field("cc", data.cc, content); 
    18701958                                } 
    18711959                        } 
     
    19222010                                } 
    19232011                                content.find('[name="input_to"]').val(_to +','); 
     2012                                draw_email_box(_to, content.find(".to").filter("input")); 
    19242013                                Element('msg_number').value = ''; 
    19252014                        } 
     
    19472036                        } 
    19482037 
     2038                        draw_reply_boxes_by_field("to", data.to, content); 
     2039                         
    19492040                        content.find('[name="input_to"]').val(data.to); 
    19502041                        if (data.cc){ 
     
    19522043                                data.cc = data.cc.replace(/&gt;/gi,">"); 
    19532044                                content.find('[name="input_cc"]').val(data.cc); 
    1954                                 input_binds(content.find('[name="input_cc"]'), new_border_ID); 
     2045                                input_binds(content.find('[name="input_cc"]').parent(), new_border_ID); 
    19552046                                content.find(".cc-tr").show(); 
    19562047                                content.find(".cc-button").toggleClass("expressomail-button-icon-ative"); 
    19572048                                content.find(".cc-button").find("span").html(get_lang('Remove CC')); 
    1958                                 content.find('[name="input_cc"]').elastic().unbind('blur'); 
    1959                                 content.find('[name="input_cc"]').trigger("update"); 
     2049                                draw_reply_boxes_by_field("cc", data.cc, content); 
    19602050                        } 
    19612051                        if (data.cco){ 
     
    19652055                                        content.find(".cco-button").toggleClass("expressomail-button-icon-ative"); 
    19662056                                        content.find(".cco-button").find("span").html(get_lang('Remove CCo')); 
    1967                                         content.find('[name="input_cco"]').elastic().unbind('blur'); 
    1968                                         content.find('[name="input_cco"]').trigger("update"); 
     2057                                        input_binds(content.find('[name="input_cco"]').parent(), new_border_ID); 
     2058                                        draw_reply_boxes_by_field("cco", data.cco, content); 
    19692059                                } 
    19702060                        } 
     
    20062096        resizeWindow(); 
    20072097        return new_border_ID; //Preciso retornar o ID da nova mensagem. 
     2098} 
     2099 
     2100//DESENHA OS RETANGULOS PARA OS E-MAIL NA OPÇÃO REPLY 
     2101function draw_reply_boxes_by_field(field, value, context){ 
     2102        array = value.split(","); 
     2103        $.each(array, function(index, value){ 
     2104                draw_email_box(value, context.find("."+field).filter("input")); 
     2105        }); 
    20082106} 
    20092107 
     
    22412339        watch_changes_in_msg(ID); 
    22422340 
     2341        var content = $("#content_id_"+ID); 
    22432342        var sign = false; 
    22442343        var crypt = false; 
     2344        var reComplexEmail = /<([^<]*)>[\s]*$/; 
    22452345        if ((preferences.use_assinar_criptografar != '0') && (preferences.use_signature_digital_cripto != '0')){ 
    22462346                var checkSign = document.getElementById('return_digital_'+ID) 
     
    22822382        if(data && data.success == true ){ 
    22832383                // if send ok, set a flag as answered or forwarded 
    2284                 var msg_number_replied = $("#content_id_" + ID).find('[name="msg_reply_from"]'); 
    2285                 var msg_number_forwarded = $("#content_id_" + ID).find('[name="msg_forward_from"]'); 
     2384                var msg_number_replied = content.find('[name="msg_reply_from"]'); 
     2385                var msg_number_forwarded = content.find('[name="msg_forward_from"]'); 
    22862386 
    22872387                if (msg_number_replied.val()){ 
     
    23042404                        } 
    23052405                } 
     2406                 
     2407                $ 
     2408                //REFAZER ISTO COM UMA CHAMADA ASSINCRONA PARA REGISTRAR E ATUALIZAR A LISTA DOS NOVOS CONTATOS DINAMICOS 
    23062409                // If new dynamic contacts were added, update the autocomplete .... 
    2307                 if(data.new_contacts){ 
     2410                /*if(data.new_contacts){ 
    23082411                        var ar_contacts = data.new_contacts.split(',;'); 
    23092412                        for(var j in ar_contacts){ 
     
    23132416                        } 
    23142417                } 
     2418                var dynamicPersonalContacts = new Array(); 
     2419                var dynamicPersonalGroups = new Array(); 
     2420                var dynamicContacts = new Array(); 
     2421                var dynamicContactList = new Array(); 
     2422 
     2423                */ 
     2424                var array = content.find(".to-tr").find(".box").clone(); 
    23152425                delete_border(ID,'true');  
     2426                if(parseInt(preferences.use_dynamic_contacts)){ 
     2427                        $.each(array, function(i, value){ 
     2428                                var stop = false; 
     2429                                $.each(dynamicPersonalContacts, function(x, valuex){ 
     2430                                        if(valuex.email == $(value).find("input").val().match(reComplexEmail)[1]){ 
     2431                                                stop = true; 
     2432                                                return false; 
     2433                                        } 
     2434                                }); 
     2435                                if(!stop){ 
     2436                                        var exist = 0; 
     2437                                        $.each(dynamicContacts, function(x, valuex){ 
     2438                                                if(valuex.email == $(value).find("input").val().match(reComplexEmail)[1]){ 
     2439                                                        exist = valuex.id; 
     2440                                                        return false; 
     2441                                                } 
     2442                                        }); 
     2443                                        if(exist){ 
     2444                                                REST.put("/dynamiccontact/"+exist, {name: $(value).find("input").val().split('"')[1], mail:$(value).find("input").val().match(reComplexEmail)[1]}); 
     2445                                        }else{ 
     2446                                                REST.post("/dynamiccontacts", {name: $(value).find("input").val().split('"')[1], mail:$(value).find("input").val().match(reComplexEmail)[1]}); 
     2447                                        } 
     2448                                } 
     2449                        }); 
     2450                        updateDynamicContact(); 
     2451                        updateDynamicContactList(); 
     2452                } 
    23162453        } 
    23172454        else{ 
    23182455                if(data == 'Post-Content-Length') 
    23192456                        write_msg(get_lang('The size of this message has exceeded  the limit (%1B).',Element('upload_max_filesize').value)); 
    2320                 else if(data) 
     2457                else if(data){ 
     2458                        var error_mail = $.trim(data.split(":")[data.split(":").length-1]); 
     2459                        var array = content.find(".to-tr").find(".box"); 
     2460                        //$(value).find("input").val() 
     2461                        $.each(array, function(index, value){ 
     2462                                if(error_mail == $(value).find("input").val().match(reComplexEmail)[1]) 
     2463                                        $(value).addClass("invalid-email-box"); 
     2464                        }); 
     2465                        if ( content.find('[name="input_cco"]').length){ 
     2466                                if(content.find(".cco-tr").css("display") != "none"){ 
     2467                                        var array = content.find(".cco-tr").find(".box"); 
     2468                                        $.each(array, function(index, value){ 
     2469                                                if(error_mail == $(value).find("input").val().match(reComplexEmail)[1]) 
     2470                                                        $(value).addClass("invalid-email-box"); 
     2471                                        }); 
     2472                                } 
     2473                        } 
     2474                        if(content.find(".cc-tr").css("display") != "none") 
     2475                        { 
     2476                                var array = content.find(".cc-tr").find(".box"); 
     2477                                $.each(array, function(index, value){ 
     2478                                        if(error_mail == $(value).find("input").val().match(reComplexEmail)[1]) 
     2479                                                $(value).addClass("invalid-email-box"); 
     2480                                });                              
     2481                        }  
    23212482                        write_msg(data); 
    2322                 else 
     2483                }else 
    23232484                        write_msg(get_lang("Connection failed with %1 Server. Try later.", "Web")); 
    23242485                 
     
    25252686                return; 
    25262687        } 
    2527         stringEmail = content.find('[name="input_to"]').val(); 
    2528          
    2529         if ( content.find('[name="input_cco"]').length) 
    2530                 if(content.find(".cco-tr").css("display") != "none") 
    2531                         stringEmail += content.find('[name="input_cco"]').val() =='' ? "":", "+content.find('[name="input_cco"]').val(); 
     2688        //stringEmail = content.find('[name="input_to"]').val(); 
     2689        var stringEmail = ""; 
     2690        var array = content.find(".to-tr").find(".box"); 
     2691        $.each(array, function(index, value){ 
     2692                stringEmail += $(value).find("input").val() + ","; 
     2693        }); 
     2694        content.find('[name="input_to"]').val(stringEmail); 
     2695        if ( content.find('[name="input_cco"]').length){ 
     2696                if(content.find(".cco-tr").css("display") != "none"){ 
     2697                        var array = content.find(".cco-tr").find(".box"); 
     2698                        $.each(array, function(index, value){ 
     2699                                stringEmail += $(value).find("input").val() + ","; 
     2700                        }); 
     2701                        content.find('[name="input_cco"]').val(stringEmail); 
     2702                } 
     2703        } 
    25322704                         
    25332705        if(content.find(".cc-tr").css("display") != "none") 
    2534                 stringEmail += content.find('[name="input_cc"]').val() =='' ? "":", "+content.find('[name="input_cc"]').val(); 
     2706        { 
     2707                var array = content.find(".cc-tr").find(".box"); 
     2708                $.each(array, function(index, value){ 
     2709                        stringEmail += $(value).find("input").val() + ","; 
     2710                }); 
     2711                content.find('[name="input_cc"]').val(stringEmail); 
     2712        } 
    25352713                 
    25362714        if (expresso_offline) { 
     
    26322810       autoSaveControl.status[border_id] = true; 
    26332811   /////////////////////////////////////////// 
    2634   
     2812    var content = $("#content_id_"+border_id); 
     2813         
     2814        var stringEmail = ""; 
     2815        var array = content.find(".to-tr").find(".box"); 
     2816        $.each(array, function(index, value){ 
     2817                stringEmail += $(value).find("input").val() + ","; 
     2818        }); 
     2819        content.find('[name="input_to"]').val(stringEmail); 
     2820        stringEmail = ""; 
     2821        if ( content.find('[name="input_cco"]').length){ 
     2822                if(content.find(".cco-tr").css("display") != "none"){ 
     2823                        var array = content.find(".cco-tr").find(".box"); 
     2824                        $.each(array, function(index, value){ 
     2825                                stringEmail += $(value).find("input").val() + ","; 
     2826                        }); 
     2827                        content.find('[name="input_cco"]').val(stringEmail); 
     2828                } 
     2829        } 
     2830         
     2831        stringEmail = "";        
     2832        if(content.find(".cc-tr").css("display") != "none") 
     2833        { 
     2834                var array = content.find(".cc-tr").find(".box"); 
     2835                $.each(array, function(index, value){ 
     2836                        stringEmail += $(value).find("input").val() + ","; 
     2837                }); 
     2838                content.find('[name="input_cc"]').val(stringEmail); 
     2839        } 
     2840         
    26352841   var idJavascript = saveBorderError[border_id]; 
    26362842    
Note: See TracChangeset for help on using the changeset viewer.