Ignore:
Timestamp:
07/11/12 11:45:10 (12 years ago)
Author:
niltonneto
Message:

Ticket #0000 - Copiadas as alterações do Trunk. Versão final da 2.4.1.

Location:
branches/2.4
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2.4

  • branches/2.4/expressoMail1_2/js/QuickCatalogSearch.js

    r6631 r6754  
    1414                }); 
    1515        });         
    16  
     16         
    1717        /* showlist */   
    1818        emQuickCatalogSearch.prototype.showList = function(data, begin, end, ID, field) 
     
    125125                switch(data_['type_catalog']) { 
    126126                        case 'G': 
    127                                   if(data_['extra_ldap_fields'] != undefined){  
    128                                           if(data_['extra_ldap_fields'].length != 0)  
    129                                                   var extra_fields = (data_['extra_ldap_fields']).split("#");   
     127                                if(data_['extra_ldap_fields'] != undefined){ 
     128                                        if(data_['extra_ldap_fields'].length != 0) 
     129                                                var extra_fields = (data_['extra_ldap_fields']).split("#");    
    130130                                        else 
    131131                                                var extra_fields = [];   
     
    149149                                        } 
    150150                                } 
     151                                if (data_[id_contact].vacationactive == "TRUE"){ 
     152                                        details.append('<p><img src="templates/default/images/mala-big.png"/><span class="title-outoffice">Filtro "Fora do Escritório" ativo.</span></p>');      
     153                                        if ( data_[id_contact].vacationinfo ){ 
     154                                                details.append('<div class="outoffice"><div class="outoffice-inner"><span>'+ data_[id_contact].vacationinfo +'</span></div></div>'); 
     155                                                if ( $('.outoffice-inner').height() > $('.outoffice').height() ){                                                
     156                                                        var link = $('<a>').html('Ver mais'); 
     157                                                        link.attr('id','more'); 
     158                                                        link.bind('click',function(){$('.outoffice').animate({height: $('.outoffice-inner').height(),width: '-=15px'},800); $('#more').unbind('click').hide();}); 
     159                                                        details.append(link); 
     160                                                } 
     161                                        } 
     162                                } 
    151163                                break; 
    152164                        case 'P': 
     
    157169                if(data_[id_contact].telephonenumber != null) 
    158170                    details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data_[id_contact].telephonenumber + '</span></p>'); 
     171                                if (data_[id_contact].vacationactive == "TRUE"){ 
     172                                        details.append('<p><img src="templates/default/images/mala-big.png"/><span class="title-outoffice">Filtro "Fora do Escritório" ativo.</span></p>');      
     173                                        if (data_[id_contact].vacationinfo){ 
     174                                                details.append('<div class="outoffice"><div class="outoffice-inner"><span>'+ data_[id_contact].vacationinfo +'</span></div></div>'); 
     175                                                if ( $('.outoffice-inner').height() > $('.outoffice').height() ){ 
     176                                                        var link = $('<a>').html('Ver mais'); 
     177                                                        link.attr('id','more'); 
     178                                                        link.bind('click',function(){$('.outoffice').animate({height: $('.outoffice-inner').height(),width: '-=15px'},800); $('#more').unbind('click').hide();}); 
     179                                                        details.append(link); 
     180                                                } 
     181                                        } 
     182                                }        
    159183                                break; 
    160184                        default: 
    161                                 if(data_['extra_ldap_fields'] != undefined){  
    162                                         if(data_['extra_ldap_fields'].length != 0)  
    163                                                 var extra_fields = (data_['extra_ldap_fields']).split("#");     
     185                                if(data_['extra_ldap_fields'] != undefined){ 
     186                                        if(data_['extra_ldap_fields'].length != 0) 
     187                                                var extra_fields = (data_['extra_ldap_fields']).split("#");    
    164188                                        else 
    165189                                                var extra_fields = [];    
     
    190214                                        } 
    191215                                } 
     216                                if (data_[id_contact].vacationactive == "TRUE"){ 
     217                                        details.append('<p><img src="templates/default/images/mala-big.png"/><span class="title-outoffice">Filtro "Fora do Escritório" ativo.</span></p>');      
     218                                        if (data_[id_contact].vacationinfo){ 
     219                                                details.append('<div class="outoffice"><div class="outoffice-inner"><span>'+ data_[id_contact].vacationinfo +'</span></div></div>'); 
     220                                                if ( $('.outoffice-inner').height() > $('.outoffice').height() ){ 
     221                                                        var link = $('<a>').html('Ver mais'); 
     222                                                        link.attr('id','more'); 
     223                                                        link.bind('click',function(){$('.outoffice').animate({height: $('.outoffice-inner').height(),width: '-=15px'},800); $('#more').unbind('click').hide();}); 
     224                                                        details.append(link); 
     225                                                } 
     226                                        }        
     227                                }                                
    192228                        break; 
    193229                }                                
     
    255291                        var signal = "+"; 
    256292                        var btnClass = "add"; 
    257                         var emailList = content.find(field_).val(); 
    258                         var emails_adicionados = emailList.split(","); 
     293                        emails_adicionados = ""; 
     294                        var emailList = content.find(field_).filter("input").parent().find("div input"); 
     295                        //      var array = content.find(".to-tr").find(".box"); 
     296                        $.each(emailList, function(index, value){ 
     297                                emails_adicionados += $(value).val() + ","; 
     298                        }); 
     299                        emails_adicionados = emails_adicionados.split(","); 
    259300                        for(aux=0; aux<emails_adicionados.length -1; aux++) { 
    260301                                if(emails_adicionados[aux].match(/<([^<]*)>[\s]*$/)){ 
     
    279320                        else if(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()) != -1 && data.search_for.indexOf(" ") == -1 && data.search_for.indexOf("@") == -1)                                                                     
    280321                                contact_name = contact_name.substring(0, contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) + "<u>" + contact_name.substr(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()), data.search_for.length) + "</u>" + contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()) + data.search_for.length); 
    281                         var line = '<span class="menu-control"><button class="'+btnClass+'" id="actions_'+i+'" onClick="'+exist+'(document.getElementById(\'contact_' + i + '\').innerHTML, this, \'contact_' + i + '\')">'+ signal +'</button></span><div id="contact_' + i + '" onDblClick="'+exist+'(this.innerHTML, document.getElementById(\'actions_'+i+'\'), \'contact_' + i + '\')"><div class="name_contact"><strong class="name">' + contact_name + '</strong><em class="email">' + ((utf8_decoder(data[i-1].mail) != undefined)? (utf8_decoder(data[i-1].mail) == 'undefined' ? get_lang("No mail") : utf8_decoder(data[i-1].mail)) : get_lang("No mail")) + '</em></div></div>'; 
     322                        var vacationImg = ''; 
     323                        if (data[i-1].vacationactive == "TRUE") 
     324                                vacationImg = '<img src="templates/default/images/mala-small.png"/>';    
     325                        var line = '<span class="menu-control"><button class="'+btnClass+'" id="actions_'+i+'" onClick="'+exist+'(document.getElementById(\'contact_' + i + '\').innerHTML, this, \'contact_' + i + '\')">'+ signal +'</button></span><div id="contact_' + i + '" onDblClick="'+exist+'(this.innerHTML, document.getElementById(\'actions_'+i+'\'), \'contact_' + i + '\')"><div class="name_contact"><strong class="name">' + contact_name +' '+ vacationImg +'</strong><em class="email">' + ((utf8_decoder(data[i-1].mail) != undefined)? (utf8_decoder(data[i-1].mail) == 'undefined' ? get_lang("No mail") : utf8_decoder(data[i-1].mail)) : get_lang("No mail")) + '</em></div></div>'; 
    282326                        Op.innerHTML = line; 
    283327            $(Op).val(i - 1); 
     
    317361                                                } 
    318362                                        } 
    319                                 }                        
     363                                } 
     364                                if (data[first_contact].vacationactive == "TRUE"){ 
     365                                        details.append('<p><img src="templates/default/images/mala-big.png"/><span class="title-outoffice">Filtro "Fora do Escritório" ativo.</span></p>');      
     366                                        if ( data[first_contact].vacationinfo ){ 
     367                                                details.append('<div class="outoffice"><div class="outoffice-inner"><span>'+ data[first_contact].vacationinfo +'</span></div></div>'); 
     368                                                if ( $('.outoffice-inner').height() > $('.outoffice').height() ){                                                
     369                                                        var link = $('<a>').html('Ver mais'); 
     370                                                        link.attr('id','more'); 
     371                                                        link.bind('click',function(){$('.outoffice').animate({height: $('.outoffice-inner').height(),width: '-=15px'},800); $('#more').unbind('click').hide();}); 
     372                                                        details.append(link); 
     373                                                }        
     374                                        }        
     375                                }                                                        
    320376                                break; 
    321377                        case 'P': 
     
    326382                if(data[first_contact].telephonenumber != null) 
    327383                                        details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data[first_contact].telephonenumber  + '</span></p>'); 
     384                                if (data[first_contact].vacationactive == "TRUE"){ 
     385                                        details.append('<p><img src="templates/default/images/mala-big.png"/><span class="title-outoffice">Filtro "Fora do Escritório" ativo.</span></p>');      
     386                                        if ( data[first_contact].vacationinfo ){ 
     387                                                details.append('<div class="outoffice"><div class="outoffice-inner"><span>'+ data[first_contact].vacationinfo +'</span></div></div>'); 
     388                                                if ( $('.outoffice-inner').height() > $('.outoffice').height() ){ 
     389                                                        var link = $('<a>').html('Ver mais'); 
     390                                                        link.attr('id','more'); 
     391                                                        link.bind('click',function(){$('.outoffice').animate({height: $('.outoffice-inner').height(),width: '-=15px'},800); $('#more').unbind('click').hide();}); 
     392                                                        details.append(link); 
     393                                                }        
     394                                        } 
     395                                }                                
    328396                                break; 
    329397                        default:         
     
    358426                                        } 
    359427                                } 
     428                                if (data[first_contact].vacationactive == "TRUE"){ 
     429                                        details.append('<p><img src="templates/default/images/mala-big.png"/><span class="title-outoffice">Filtro "Fora do Escritório" ativo.</span></p>');      
     430                                        if ( data[first_contact].vacationinfo ){ 
     431                                                details.append('<div class="outoffice"><div class="outoffice-inner"><span>'+ data[first_contact].vacationinfo +'</span></div></div>'); 
     432                                                if ( $('.outoffice-inner').height() > $('.outoffice').height() ){                                                
     433                                                        var link = $('<a>').html('Ver mais'); 
     434                                                        link.attr('id','more'); 
     435                                                        link.bind('click',function(){$('.outoffice').animate({height: $('.outoffice-inner').height(),width: '-=15px'},800); $('#more').unbind('click').hide();}); 
     436                                                        details.append(link); 
     437                                                }        
     438                                        } 
     439                                }                                
    360440                                break; 
    361441                } 
    362                 var string_results = sliderValue + " " + get_lang("of") + " " + paginas + " (" + data.length + " " + get_lang("Results") + ")";  
    363                 $( "#amount-text" ).val( string_results ).attr('readonly', true); 
     442                var string_results = sliderValue + " " + get_lang("of") + " " + paginas + " (" + data.length + " " + get_lang("Results") + ")"; 
     443                $( "#amount-text" ).val( string_results ).attr('readonly', true); 
    364444                $("button").button(); 
    365445                //$("button.remove").button({icons:{primary:"ui-icon-close"}, text: false}); 
     
    389469                                                                        }else 
    390470                                                                                var extra_fields = [];    
    391                                                                         if(preferences.default_fields_quick_search != 0 && data[this.value] ) { 
    392                                                                                         details.append('<p><label class="attribute">' + utf8_decoder(data[this.value].cn[0]) + "</label>" + '<span class="value">' + (data[this.value].mail ? data[this.value].mail[0] : "")+ "</span></p>"); 
    393                                                                                 if(data[this.value].telephonenumber ) 
     471                                                                        if(preferences.default_fields_quick_search != 0 && data[this.value] ) {  
     472                                            details.append('<p><label class="attribute">' + utf8_decoder(data[this.value].cn[0]) + "</label>" + '<span class="value">' + (data[this.value].mail ? data[this.value].mail[0] : "")+ "</span></p>"); 
     473                                                                                if(data[this.value].telephonenumber ) 
    394474                                                                                        details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + (data[this.value].telephonenumber ? data[this.value].telephonenumber[0] : "")+ "</span></p>"); 
    395475                                                                        } 
     
    405485                                                                                } 
    406486                                                                        } 
     487                                                                        if (data[this.value].vacationactive == "TRUE"){ 
     488                                                                                details.append('<p><img src="templates/default/images/mala-big.png"/><span class="title-outoffice">Filtro "Fora do Escritório" ativo.</span></p>');      
     489                                                                                if ( data[this.value].vacationinfo ){ 
     490                                                                                        details.append('<div class="outoffice"><div class="outoffice-inner"><span>'+ data[this.value].vacationinfo +'</span></div></div>'); 
     491                                                                                        if ( $('.outoffice-inner').height() > $('.outoffice').height() ){                                                                                        
     492                                                                                                var link = $('<a>').html('Ver mais'); 
     493                                                                                                link.attr('id','more'); 
     494                                                                                                link.bind('click',function(){$('.outoffice').animate({height: $('.outoffice-inner').height(),width: '-=15px'},800); $('#more').unbind('click').hide();}); 
     495                                                                                                details.append(link); 
     496                                                                                        } 
     497                                                                                } 
     498                                                                        }                                                                        
    407499                                                                        break; 
    408500                                                                case 'P': 
     
    413505                                                                        if(data[this.value].telephonenumber != null) 
    414506                                                                                details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data[this.value].telephonenumber + "</span></p>"); 
     507                                                                        if (data[this.value].vacationactive == "TRUE"){ 
     508                                                                                details.append('<p><img src="templates/default/images/mala-big.png"/><span class="title-outoffice">Filtro "Fora do Escritório" ativo.</span></p>');      
     509                                                                                if ( data[this.value].vacationinfo ){ 
     510                                                                                        details.append('<div class="outoffice"><div class="outoffice-inner"><span>'+ data[this.value].vacationinfo +'</span></div></div>'); 
     511                                                                                        if ( $('.outoffice-inner').height() > $('.outoffice').height() ){ 
     512                                                                                                var link = $('<a>').html('Ver mais'); 
     513                                                                                                link.attr('id','more'); 
     514                                                                                                link.bind('click',function(){$('.outoffice').animate({height: $('.outoffice-inner').height(),width: '-=15px'},800); $('#more').unbind('click').hide();}); 
     515                                                                                                details.append(link); 
     516                                                                                        }        
     517                                                                                } 
     518                                                                        }                                                                        
    415519                                                                        break; 
    416520                                                                default: 
    417                                                                         if(this.value == undefined)  
    418                                                                                 break;  
    419  
     521                                                                        if(this.value == undefined) 
     522                                                                                break; 
     523                                                                                 
    420524                                                                        if(data['extra_ldap_fields'].length != 0) 
    421525                                                                                var extra_fields = (data['extra_ldap_fields']).split("#");    
     
    447551                                                                                } 
    448552                                                                        } 
     553                                                                        if (data[this.value].vacationactive == "TRUE"){ 
     554                                                                                details.append('<p><img src="templates/default/images/mala-big.png"/><span class="title-outoffice">Filtro "Fora do Escritório" ativo.</span></p>');      
     555                                                                                if ( data[this.value].vacationinfo ){ 
     556                                                                                        details.append('<div class="outoffice"><div class="outoffice-inner"><span>'+ data[this.value].vacationinfo +'</span></div></div>') 
     557                                                                                        if ( $('.outoffice-inner').height() > $('.outoffice').height() ){ 
     558                                                                                                var link = $('<a>').html('Ver mais'); 
     559                                                                                                link.attr('id','more'); 
     560                                                                                                link.bind('click',function(){$('.outoffice').animate({height: $('.outoffice-inner').height(),width: '-=15px'},800); $('#more').unbind('click').hide();}); 
     561                                                                                                details.append(link); 
     562                                                                                        } 
     563                                                                                }        
     564                                                                        }                                                                        
    449565                                                                        break; 
    450566                                                        } 
     
    587703                var nome = $(contact).clone().find('.name').text(); 
    588704                var email = $(contact).clone().find('.email').text(); 
    589                  
    590705                if(email == get_lang("No mail")){ 
    591706                        alert(get_lang("It is not possible to add this contact as a recipient because it does not have email")); 
     
    594709                        return; 
    595710                } 
    596                  
    597711                verifyEmails(email, divs); 
    598                  
    599                 final_contact = "\""+nome +"\" <"+email+">, "; 
    600                  
    601                 var emailList      = content.find(field_).val(); 
    602                 //remove os caracteres da busca 
    603                 emailList = emailList.substr(0,emailList.lastIndexOf(',')+1);  
    604                  
    605         if (emailList[0] != '"' && emailList.indexOf(",") < 0) 
    606                         emailList = emailList.substr(end_); 
    607         if(emailList.lastIndexOf(",") > 0){ 
    608                 if(emailList.substr(emailList.length-1, emailList.length) == "," || emailList.substr(emailList.length-2, 1) == ","){ 
    609                         emailList = emailList.substr(0, emailList.lastIndexOf(",") + 1); 
    610                 } else { 
    611                         emailList = emailList.substr(0, emailList.lastIndexOf("") + 1);          
    612                         final_contact = ","+final_contact; 
     712                final_contact = "\""+nome +"\" <"+email+">"; 
     713 
     714                final_contact = final_contact.replace(/\/n/, "");  
     715                var index = parseInt(divs.split("_")[1])-1; 
     716                if(data_[index].type_contact == "G"){ 
     717                        var ldap_id = preferences.expressoMail_ldap_identifier_recipient; 
     718                        if(ldap_id){ 
     719                                draw_email_box( 
     720                                        (data_[index][ldap_id.toLowerCase()] ? data_[index][ldap_id.toLowerCase()][0] : final_contact) 
     721                                        , content.find(field_).filter("input") 
     722                                ); 
     723                        }else{ 
     724                                draw_email_box(final_contact, content.find(field_).filter("input")); 
     725                        } 
     726                }else{ 
     727                        draw_email_box((data_[index].id_contact ? data_[index].id_contact : data_[index].id), content.find(field_).filter("input"), (data_[index].id_contact ? true : "G")); 
    613728                } 
    614         } 
    615  
    616                 final_contact = final_contact.replace(/\/n/, ""); 
    617                 new_emailList = emailList + final_contact;     
    618         content.find(field_).val(new_emailList); 
    619                  
    620                 content.find(field_).trigger("update"); 
    621                  
    622729                content.find(field_).filter("input").val(""); 
    623730                button.onclick = function(){ 
     
    625732                }; 
    626733                var div = document.getElementById(divs); 
    627                  
    628734                div.ondblclick = function(){ 
    629735                        remove_contact_field(div.innerHTML, button, divs); 
    630736                }; 
    631                  
    632737                button.innerHTML = '<span class="ui-button-text" style="">x</span>'; 
    633738    } 
     
    639744        function remove_contact_field(contact, button, divs) { 
    640745                var email = $(contact).clone().find('.email').text(); 
    641                 var exist = false; 
    642                  
    643                 var emailList = content.find(field_).val(); 
    644                 var emails_adicionados = emailList.split(","); 
    645                  
    646                 verifyEmails(email, divs); 
    647                  
    648                 for(i=0; i<emails_adicionados.length -1; i++) { 
    649  
    650                         if(emails_adicionados[i].match(/<([^<]*)>[\s]*$/)){ 
    651                                 if(emails_adicionados[i].match(/<([^<]*)>[\s]*$/)[1].toLowerCase() == email.toLowerCase()) { 
    652                                         emails_adicionados[i] = "%"; 
    653                                         exist = true; 
    654                                 } 
    655                         }else{ 
    656                                 if(emails_adicionados[i].toLowerCase() == email.toLowerCase()) { 
    657                                         emails_adicionados[i] = "%"; 
    658                                         exist = true; 
    659                                 } 
    660                         } 
    661                 } 
    662                  
    663                 if (exist == false)  
    664                         return false; 
    665                 var novos_contatos = emails_adicionados.join(",");   
    666                 novos_contatos = novos_contatos.replace(/%,/g, ""); 
    667                 content.find(field_).val(novos_contatos); 
    668                  
     746                var array = content.find(field_).parent().find("div input"); 
     747                $.each(array, function(index, value){ 
     748                        var validated_email = $(value).val(); 
     749                        if(validated_email.match(/<([^<]*)>[\s]*$/)){ 
     750                                if(validated_email.match(/<([^<]*)>[\s]*$/)[1].toLowerCase() == email.toLowerCase()) { 
     751                                        $(value).parent().remove(); 
     752                                } 
     753                        } 
     754                }); 
     755         
    669756                button.onclick = function(){ 
    670757                        add_contact_field(document.getElementById(divs).innerHTML, button, divs); 
    671758                }; 
    672                  
    673759                var div = document.getElementById(divs); 
    674                  
    675760                div.ondblclick = function(){ 
    676761                        add_contact_field(div.innerHTML, button, divs); 
    677762                }; 
    678                  
    679                 content.find(field_).trigger("update"); 
    680763                button.innerHTML = '<span class="ui-button-text" style="">+</span>'; 
    681764        } 
Note: See TracChangeset for help on using the changeset viewer.