Changeset 37
- Timestamp:
- 06/29/07 15:19:52 (17 years ago)
- Location:
- trunk/expressoMail1_2
- Files:
-
- 4 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/docs/change_log.txt
r27 r37 75 75 - 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" 76 76 - Implementado Busca Rápida de Detalhes do Remetente da Mensagem, se no Contato Pessoal e Geral. 77 78 30/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 54 54 $mbox_stream = $this->open_mbox($folder); 55 55 56 switch($sort_box_type){ 56 switch($sort_box_type) { 57 57 58 case 'SORTFROM': 58 59 59 $sort_array_msg = $this->imap_sortfrom($mbox_stream, $sort_box_reverse, $folder); 60 break; 60 61 case 'SORTSUBJECT': 61 62 62 $sort_array_msg = imap_sort($mbox_stream, SORTSUBJECT, $sort_box_reverse, SE_UID); 63 break; 63 64 case 'SORTARRIVAL': 64 65 65 $sort_array_msg = imap_sort($mbox_stream, SORTARRIVAL, $sort_box_reverse, SE_UID); 66 break; 66 67 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; 69 85 } 70 86 … … 103 119 $return[$i]['from'] = array(); 104 120 $tmp = imap_mime_header_decode($from[0]->personal); 105 $return[$i]['from']['name'] = 121 $return[$i]['from']['name'] = $this->decode_string($tmp[0]->text); 106 122 $return[$i]['from']['email'] = $this->decode_string($from[0]->mailbox) . "@" . $from[0]->host; 107 123 if(!$return[$i]['from']['name']) … … 110 126 $return[$i]['to'] = array(); 111 127 $tmp = imap_mime_header_decode($to[0]->personal); 112 $return[$i]['to']['name'] = $t mp[0]->text;113 $return[$i]['to']['email'] = $t o[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']; 116 132 $return[$i]['subject'] = $this->decode_string($header->fetchsubject); 117 133 … … 1170 1186 } 1171 1187 } 1188 1172 1189 //////////////////////////////////////////////////////////////////////////////////////////////////// 1173 1190 // Disposition-Notification-To -
trunk/expressoMail1_2/inc/class.ldap_functions.inc.php
r27 r37 13 13 $this->ds = ldap_connect($this->ldap_host); 14 14 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); 16 16 ldap_bind($this->ds, $_SESSION['phpgw_info']['expressomail']['ldap_server']['acc'],$_SESSION['phpgw_info']['expressomail']['ldap_server']['pw']); 17 17 } … … 22 22 $this->ds = ldap_connect($this->ldap_host); 23 23 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); 25 25 ldap_bind($this->ds, $_SESSION['phpgw_info']['expressomail']['server']['ldap_root_dn'],$_SESSION['phpgw_info']['expressomail']['server']['ldap_root_pw']); 26 26 … … 42 42 if ($this->ds) 43 43 { 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 46 55 $sr=ldap_search($this->ds, $this->ldap_context, $filter, $justthese); 47 56 … … 53 62 return $return; 54 63 } 55 56 64 $info = ldap_get_entries($this->ds, $sr); 65 57 66 $tmp = array(); 58 67 for ($i=0; $i<$info["count"]; $i++) … … 60 69 if ($info[$i]["phpgwaccountvisible"][0] == '-1') 61 70 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]; 63 72 } 64 73 natcasesort($tmp); 65 74 66 75 $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; 73 121 } 74 122 } … … 198 246 //Busca usuários de um contexto e já retorna as options do select; 199 247 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 } 246 301 247 302 //Busca usuários de um contexto e já retorna as options do select; … … 331 386 { 332 387 $filter="(&(phpgwAccountType=u)(mail=$email))"; 333 $justthese = array("cn"," telephoneNumber","jpegPhoto");388 $justthese = array("cn","uid","telephoneNumber","jpegPhoto"); 334 389 $sr=ldap_search($this->ds, $this->ldap_context, $filter, $justthese); 335 390 $entry = ldap_first_entry($this->ds, $sr); … … 337 392 $obj = array("cn" => @ldap_get_values($this->ds, $entry, "cn"), 338 393 "email" => $email, 394 "uid" => @ldap_get_values($this->ds, $entry, "uid"), 339 395 "type" => "global", 340 396 "telefone" => @ldap_get_values($this->ds, $entry, "telephonenumber")); -
trunk/expressoMail1_2/index.php
r29 r37 4 4 'nonavbar' => False, 5 5 'currentapp' => 'expressoMail1_2', 6 'update_version' => '1.2031 2',6 'update_version' => '1.20314', 7 7 'enable_nextmatchs_class' => True 8 8 ); … … 68 68 "js/color_palette.js,". 69 69 "js/QuickCatalogSearch.js,". 70 "js/QuickSearchUser.js,". 70 71 "js/preferences.js,". 71 72 "js/search.js,". -
trunk/expressoMail1_2/js/InfoContact.js
r29 r37 3 3 this.email = ""; 4 4 this.timeout = null; 5 this.timeout_hide = null; 5 6 this._mousemove = document.onmousemove; 6 7 this.td; 7 } 8 9 emInfoContact.prototype.begin = function(td,email){ 10 this.td = td; 8 this.createCard(); 9 } 10 11 emInfoContact.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 } 24 emInfoContact.prototype.begin = function(td, email){ 25 11 26 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){ 25 29 this.email = email; 30 this.td = td; 26 31 clearTimeout(this.timeout); 27 32 this.timeout = setTimeout("InfoContact.search('"+email+"')",1000); … … 30 35 31 36 emInfoContact.prototype.label = function (text){ 37 InfoContact.hide(); 32 38 var div_label = Element("div_label"); 33 39 if(!div_label) { … … 45 51 div_label.style.left = findPosX(this.td) + 20; 46 52 div_label.style.display = ''; 53 setTimeout("InfoContact.hide()",1000); 47 54 } 48 55 … … 51 58 var card = Element("card_cc"); 52 59 53 if(card.style.display != '') { 60 //if(card.style.display != '') 61 { 54 62 card.style.left = findPosX(this.td) + 20; 55 63 var y = findPosY(this.td) + 20 - Element("divScrollMain").scrollTop; … … 63 71 if(cn && cn.toString().length > 35) 64 72 cn = cn.toString().substring(0,30) + "..."; 65 73 74 66 75 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'>"+ 67 76 "<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> <u>"+get_lang("Sender's Information")+"</u></font>"+ 69 "<br><br><br><img align='middle' src='templates/default/images/phone.gif'> <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> <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'> <font size=1 color=BLACK>"+(data.telefone ? data.telefone : get_lang("None") )+"</font>"+ 70 80 "</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>"+ 73 83 "</td></tr></table>"; 74 84 85 86 this.timeout_hide = setTimeout("InfoContact.hide()",1000); 75 87 } 76 88 } … … 110 122 Element("card_cc").style.display = "none"; 111 123 } 124 125 emInfoContact.prototype.sendMail = function(name, email){ 126 Element("msg_number").value = "\""+ name+"\" <"+email+">"; 127 InfoContact.hide(); 128 new_message("new","null"); 129 } 130 131 emInfoContact.prototype.openChat = function(event, email){ 132 IM.action_button(event, '1', email ,false); 133 } 134 emInfoContact.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 148 emInfoContact.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 } 112 202 /* Build the Object */ 113 203 var emInfoContact; 114 204 InfoContact = 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 35 35 } 36 36 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; 38 39 } 39 40 // END: FUNCTION RESIZE WINDOW … … 390 391 391 392 function emQuickSearch(emailList, field, ID){ 392 393 393 var quickSearchKeyBegin; 394 394 var quickSearchKeyEnd; 395 395 396 var handler_emQuickSearch = function(data){ 396 var handler_emQuickSearch = function(data) 397 { 397 398 window_DropDownContacts = Element('tipDiv'); 398 399 if (window_DropDownContacts.style.visibility != 'hidden'){ … … 406 407 407 408 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 } 410 419 } 411 420 else … … 413 422 return true; 414 423 } 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 430 445 if (search_for.length < 4){ 431 446 alert(get_lang('Your search argument must be longer than 4 characters.')); -
trunk/expressoMail1_2/js/draw_api.js
r27 r37 410 410 span_T.style.height = "10"; 411 411 span_options.style.fontSize = "12"; 412 span_options.width = "50%";412 // span_options.width = "auto"; 413 413 span_options.innerHTML = 414 414 '<span title="'+get_lang("Delete")+'" style="margin-left:8px" class="message_options" onclick=delete_msgs(\'null\',\'selected\',\'null\')>'+get_lang("Delete")+'</span> | '+ 415 415 '<span title="'+get_lang("Move")+'" class="message_options" onclick=wfolders.makeWindow(\"\",\"move_to\")>'+get_lang("Move")+'</span> | '+ 416 416 '<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>'; 418 425 var span_D = document.createElement("TD"); 419 426 span_R.appendChild(span_D); … … 457 464 "preferences", 458 465 "QuickCatalogSearch", 466 "QuickSearchUser", 459 467 "rich_text_editor", 460 468 "sharemailbox", … … 566 574 } 567 575 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){}}; 570 578 if (headers_msgs.Draft == 'X'){ 571 579 td_element3.innerHTML = "<span style=\"color:red\">("+get_lang("Draft")+") </span>"; … … 676 684 default: 677 685 type_name = get_lang("Date"); 678 sort_box_type = 'SORTARRIVAL';679 686 break; 680 687 } 681 688 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'>"; 683 690 } 684 691 function draw_message(info_msg, ID){ … … 2124 2131 div_address_full.style.display=''; 2125 2132 } 2133 function 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 515 515 textArea.name = "body"; 516 516 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>'; 518 520 var input_folder = document.createElement("INPUT"); 519 521 input_folder.style.display='none'; -
trunk/expressoMail1_2/templates/default/index.tpl
r2 r37 28 28 </table> 29 29 <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"/> 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 33 40 </td> 34 41 -
trunk/expressoMail1_2/templates/default/main.css
r2 r37 409 409 font-weight: bold; 410 410 } 411 412 div.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 423 table.quicksearchcontacts { 424 border-width: 0px 0px 0px 0px; 425 border-spacing: 0px; 426 background-color: white; 427 cursor: default; 428 } 429 430 tr.quicksearchcontacts_unselected { 431 background-color: white; 432 } 433 434 tr.quicksearchcontacts_selected { 435 background-color: #5598d7; 436 color: white; 437 } 438 439 td.quicksearchcontacts_cc { 440 border-style: none; 441 }
Note: See TracChangeset
for help on using the changeset viewer.