Changeset 37


Ignore:
Timestamp:
06/29/07 15:19:52 (17 years ago)
Author:
niltonneto
Message:

Vide arquivo change_log.txt

Location:
trunk/expressoMail1_2
Files:
4 added
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/docs/change_log.txt

    r27 r37  
    7575- Correção de todas as chamadas da função imap_open, para não gerar erro com conexões não assinadas "/notls/novalidate-cert" 
    7676- Implementado Busca Rápida de Detalhes do Remetente da Mensagem, se no Contato Pessoal e Geral. 
     77 
     7830/05/2007 - [1.2032] 
     79- Corrigido problema ao montar lista de mensagens, quando alguma delas tinha no campo "Para", caracteres especiais. 
     80- Modificada a implementação da Busca rápida de Detalhes do Remetente da Mensagem, para preparar a integração com os demais serviços. 
  • trunk/expressoMail1_2/inc/class.imap_functions.inc.php

    r25 r37  
    5454                $mbox_stream = $this->open_mbox($folder); 
    5555                 
    56                 switch($sort_box_type){ 
     56                switch($sort_box_type) {         
     57                         
    5758                        case 'SORTFROM': 
    58                                 $sort_array_msg = $this->imap_sortfrom($mbox_stream, $sort_box_reverse, $folder); 
    59                                 break; 
     59                        $sort_array_msg = $this->imap_sortfrom($mbox_stream, $sort_box_reverse, $folder); 
     60                        break; 
    6061                        case 'SORTSUBJECT': 
    61                                 $sort_array_msg = imap_sort($mbox_stream, SORTSUBJECT, $sort_box_reverse, SE_UID); 
    62                                 break; 
     62                        $sort_array_msg = imap_sort($mbox_stream, SORTSUBJECT, $sort_box_reverse, SE_UID); 
     63                        break; 
    6364                        case 'SORTARRIVAL': 
    64                                 $sort_array_msg = imap_sort($mbox_stream, SORTARRIVAL, $sort_box_reverse, SE_UID); 
    65                                 break; 
     65                        $sort_array_msg = imap_sort($mbox_stream, SORTARRIVAL, $sort_box_reverse, SE_UID); 
     66                        break; 
    6667                        case 'SORTSIZE': 
    67                                 $sort_array_msg = imap_sort($mbox_stream, SORTSIZE, $sort_box_reverse, SE_UID); 
    68                                 break; 
     68                        $sort_array_msg = imap_sort($mbox_stream, SORTSIZE, $sort_box_reverse, SE_UID); 
     69                        break; 
     70                        case 'UNSEEN': 
     71                        $sort_array_msg = imap_search($mbox_stream,"UNSEEN", SE_UID); // nao lidas 
     72                        break; 
     73                        case 'ANSWERED': 
     74                        $sort_array_msg = imap_search($mbox_stream,"ANSWERED", SE_UID); // repondidas 
     75                        break; 
     76                        case 'SEEN': 
     77                        $sort_array_msg = imap_search($mbox_stream,"SEEN", SE_UID); // lidas 
     78                        break; 
     79                        case 'FLAGGED': 
     80                        $sort_array_msg = imap_search($mbox_stream,"FLAGGED", SE_UID); // importantes 
     81                        break; 
     82                        case 'ALL': 
     83                        $sort_array_msg = imap_search($mbox_stream,SORTARRIVAL,$sort_box_reverse,  SE_UID); // Todas 
     84                        break; 
    6985                } 
    7086                 
     
    103119                        $return[$i]['from'] = array(); 
    104120                        $tmp = imap_mime_header_decode($from[0]->personal); 
    105                         $return[$i]['from']['name'] =  $this->decode_string($tmp[0]->text); 
     121                        $return[$i]['from']['name'] = $this->decode_string($tmp[0]->text); 
    106122                        $return[$i]['from']['email'] = $this->decode_string($from[0]->mailbox) . "@" . $from[0]->host; 
    107123                        if(!$return[$i]['from']['name']) 
     
    110126                        $return[$i]['to'] = array(); 
    111127                        $tmp = imap_mime_header_decode($to[0]->personal); 
    112                         $return[$i]['to']['name'] = $tmp[0]->text; 
    113                         $return[$i]['to']['email'] = $to[0]->mailbox . "@" . $to[0]->host; 
    114                         $return[$i]['to']['full'] ='"' . $return[$i]['to']['name'] . '" ' . '<' . $return[$i]['to']['email'] . '>'; 
    115                          
     128                        $return[$i]['to']['name'] = $this->decode_string($this->decode_string($tmp[0]->text)); 
     129                        $return[$i]['to']['email'] = $this->decode_string($to[0]->mailbox) . "@" . $to[0]->host; 
     130                        if(!$return[$i]['to']['name']) 
     131                                $return[$i]['to']['name'] = $return[$i]['to']['email']; 
    116132                        $return[$i]['subject'] = $this->decode_string($header->fetchsubject); 
    117133 
     
    11701186                        } 
    11711187                } 
     1188 
    11721189//////////////////////////////////////////////////////////////////////////////////////////////////// 
    11731190                // Disposition-Notification-To 
  • trunk/expressoMail1_2/inc/class.ldap_functions.inc.php

    r27 r37  
    1313                $this->ds                       = ldap_connect($this->ldap_host); 
    1414                ldap_set_option($this->ds, LDAP_OPT_PROTOCOL_VERSION, 3); 
    15                 ldap_set_option($this->ds, LDAP_OPT_REFERRALS, $refer);                  
     15                ldap_set_option($this->ds, LDAP_OPT_REFERRALS, $refer); 
    1616                ldap_bind($this->ds, $_SESSION['phpgw_info']['expressomail']['ldap_server']['acc'],$_SESSION['phpgw_info']['expressomail']['ldap_server']['pw']);                                
    1717        } 
     
    2222                $this->ds                       = ldap_connect($this->ldap_host); 
    2323                ldap_set_option($this->ds, LDAP_OPT_PROTOCOL_VERSION, 3); 
    24                 ldap_set_option($this->ds, LDAP_OPT_REFERRALS, $refer);                  
     24                ldap_set_option($this->ds, LDAP_OPT_REFERRALS, $refer); 
    2525                ldap_bind($this->ds, $_SESSION['phpgw_info']['expressomail']['server']['ldap_root_dn'],$_SESSION['phpgw_info']['expressomail']['server']['ldap_root_pw']);                               
    2626 
     
    4242                if ($this->ds) 
    4343                { 
    44                         $filter="(&(|(phpgwAccountType=u)(phpgwAccountType=l))(|(cn=*$search_for*)(sn=*$search_for*)(mail=$search_for*)))";              
    45                         $justthese = array("cn", "mail", "telephoneNumber", "phpgwAccountVisible"); 
     44                        if (($field != 'null') && ($ID != 'null')) 
     45                        { 
     46                                $filter="(&(|(phpgwAccountType=u)(phpgwAccountType=l))(|(cn=*$search_for*)(sn=*$search_for*)(mail=$search_for*)))"; 
     47                                $justthese = array("cn", "mail", "telephoneNumber", "phpgwAccountVisible", "uid"); 
     48                        } 
     49                        else 
     50                        { 
     51                                $filter="(&(phpgwAccountType=u)(|(cn=*$search_for*)(sn=*$search_for*)(mail=$search_for*)))"; 
     52                                $justthese = array("cn", "mail", "telephoneNumber", "phpgwAccountVisible", "jpegPhoto", "uid"); 
     53                        } 
     54                         
    4655                        $sr=ldap_search($this->ds, $this->ldap_context, $filter, $justthese); 
    4756                         
     
    5362                                return $return; 
    5463                        } 
    55                          
    5664                        $info = ldap_get_entries($this->ds, $sr); 
     65                         
    5766                        $tmp = array(); 
    5867                        for ($i=0; $i<$info["count"]; $i++) 
     
    6069                                if ($info[$i]["phpgwaccountvisible"][0] == '-1') 
    6170                                        continue; 
    62                                 $tmp[$info[$i]["mail"][0] . '%' . $info[$i]["telephonenumber"][0]] = $info[$i]["cn"][0]; 
     71                                $tmp[$info[$i]["mail"][0] . '%' . $info[$i]["telephonenumber"][0] . '%' . $info[$i]["uid"][0] . '%' . $info[$i]["jpegphoto"]['count']] = $info[$i]["cn"][0]; 
    6372                        } 
    6473                        natcasesort($tmp); 
    6574                         
    6675                        $i = 0; 
    67                         foreach ($tmp as $mail => $cn) 
    68                         { 
    69                                 $contacts_result[$i] = array(); 
    70                                 $contacts_result[$i]["cn"] = $cn; 
    71                                 list ($contacts_result[$i]["mail"], $contacts_result[$i]["phone"]) = split ('%', $mail); 
    72                                 $i++; 
     76                        if (($field != 'null') && ($ID != 'null')) 
     77                        { 
     78                                foreach ($tmp as $info => $cn) 
     79                                { 
     80                                        $contacts_result[$i] = array(); 
     81                                        $contacts_result[$i]["cn"] = $cn; 
     82                                        list ($contacts_result[$i]["mail"], $contacts_result[$i]["phone"]) = split ('%', $info); 
     83                                        $i++; 
     84                                } 
     85                        } 
     86                        else 
     87                        { 
     88                                $options = ''; 
     89                                foreach ($tmp as $info => $cn) 
     90                                { 
     91                                        $contacts_result[$i] = array(); 
     92                                        $contacts_result[$i]["cn"] = $cn; 
     93                                        list ($contacts_result[$i]["mail"], $contacts_result[$i]["phone"], $contacts_result[$i]["uid"], $contacts_result[$i]["jpegphoto"]) = split ('%', $info); 
     94                                         
     95                                        if ($contacts_result[$i]['jpegphoto']) 
     96                                                $photo_link = '<img src="./inc/show_user_photo.php?mail='.$contacts_result[$i]['mail'].'">'; 
     97                                        else 
     98                                                $photo_link = '<img src="./templates/default/images/photo.png">'; 
     99                                         
     100                                        // '<tr class="quicksearchcontacts_unselected" onClick="javascript:QuickSearchUser.select_cc(this)">' . 
     101                                        $options .= 
     102                                                '<tr class="quicksearchcontacts_unselected">' . 
     103                                                        '<td class="cc" width="1%">' . 
     104                                                                '<a onClick="javascript:QuickSearchUser.create_new_message(\''.$contacts_result[$i]["cn"].'\', \''.$contacts_result[$i]["mail"].'\')">' . 
     105                                                                        $photo_link . 
     106                                                                '</a>' . 
     107                                                        '</td>' . 
     108                                                        '<td class="cc">' . 
     109                                                                '<span name="cn">' . $contacts_result[$i]['cn'] . '</span>' . '<br>' . 
     110                                                                '<a onClick="javascript:QuickSearchUser.create_new_message(\''.$contacts_result[$i]["cn"].'\', \''.$contacts_result[$i]["mail"].'\')">' . 
     111                                                                        '<font color=blue>' . 
     112                                                                                '<span name="mail">' . $contacts_result[$i]['mail'] . '</span>' . '<br>' . 
     113                                                                        '</font>' . 
     114                                                                '</a>' . 
     115                                                                $contacts_result[$i]['phone'] . 
     116                                                        '</td>' . 
     117                                                '</tr>'; 
     118                                        $i++; 
     119                                } 
     120                                $contacts_result = $options; 
    73121                        } 
    74122                } 
     
    198246        //Busca usuários de um contexto e já retorna as options do select; 
    199247        function get_available_users($params) 
    200         { 
    201                 $this->ldapRootConnect(); 
    202                 //Monta lista de Grupos e Usuários 
    203                 $users = Array(); 
    204                 $groups = Array(); 
    205                 $user_context= $params['context']; 
    206                 $owner = $_SESSION['phpgw_info']['expressomail']['user']['owner']; 
    207  
    208             if ($this->ds)  
    209             { 
    210                 $justthese = array("gidNumber","cn"); 
    211                         $sr=ldap_list($this->ds, $user_context, ("(&(cn=*)(phpgwaccounttype=g)(!(phpgwaccountvisible=-1)))"),$justthese); 
    212                         $info = ldap_get_entries($this->ds, $sr); 
    213                         for ($i=0; $i<$info["count"]; $i++) 
    214                                 $groups[$uids=$info[$i]["gidnumber"][0]] = Array('name' =>      $uids=$info[$i]["cn"][0], 'type'        =>      g);                      
    215                         $justthese = array("phpgwaccountvisible","uidNumber","cn"); 
    216                         $sr=ldap_list($this->ds, $user_context, ("(&(cn=*)(phpgwaccounttype=u)(!(phpgwaccountvisible=-1)))"),$justthese); 
    217                         $info = ldap_get_entries($this->ds, $sr); 
    218                         for ($i=0; $i<$info["count"]; $i++) 
    219                         { 
    220                                 if ($info[$i]["phpgwaccountvisible"][0] == '-1') 
    221                                         continue; 
    222                                 $users[$uids=$info[$i]["uidnumber"][0]] = Array('name'  =>      $uids=$info[$i]["cn"][0], 'type'        =>      u); 
    223                         } 
    224                 } 
    225                 ldap_close($this->ds); 
    226                  
    227                 @asort($users); 
    228                 @reset($users);  
    229                 @asort($groups); 
    230                 @reset($groups); 
    231                 $user_options =''; 
    232                 $group_options =''; 
    233  
    234                 foreach($groups as $id => $user_array) { 
    235                                 $newId = $id.'U'; 
    236                                 $group_options .= '<option  value="'.$newId.'">'.utf8_decode($user_array['name']).'</option>'."\n"; 
    237                 } 
    238                 foreach($users as $id => $user_array) { 
    239                         if($owner != $id){ 
    240                                 $newId = $id.'U'; 
    241                                 $user_options .= '<option  value="'.$newId.'">'.utf8_decode($user_array['name']).'</option>'."\n"; 
    242                         } 
    243                 } 
    244                 return array("users" => $user_options, "groups" => $group_options); 
    245         } 
     248    { 
     249        $this->ldapRootConnect(); 
     250        //Monta lista de Grupos e Usuários 
     251        $users = Array(); 
     252        $groups = Array(); 
     253        $user_context= $params['context']; 
     254        $owner = $_SESSION['phpgw_info']['expressomail']['user']['owner']; 
     255 
     256        if ($this->ds) 
     257        { 
     258            $justthese = array("gidNumber","cn"); 
     259            if ($params['type'] == 'search') 
     260                $sr=ldap_search($this->ds, $user_context, ("(&(cn=*)(phpgwaccounttype=g)(!(phpgwaccountvisible=-1)))"),$justthese); 
     261            else 
     262                $sr=ldap_list($this->ds, $user_context, ("(&(cn=*)(phpgwaccounttype=g)(!(phpgwaccountvisible=-1)))"),$justthese); 
     263            $info = ldap_get_entries($this->ds, $sr); 
     264            for ($i=0; $i<$info["count"]; $i++) 
     265                $groups[$uids=$info[$i]["gidnumber"][0]] = Array('name'    =>    $uids=$info[$i]["cn"][0], 'type'    =>    g);             
     266            $justthese = array("phpgwaccountvisible","uidNumber","cn"); 
     267            if ($params['type'] == 'search') 
     268                $sr=ldap_search($this->ds, $user_context, ("(&(cn=*)(phpgwaccounttype=u)(!(phpgwaccountvisible=-1)))"),$justthese); 
     269            else 
     270                $sr=ldap_list($this->ds, $user_context, ("(&(cn=*)(phpgwaccounttype=u)(!(phpgwaccountvisible=-1)))"),$justthese); 
     271 
     272            $info = ldap_get_entries($this->ds, $sr); 
     273            for ($i=0; $i<$info["count"]; $i++) 
     274            { 
     275                if ($info[$i]["phpgwaccountvisible"][0] == '-1') 
     276                    continue; 
     277                $users[$uids=$info[$i]["uidnumber"][0]] = Array('name'    =>    $uids=$info[$i]["cn"][0], 'type'    =>    u); 
     278            } 
     279        } 
     280        ldap_close($this->ds); 
     281             
     282        @asort($users); 
     283        @reset($users);     
     284        @asort($groups); 
     285        @reset($groups); 
     286        $user_options =''; 
     287        $group_options =''; 
     288 
     289        foreach($groups as $id => $user_array) { 
     290                $newId = $id.'U'; 
     291                $group_options .= '<option  value="'.$newId.'">'.utf8_decode($user_array['name']).'</option>'."\n"; 
     292        } 
     293        foreach($users as $id => $user_array) { 
     294            if($owner != $id){ 
     295                $newId = $id.'U'; 
     296                $user_options .= '<option  value="'.$newId.'">'.utf8_decode($user_array['name']).'</option>'."\n"; 
     297            } 
     298        } 
     299        return array("users" => $user_options, "groups" => $group_options); 
     300    } 
    246301 
    247302        //Busca usuários de um contexto e já retorna as options do select; 
     
    331386                { 
    332387                        $filter="(&(phpgwAccountType=u)(mail=$email))";          
    333                         $justthese = array("cn","telephoneNumber","jpegPhoto"); 
     388                        $justthese = array("cn","uid","telephoneNumber","jpegPhoto"); 
    334389                        $sr=ldap_search($this->ds, $this->ldap_context, $filter, $justthese); 
    335390                        $entry = ldap_first_entry($this->ds, $sr);                       
     
    337392                                $obj =  array("cn" => @ldap_get_values($this->ds, $entry, "cn"), 
    338393                                                  "email" => $email, 
     394                                                  "uid" => @ldap_get_values($this->ds, $entry, "uid"), 
    339395                                                  "type" => "global", 
    340396                                                  "telefone" =>  @ldap_get_values($this->ds, $entry, "telephonenumber")); 
  • trunk/expressoMail1_2/index.php

    r29 r37  
    44                'nonavbar' => False, 
    55                'currentapp' => 'expressoMail1_2', 
    6                 'update_version'        => '1.20312', 
     6                'update_version'        => '1.20314', 
    77                'enable_nextmatchs_class' => True 
    88        ); 
     
    6868                                                        "js/color_palette.js,". 
    6969                                                        "js/QuickCatalogSearch.js,". 
     70                                                        "js/QuickSearchUser.js,". 
    7071                                                        "js/preferences.js,". 
    7172                                                        "js/search.js,". 
  • trunk/expressoMail1_2/js/InfoContact.js

    r29 r37  
    33        this.email = ""; 
    44        this.timeout = null; 
     5        this.timeout_hide = null; 
    56        this._mousemove = document.onmousemove; 
    67        this.td; 
    7 } 
    8  
    9 emInfoContact.prototype.begin = function(td,email){ 
    10         this.td = td; 
     8        this.createCard(); 
     9} 
     10 
     11emInfoContact.prototype.createCard = function(){ 
     12        var pic= new Image();  
     13        pic.src="./templates/default/images/card.gif";  
     14        card = document.createElement("DIV"); 
     15        card.id = "card_cc"; 
     16        card.style.display = "none"; 
     17        card.style.width = "244px"; 
     18        card.style.backgroundImage = "url("+pic.src+")"; 
     19        card.style.height = "134px"; 
     20        card.style.position = "absolute"; 
     21        card.innerHTML = "<table onmouseout='InfoContact.timeout_hide=setTimeout(\"InfoContact.hide()\",50);' onmouseover='clearTimeout(InfoContact.timeout_hide);' cellpadding=0 cellspacing=0 width='100%' height='100%'><tr><td valign='center' align='center' id='card_cc_td'></td></tr></table>"; 
     22        document.body.appendChild(card); 
     23} 
     24emInfoContact.prototype.begin = function(td, email){ 
     25 
    1126        var card = Element("card_cc"); 
    12         if(!card) { 
    13                 card = document.createElement("DIV"); 
    14                 card.id = "card_cc"; 
    15                 card.style.display = "none"; 
    16                 card.style.width = "244px"; 
    17                 card.style.backgroundImage = "url(./templates/default/images/card.gif)"; 
    18                 card.style.height = "134px"; 
    19                 card.style.position = "absolute"; 
    20                 card.innerHTML = "<table cellpadding=0 cellspacing=0 width='100%' height='100%'><tr><td valign='center' align='center' id='card_cc_td'></td></tr></table>"; 
    21                 document.body.appendChild(card); 
    22         } 
    23  
    24         if(this.email != email){ 
     27 
     28        if(_this.td != td){ 
    2529                this.email = email; 
     30                this.td = td; 
    2631                clearTimeout(this.timeout); 
    2732                this.timeout = setTimeout("InfoContact.search('"+email+"')",1000); 
     
    3035 
    3136emInfoContact.prototype.label = function (text){ 
     37        InfoContact.hide(); 
    3238        var div_label = Element("div_label"); 
    3339        if(!div_label) { 
     
    4551        div_label.style.left = findPosX(this.td) + 20; 
    4652        div_label.style.display = ''; 
     53        setTimeout("InfoContact.hide()",1000); 
    4754} 
    4855 
     
    5158        var card = Element("card_cc"); 
    5259 
    53         if(card.style.display != '') { 
     60        //if(card.style.display != '') 
     61         { 
    5462                card.style.left = findPosX(this.td) + 20; 
    5563                var y = findPosY(this.td) + 20 - Element("divScrollMain").scrollTop; 
     
    6371                if(cn && cn.toString().length > 35) 
    6472                        cn = cn.toString().substring(0,30) + "..."; 
    65                          
     73                 
     74 
    6675                Element("card_cc_td").innerHTML = "<table cellpadding=0 cellspacing=0 border=0 height='100%' width='100%'><tr><td width='70' height='93' style='padding-top:5px;padding-left:6px' align='center' valign='center'>"+ 
    6776                                                                                        "<img src='./inc/show_img.php?email="+data.email+"'></td><td style='padding-left:2px' align='left' valign='top'>"+ 
    68                                                                                         "<br><img align='middle' src='templates/default/images/"+(data.type)+"_catalog.png'><font size=1 color=BLACK>&nbsp;<u>"+get_lang("Sender's Information")+"</u></font>"+ 
    69                                                                                         "<br><br><br><img align='middle' src='templates/default/images/phone.gif'>&nbsp;<font  size=1  color=BLACK>"+(data.telefone ? data.telefone : get_lang("None") )+"</font>"+ 
     77                                                                                        "<br><img align='center' src='templates/default/images/"+(data.type)+"_catalog.png'><font size=1 color=BLACK>&nbsp;<b>"+get_lang("Sender's Information")+"</b></font>"+ 
     78                                                                                        _this.verifyIM(data.uid,data.email)+ 
     79                                                                                        "<br><img align='center' src='templates/default/images/phone.gif'>&nbsp;<font  size=1  color=BLACK>"+(data.telefone ? data.telefone : get_lang("None") )+"</font>"+ 
    7080                                                                                        "</td></tr><tr><td valign='top' align='center' colspan='2'>"+ 
    71                                                                                         "<font size=1 color=BLACK><b>"+cn+"</b></font>"+ 
    72                                                                                         "<br><font size=1 color=DARKBLUE>"+data.email+"</font>"+ 
     81                                                                                        "<font size=1 color=BLACK>"+cn+"</font>"+ 
     82                                                                                        "<br><span title='"+get_lang("Write message")+"' style='cursor:pointer' onclick='InfoContact.sendMail(\""+cn+"\",\""+data.email+"\")'><font size=1 color=DARKBLUE><u>"+data.email+"</u></font></span>"+ 
    7383                                                                                        "</td></tr></table>"; 
    7484 
     85 
     86        this.timeout_hide = setTimeout("InfoContact.hide()",1000); 
    7587        } 
    7688} 
     
    110122                Element("card_cc").style.display = "none";       
    111123} 
     124 
     125emInfoContact.prototype.sendMail = function(name, email){ 
     126        Element("msg_number").value = "\""+ name+"\" <"+email+">"; 
     127        InfoContact.hide(); 
     128        new_message("new","null"); 
     129} 
     130 
     131emInfoContact.prototype.openChat = function(event, email){ 
     132        IM.action_button(event, '1', email ,false); 
     133} 
     134emInfoContact.prototype.verifyPermissionIM = function(uid, domain, email){ 
     135 
     136        var handler_verifyPermissionIM = function(data){ 
     137                if(!data){ 
     138                        alert("Esse usuário ("+uid+") não possui o módulo Expresso IM habilitado"); 
     139                } 
     140                else 
     141                        Preferences.updateLoad(''+uid+"@"+domain+''); 
     142        } 
     143 
     144        IM.UserPermission(uid,handler_verifyPermissionIM); 
     145 
     146} 
     147 
     148emInfoContact.prototype.verifyIM = function(uid, email){ 
     149        if(!window.IM) 
     150                return  "<br><br>"; 
     151 
     152        if(!IM.array_users || !IM.array_users.length) 
     153                return  "<br><br>"; 
     154 
     155        var status  = "Not Registered"; 
     156        var subscription = ""; 
     157        var _return      = "";   
     158        var jid                  = "";   
     159        var array_jid    = null; 
     160 
     161        for(i = 1; i <= IM.array_users.length; i++){ 
     162                if(!IM.array_users[i] || !IM.array_users[i].jid) 
     163                        continue; 
     164 
     165                jid = IM.array_users[i].jid; 
     166                array_jid  = jid.split("@"); 
     167                 
     168                if(array_jid[0] == uid){ 
     169                        status           = IM.array_users[i].online; 
     170                        subscription = IM.array_users[i].subscription; 
     171                        break; 
     172                } 
     173                else 
     174                        jid = uid +"@"+array_jid[1]; 
     175 
     176        } 
     177         
     178        if(subscription == 'both') { 
     179                if(status == 1) { 
     180                        _return = "<br><img align='center' src='../instant_messenger/templates/default/images/online.gif'>"; 
     181                        _return         += "<span title='"+get_lang("Open chat window")+"' style='cursor:pointer' onclick='InfoContact.openChat(event,\""+jid+"\");InfoContact.hide()'><font size=1 color=DARKBLUE><u>"+get_lang("User connected")+"</u></font></span><br>"; 
     182                } 
     183                else if(status == 0) { 
     184                        _return = "<br><img align='center' src='../instant_messenger/templates/default/images/offline.gif'>"; 
     185                        _return         += "<span style='cursor:pointer' onclick='InfoContact.hide()'><font size=1 color=BLACK>"+get_lang("User not connected")+"</font></span><br>"; 
     186                } 
     187         
     188        } 
     189        else if(array_jid != null){ 
     190                _return = "<br><img align='center' src='../instant_messenger/templates/default/images/not_authorized.gif'>"; 
     191                if(subscription == 'from') 
     192                        _return += "<font size=1 color=BLACK><u>"+ get_lang("User didn't allow you")+"</u></font><br>"; 
     193                else if(subscription == 'to') { 
     194                        _return += "<span title='"+get_lang("Authorize")+"' style='cursor:pointer' onclick='Preferences.updateLoad(\""+email+"\");InfoContact.hide()'><font size=1 color=BLACK><u>"+ get_lang("You didn't allow")+"</u></font></span><br>"; 
     195                } 
     196                else 
     197                        _return += "<span title='"+get_lang("Register user into my IM")+"' style='cursor:pointer' onclick='InfoContact.verifyPermissionIM(\""+ uid +"\",\""+array_jid[1]+"\");InfoContact.hide()'><font size=1 color=BLACK><u>" + get_lang("User not registered")+"</u></font></span><br>";      
     198        } 
     199 
     200        return _return; 
     201} 
    112202/* Build the Object */ 
    113203var emInfoContact; 
    114204InfoContact = new emInfoContact(); 
    115  
    116  
    117 /*document.onmousemove = function(e) {                   
    118         var     _target = is_ie ? window.event.srcElement : e.target; 
    119         if(InfoContact._mousemove) 
    120                 InfoContact._mousemove(e); 
    121  
    122         if(Element("div_label")) 
    123                 Element("div_label").style.display = 'none'; 
    124  
    125         if(Element("card_cc"))  
    126                 Element("card_cc").style.display = "none"; 
    127          
    128         //InfoContact.hide(); 
    129 };*/ 
  • trunk/expressoMail1_2/js/common_functions.js

    r5 r37  
    3535        } 
    3636        Element('content_folders').style.height = defaultHeight - 160;   
    37         Element("divScrollMain").style.height   = defaultHeight - 118;   
     37        if(Element("divScrollMain")) 
     38                Element("divScrollMain").style.height   = defaultHeight - 118;   
    3839} 
    3940// END: FUNCTION RESIZE WINDOW 
     
    390391 
    391392function emQuickSearch(emailList, field, ID){ 
    392  
    393393        var quickSearchKeyBegin; 
    394394        var quickSearchKeyEnd; 
    395395         
    396         var handler_emQuickSearch = function(data){ 
     396        var handler_emQuickSearch = function(data) 
     397        { 
    397398                window_DropDownContacts = Element('tipDiv'); 
    398399                if (window_DropDownContacts.style.visibility != 'hidden'){ 
     
    406407                         
    407408                if (data.length > 0){ 
    408                         connector.loadScript("QuickCatalogSearch"); 
    409                         QuickCatalogSearch.showList(data, quickSearchKeyBegin, quickSearchKeyEnd); 
     409                        if ((field != 'null') && (ID != 'null')) 
     410                        { 
     411                                connector.loadScript("QuickCatalogSearch"); 
     412                                QuickCatalogSearch.showList(data, quickSearchKeyBegin, quickSearchKeyEnd); 
     413                        } 
     414                        else 
     415                        { 
     416                                connector.loadScript("QuickSearchUser"); 
     417                                QuickSearchUser.showList(data); 
     418                        } 
    410419                } 
    411420                else 
     
    413422                return true; 
    414423        } 
    415         Element(field +'_'+ ID).focus(); //necessário para o IE. 
    416         var i = getPosition(Element(field +'_'+ ID)); //inputBox.selectionStart; 
    417         var j = --i; 
    418  
    419         // Acha o inicio 
    420     while ((j >= 0) && (emailList.charAt(j) != ',')){j--}; 
    421     quickSearchKeyBegin = ++j; 
    422  
    423     // Acha o final 
    424     while ((i <= emailList.length) && (emailList.charAt(i) != ',')){i++}; 
    425     quickSearchKeyEnd = i; 
    426  
    427     // A Chave da Pesquisa 
    428     var search_for = trim(emailList.substring(quickSearchKeyBegin, quickSearchKeyEnd)); 
    429  
     424         
     425        if ((field != 'null') && (ID != 'null')) 
     426        { 
     427                Element(field +'_'+ ID).focus(); //necessário para o IE. 
     428                var i = getPosition(Element(field +'_'+ ID)); //inputBox.selectionStart; 
     429                var j = --i; 
     430 
     431                // Acha o inicio 
     432        while ((j >= 0) && (emailList.charAt(j) != ',')){j--}; 
     433            quickSearchKeyBegin = ++j; 
     434 
     435            // Acha o final 
     436        while ((i <= emailList.length) && (emailList.charAt(i) != ',')){i++}; 
     437            quickSearchKeyEnd = i; 
     438 
     439            // A Chave da Pesquisa 
     440        var search_for = trim(emailList.substring(quickSearchKeyBegin, quickSearchKeyEnd)); 
     441        } 
     442        else 
     443                var search_for = emailList; 
     444         
    430445        if (search_for.length < 4){ 
    431446                alert(get_lang('Your search argument must be longer than 4 characters.')); 
  • trunk/expressoMail1_2/js/draw_api.js

    r27 r37  
    410410        span_T.style.height = "10"; 
    411411        span_options.style.fontSize = "12"; 
    412         span_options.width = "50%"; 
     412//      span_options.width = "auto"; 
    413413        span_options.innerHTML =  
    414414        '<span title="'+get_lang("Delete")+'" style="margin-left:8px" class="message_options" onclick=delete_msgs(\'null\',\'selected\',\'null\')>'+get_lang("Delete")+'</span> | '+ 
    415415        '<span title="'+get_lang("Move")+'" class="message_options" onclick=wfolders.makeWindow(\"\",\"move_to\")>'+get_lang("Move")+'</span> | '+ 
    416416        '<span title="'+get_lang("Print")+'" class="message_options" onclick=print_all()>'+get_lang("Print")+'</span> | '+ 
    417         '<span title="'+get_lang("Export")+'" class="message_options" onclick="export_all_selected_msgs()">'+get_lang("Export")+'</span>'; 
     417        '<span title="'+get_lang("Export")+'" class="message_options" onclick="export_all_selected_msgs()">'+get_lang("Export")+'</span> | '+ 
     418        '<select onchange="listByFlag(this.value)">'+ 
     419        '<option value="SORTARRIVAL" '+(sort_box_type == 'SORTARRIVAL' ? 'selected':'')+'>Todas</option>'+ 
     420        '<option value="UNSEEN" '+(sort_box_type == 'UNSEEN' ? 'selected':'')+'>Não Lidas</option>'+ 
     421        '<option value="SEEN" '+(sort_box_type == 'SEEN' ? 'selected':'')+'>Lidas</option>'+ 
     422        '<option value="ANSWERED" '+(sort_box_type == 'ANSWERED' ? 'selected':'')+'>Respondidas/Encaminhadas</option>'+ 
     423        '<option value="FLAGGED" '+(sort_box_type == 'FLAGGED' ? 'selected':'')+'>Importantes</option>'+ 
     424        '</select>'; 
    418425        var span_D = document.createElement("TD"); 
    419426        span_R.appendChild(span_D); 
     
    457464                                                        "preferences", 
    458465                                                        "QuickCatalogSearch", 
     466                                                        "QuickSearchUser", 
    459467                                                        "rich_text_editor", 
    460468                                                        "sharemailbox", 
     
    566574                } 
    567575                else{ 
    568                         td_element3.onmouseover = function (event) {InfoContact.begin(this,headers_msgs.from.email);}; 
    569                         td_element3.onmouseout = function () {InfoContact.hide();}; 
     576                        td_element3.onmouseover = function (event) {try {InfoContact.begin(this,headers_msgs.from.email)} catch(e){};}; 
     577                        td_element3.onmouseout = function (){ try {clearTimeout(InfoContact.timeout);} catch(e){}}; 
    570578                        if (headers_msgs.Draft == 'X'){ 
    571579                                td_element3.innerHTML = "<span style=\"color:red\">("+get_lang("Draft")+") </span>"; 
     
    676684                default: 
    677685                        type_name = get_lang("Date"); 
    678                         sort_box_type = 'SORTARRIVAL'; 
    679686                break; 
    680687        } 
    681688 
    682         Element("message_header_"+sort_box_type).innerHTML = "<B>"+type_name+"</B><img src ='templates/default/images/arrow_"+(sort_box_reverse == 1 ? 'desc' : 'asc')+"endant.gif'>"; 
     689        Element("message_header_"+(sort_box_type.lastIndexOf("SORT") != "-1" ? sort_box_type : "SORTARRIVAL") ).innerHTML = "<B>"+type_name+"</B><img src ='templates/default/images/arrow_"+(sort_box_reverse == 1 ? 'desc' : 'asc')+"endant.gif'>"; 
    683690} 
    684691function draw_message(info_msg, ID){ 
     
    21242131        div_address_full.style.display=''; 
    21252132} 
     2133function listByFlag(flag_type){ 
     2134        sort_box_type = flag_type; 
     2135        cExecute ("$this.imap_functions.get_range_msgs2&folder="+current_folder+"&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type="+flag_type+"&sort_box_reverse="+sort_box_reverse+"", handler_draw_box); 
     2136} 
  • trunk/expressoMail1_2/js/main.js

    r2 r37  
    515515        textArea.name = "body"; 
    516516        body = document.getElementById("body_"+ID); 
    517         textArea.value = body.contentWindow.document.body.innerHTML; 
     517        textArea.value += '<body>\r\n'; 
     518        textArea.value += body.contentWindow.document.body.innerHTML; 
     519        textArea.value += '\r\n</body>'; 
    518520        var input_folder = document.createElement("INPUT"); 
    519521        input_folder.style.display='none'; 
  • trunk/expressoMail1_2/templates/default/index.tpl

    r2 r37  
    2828                                </table> 
    2929                                <div style="height:4px"></div> 
    30                                 <div align="center"><input type="text" onFocus="this.value ='';" onKeyPress="javascript:emMessageSearch(event,this.value)" id="em_message_search" size="18" maxlength="22" value="Pesquisa Rápida"/>&nbsp; 
    31                                 <a class='' onMouseOut="window.status='';return true;" title="Abrir janela de Pesquisa..." onMouseOver="window.status='Abrir janela de Pesquisa...';return true;" href="javascript:void(0);"  onClick="javascript:search_emails(Element('em_message_search').value)"> 
    32                                 <img valign="center" align="center" src="templates/default/images/search.gif"></a></div> 
     30                                <div align="center"> 
     31                                        <input type="text" id="em_message_search" size="18" maxlength="22"/> 
     32                                        <a class='' onMouseOut="window.status='';return true;" title="Abrir janela de Pesquisa..." onMouseOver="window.status='Abrir janela de Pesquisa...';return true;" href="javascript:void(0);"  onClick="javascript:search_emails(Element('em_message_search').value)"> 
     33                                                <img valign="center" align="center" src="templates/default/images/search.gif"> 
     34                                        </a> 
     35                                        <a class='' onMouseOut="window.status='';return true;" title="Pesquisar usuário..." onMouseOver="window.status='Pesquisar usuário...';return true;" href="javascript:void(0);"  onClick="javascript:emQuickSearch(Element('em_message_search').value, 'null', 'null')"> 
     36                                                <img valign="center" align="center" src="templates/default/images/users.png"> 
     37                                        </a> 
     38                                </div> 
     39                                 
    3340                        </td> 
    3441                         
  • trunk/expressoMail1_2/templates/default/main.css

    r2 r37  
    409409        font-weight: bold; 
    410410} 
     411 
     412div.quicksearchcontacts { 
     413        border-width: 1px; 
     414        border-style: solid; 
     415        broder-color: grey; 
     416        overflow: auto; 
     417        position: relative; 
     418        left: 10px; 
     419        height: 302px; 
     420        width: 577px; 
     421} 
     422 
     423table.quicksearchcontacts { 
     424        border-width: 0px 0px 0px 0px; 
     425        border-spacing: 0px; 
     426        background-color: white; 
     427        cursor: default; 
     428} 
     429 
     430tr.quicksearchcontacts_unselected { 
     431        background-color: white; 
     432} 
     433 
     434tr.quicksearchcontacts_selected { 
     435        background-color: #5598d7; 
     436        color: white; 
     437} 
     438 
     439td.quicksearchcontacts_cc { 
     440        border-style: none; 
     441} 
Note: See TracChangeset for help on using the changeset viewer.