Changeset 2761
- Timestamp:
- 05/12/10 17:11:46 (14 years ago)
- Location:
- trunk/expressoMail1_2
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/inc/class.imap_functions.inc.php
r2747 r2761 3309 3309 3310 3310 function search_msg($params = ''){ 3311 $retorno = "";3312 3311 $mbox_stream = ""; 3313 3312 if(strpos($params['condition'],"#")===false) { //local messages … … 3374 3373 } 3375 3374 3376 if (preg_match("/^.?\bALL\b/", $filter)) 3377 { // Quick Search, note: this ALL isn't the same ALL from imap_search 3378 3379 $all_criterias = array ("TO","SUBJECT","FROM","CC"); 3380 foreach($all_criterias as $criteria_fixed) 3381 { 3382 $_filter = $criteria_fixed . substr($filter,4); 3383 3384 $search_criteria = imap_search($mbox_stream, $_filter, SE_UID); 3385 3386 if($search_criteria) //&& count($search_criteria) < 50) 3387 { 3388 foreach($search_criteria as $new_search) 3389 { 3390 if ($search_result_number != '65536' && $sum == $search_result_number) 3391 { 3392 return $retorno ? $sum . "=sumResults=" . $retorno : "none"; 3393 } 3394 3395 $m_token = trim("##".mb_convert_encoding( $name_box, "ISO_8859-1", "UTF7-IMAP" ) . "--" . $this->get_msg($new_search,$name_box,$mbox_stream) . "--".$new_search."##"."\n"); 3396 if(!@strstr($retorno,$m_token)) 3397 { 3398 $retorno .= $m_token; 3399 $sum ++; 3400 } 3401 } 3402 } 3403 } 3404 } 3405 else { 3406 $search_criteria = imap_search($mbox_stream, $filter, SE_UID); 3407 if( is_array( $search_criteria) ) 3408 { 3409 foreach($search_criteria as $new_search) 3410 { 3411 if ($search_result_number != '65536' && $sum == $search_result_number) 3412 { 3413 return $retorno ? $sum . "=sumResults=" . $retorno : "none"; 3414 } 3415 $retorno .= trim("##".mb_convert_encoding( $name_box, "ISO_8859-1", "UTF7-IMAP" ) . "--" . $this->get_msg($new_search,$name_box,$mbox_stream) . "--" . $new_search."##"."\n"); 3416 $sum++; 3417 } 3418 } 3419 } 3420 } 3421 } 3375 if (preg_match("/^.?\bALL\b/", $filter)) 3376 { // Quick Search, note: this ALL isn't the same ALL from imap_search 3377 3378 $all_criterias = array ("TO","SUBJECT","FROM","CC"); 3379 foreach($all_criterias as $criteria_fixed) 3380 { 3381 $_filter = $criteria_fixed . substr($filter,4); 3382 3383 $search_criteria = imap_search($mbox_stream, $_filter, SE_UID); 3384 3385 if($search_criteria) //&& count($search_criteria) < 50) 3386 { 3387 foreach($search_criteria as $new_search) 3388 { 3389 if ($search_result_number != '65536' && $sum == $search_result_number) 3390 { 3391 return $retorno['sum'] = $sum; 3392 } 3393 $elem = $this->get_msg_detail($new_search,$name_box,$mbox_stream); 3394 $elem['boxname'] = mb_convert_encoding( $name_box, "ISO_8859-1", "UTF7-IMAP" ); 3395 $elem['uid'] = $new_search; 3396 $retorno[] = $elem; 3397 $sum ++; 3398 3399 } 3400 } 3401 } 3402 } 3403 else { 3404 $search_criteria = imap_search($mbox_stream, $filter, SE_UID); 3405 if( is_array( $search_criteria) ) 3406 { 3407 foreach($search_criteria as $new_search) 3408 { 3409 if ($search_result_number != '65536' && $sum == $search_result_number) 3410 { 3411 return $retorno['sum'] = $sum; 3412 } 3413 $elem = $this->get_msg_detail($new_search,$name_box,$mbox_stream); 3414 $elem['boxname'] = mb_convert_encoding( $name_box, "ISO_8859-1", "UTF7-IMAP" ); 3415 $elem['uid'] = $new_search; 3416 $retorno[] = $elem; 3417 $sum++; 3418 } 3419 } 3420 } 3421 } 3422 } 3422 3423 if($mbox_stream) 3423 3424 { … … 3435 3436 } 3436 3437 3437 function get_msg ($uid_msg,$name_box, $mbox_stream )3438 function get_msg_detail($uid_msg,$name_box, $mbox_stream ) 3438 3439 { 3439 3440 $header = $this->get_header($uid_msg); 3440 include_once("class.imap_attachment.inc.php");3441 require_once("class.imap_attachment.inc.php"); 3441 3442 $imap_attachment = new imap_attachment(); 3442 3443 $attachments = $imap_attachment->get_attachment_headerinfo($mbox_stream, $uid_msg); … … 3455 3456 if($header->from[0]->personal != "") 3456 3457 $from = $header->from[0]->personal; 3457 $ret_msg = $this->decode_string($from) . "--" . $subject . "--". gmdate("d/m/Y",$header ->udate)."--". $this->size_msg($header->Size) ."--". $flag; 3458 $ret_msg['from'] = $this->decode_string($from); 3459 $ret_msg['subject'] = $subject; 3460 $ret_msg['udate'] = $header ->udate; 3461 $ret_msg['size'] = $header->Size; 3462 $ret_msg['flag'] = $flag; 3458 3463 return $ret_msg; 3459 }3460 3461 function size_msg($size){3462 $var = floor($size/1024);3463 if($var >= 1){3464 return $var." kb";3465 }else{3466 return $size ." b";3467 }3468 3464 } 3469 3465 -
trunk/expressoMail1_2/js/jscode/search.js
r2519 r2761 203 203 ttree.make_tree(folders,"div_folders_search","_folders_tree_search","","","",""); 204 204 } 205 206 //This func returns the most recent date207 function date_comp(a,b)208 {209 var data1 = a.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g);210 data1 = data1[0].substr(0, data1[0].indexOf('--'))211 with ( data1 )212 data1 = Date.UTC(substr(6), substr(3, 2), substr(0, 2));213 var data2 = b.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g);214 data2 = data2[0].substr(0, data2[0].indexOf('--'))215 with ( data2 )216 data2 = Date.UTC(substr(6), substr(3, 2), substr(0, 2));217 return data2 - data1;218 }219 function date_comp_reverse(a,b)220 {221 return date_comp(b,a);222 }223 224 function box_comp(a,b)225 {226 var compare = [];227 compare[0] = a.substr(0, a.indexOf('--'));228 compare[0] = compare[0].toLowerCase();229 var temp=compare[0];230 compare[1] = b.substr(0, b.indexOf('--'))231 compare[1] = compare[1].toLowerCase();232 compare.sort();233 if (temp != compare[0])234 return +1;235 else236 return -1;237 }238 function box_comp_reverse(a,b)239 {240 return box_comp(b,a);241 }242 243 function who_comp(a,b)244 {245 var compare = [];246 compare[0] = a.substr(a.indexOf('--')+2);247 compare[0] = compare[0].toLowerCase();248 var temp=compare[0];249 compare[1] = b.substr(b.indexOf('--')+2);250 compare[1] = compare[1].toLowerCase();251 compare.sort();252 if (temp != compare[0])253 return +1;254 else255 return -1;256 }257 function who_comp_reverse(a,b)258 {259 return who_comp(b,a);260 }261 262 function subject_comp(a,b)263 {264 var compare = [];265 compare[0] = a.substr(a.indexOf('--')+2);266 compare[0] = compare[0].substr(compare[0].indexOf('--')+2);267 compare[0] = compare[0].toLowerCase();268 var temp=compare[0];269 compare[1] = b.substr(b.indexOf('--')+2);270 compare[1] = compare[1].substr(compare[1].indexOf('--')+2);271 compare[1] = compare[1].toLowerCase();272 compare.sort();273 if (temp != compare[0])274 return +1;275 else276 return -1;277 }278 function subject_comp_reverse(a,b)279 {280 return subject_comp(b,a);281 }282 283 function size_comp(a,b)284 {285 var data1 = a.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g);286 data1 = data1[0].substr(data1[0].indexOf('--')+2)287 data1 = data1.substr(0,data1.indexOf('--'))288 var size_a = parseInt(data1.substr(0,data1.indexOf(' ')));289 if (data1.match("k"))290 size_a = size_a * 1024;291 else292 if (data1.match("m"))293 size_a = size_a * 1048576;294 var data2 = b.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g);295 data2 = data2[0].substr(data2[0].indexOf('--')+2)296 data2 = data2.substr(0,data2.indexOf('--'))297 var size_b = parseInt(data2.substr(0,data2.indexOf(' ')));298 if (data2.match("k"))299 size_b = size_b * 1024;300 else301 if (data2.match("m"))302 size_b = size_b * 1048576;303 return size_b - size_a;304 }305 function size_comp_reverse(a,b)306 {307 return size_comp(b,a);308 }309 205 310 206 // Form resultado 311 207 searchE.prototype.mount_result = function(data,sort_type){ 312 var nw_array = new Array; 313 var var_tmp = data.substr(2, data.length - 4); 314 var_tmp = var_tmp.split("####"); 208 if (data == undefined) 209 return; 315 210 var cont = parseInt(0); 211 //This func returns the comparison between criterias 212 var date_comp = function(a,b){ return a.udate > b.udate;}; 213 var date_comp_reverse = function(a,b){ return date_comp(b,a);}; 214 var box_comp = function(a,b){ return a.boxname > b.boxname; } 215 var box_comp_reverse = function(a,b){ return box_comp(b,a); } 216 var who_comp = function(a,b){ return a.from > b.from; } 217 var who_comp_reverse = function(a,b){ return who_comp(b,a); } 218 var subject_comp = function(a,b){ return a.subject > b.subject; } 219 var subject_comp_reverse = function(a,b){ return subject_comp(b,a); } 220 var size_comp = function(a,b){ return a.size > b.size; } 221 var size_comp_reverse = function(a,b){ return size_comp(b,a); } 316 222 switch (sort_type) 317 223 { 318 224 case 'SORTDATE': 319 var_tmp.sort(date_comp);225 data.sort(date_comp); 320 226 break; 321 227 case 'SORTDATE_REVERSE': 322 var_tmp.sort(date_comp_reverse);228 data.sort(date_comp_reverse); 323 229 break; 324 230 case 'SORTBOX': 325 var_tmp.sort(box_comp);231 data.sort(box_comp); 326 232 break; 327 233 case 'SORTBOX_REVERSE': 328 var_tmp.sort(box_comp_reverse);234 data.sort(box_comp_reverse); 329 235 break; 330 236 case 'SORTSUBJECT': 331 var_tmp.sort(subject_comp);237 data.sort(subject_comp); 332 238 break; 333 239 case 'SORTSUBJECT_REVERSE': 334 var_tmp.sort(subject_comp_reverse);240 data.sort(subject_comp_reverse); 335 241 break; 336 242 case 'SORTWHO': 337 var_tmp.sort(who_comp);243 data.sort(who_comp); 338 244 break; 339 245 case 'SORTWHO_REVERSE': 340 var_tmp.sort(who_comp_reverse);246 data.sort(who_comp_reverse); 341 247 break; 342 248 case 'SORTSIZE': 343 var_tmp.sort(size_comp);249 data.sort(size_comp); 344 250 break; 345 251 case 'SORTSIZE_REVERSE': 346 var_tmp.sort(size_comp_reverse);252 data.sort(size_comp_reverse); 347 253 break; 348 254 default: … … 350 256 } 351 257 352 for(var i=0; i < var_tmp.length; i++){ 353 if(var_tmp[i] != "") 354 { 355 nw_array[cont] = var_tmp[i]; 356 cont++; 357 } 358 } 359 360 if( (preferences.search_result_number != '65536') && (nw_array.length > 0) && (nw_array.length >= preferences.search_result_number) ){ 361 nw_array.length = preferences.search_result_number; 258 if( (preferences.search_result_number != '65536') && (data.length > 0) && (data.length >= preferences.search_result_number) ){ 259 data.length = preferences.search_result_number; 362 260 write_msg(get_lang("More than %1 results. Please, try to refine your search.",preferences.search_result_number)); 363 261 } 364 262 else { 365 write_msg( nw_array.length + " "+ get_lang('results found'));263 write_msg(data.length + " "+ get_lang('results found')); 366 264 } 367 265 … … 386 284 tbody.id = "tbody_box_" + numBox; 387 285 388 for( var i=0; i < nw_array.length; i++){286 for( var i=0; i < data.length; i++){ 389 287 var tr = document.createElement("TR"); 390 288 tr.style.height = preferences.line_height; 391 289 392 if (nw_array[i].match(/.*--.*--\w*--\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g) != null) //subject with "--" 393 { 394 var aux1 = nw_array[i].match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g); 395 aux1 = aux1[0].split("--"); 396 nw_array[i] = nw_array[i].substr(0, nw_array[i].indexOf(aux1[0])-2); 397 var aux = []; 398 aux[0] = nw_array[i].substr(0, nw_array[i].indexOf('--')); 399 nw_array[i] = nw_array[i].substr(nw_array[i].indexOf('--')+2); 400 aux[1] = nw_array[i].substr(0, nw_array[i].indexOf('--')); 401 aux[2] = nw_array[i].substr(nw_array[i].indexOf('--')+2); 402 aux = aux.concat(aux1); 403 } 404 else 405 { 406 var aux = nw_array[i].split("--"); 407 } 408 409 var mailbox = aux[0]; 410 var uid_msg = aux[6]; 411 var subject = aux[2]; 290 var aux = data[i]; 291 var mailbox = aux.boxname; 292 var uid_msg = aux.uid; 293 var subject = aux.subject; 412 294 tr.id = uid_msg+"_s"+global_search; 413 295 … … 416 298 tr.name = mailbox; 417 299 418 if (aux [5].match("U"))300 if (aux.flag.match("U")) 419 301 add_className(tr,'tr_msg_unread'); 420 302 add_className(tr, i%2 != 0 ? 'tr_msg_read2' : 'tr_msg_read'); … … 432 314 { 433 315 td.style.width = "2%"; 434 if (aux [5].match('T'))316 if (aux.flag.match('T')) 435 317 { 436 attachNum = parseInt(aux [5].substr(aux[5].indexOf('T')+1));318 attachNum = parseInt(aux.flag.substr(aux.flag.indexOf('T')+1)); 437 319 td1 = "<img src='templates/"+template+"/images/clip.gif' title='"+attachNum +' '+ get_lang('attachment(s)')+"'>"; 438 320 } … … 444 326 td.style.width = "1%"; 445 327 td.id = "td_message_answered_"+uid_msg; 446 if (aux [5].match('X'))328 if (aux.flag.match('X')) 447 329 td1 = '<img src=templates/'+template+'/images/forwarded.gif title=Forwarded>'; 448 330 else 449 if (aux [5].match('A'))331 if (aux.flag.match('A')) 450 332 td1 = '<img src=templates/'+template+'/images/answered.gif>'; 451 333 else … … 456 338 td.style.width = "1%"; 457 339 td.id = "td_message_important_"+uid_msg; 458 if (aux [5].match("F"))340 if (aux.flag.match("F")) 459 341 { 460 342 add_className(tr, 'flagged_msg'); … … 474 356 td.style.width = "14%"; 475 357 td.onclick = _onclick; 476 var nm_box = aux [0].split(cyrus_delimiter);358 var nm_box = aux.boxname.split(cyrus_delimiter); 477 359 var td1 = nm_box.pop(); 478 360 td.setAttribute("NoWrap","true"); … … 493 375 if( j == 6) 494 376 { 495 if (aux [1].length > 29)496 aux [1] = aux[1].substr(0,29) + "...";377 if (aux.from.length > 29) 378 aux.from = aux.from.substr(0,29) + "..."; 497 379 td.style.width = "20%"; 498 380 td.onclick = _onclick; 499 381 td.setAttribute("NoWrap","true"); 500 382 td.style.overflow = "hidden"; 501 var td1 = '<div style="width:100%;overflow:hidden">'+aux [1]+"</div>";383 var td1 = '<div style="width:100%;overflow:hidden">'+aux.from+"</div>"; 502 384 } 503 385 if( j == 7) … … 505 387 var subject_encode = url_encode(subject); 506 388 if (! subject_encode) 507 aux [2]= get_lang("no subject") + "...";508 if (aux [2].length > 70)509 aux [2] = aux[2].substr(0,70) + "...";389 aux.subject = get_lang("no subject") + "..."; 390 if (aux.subject.length > 70) 391 aux.subject = aux.subject.substr(0,70) + "..."; 510 392 td.style.width = "35%"; 511 393 td.onclick = _onclick; 512 394 td.setAttribute("NoWrap","true"); 513 395 td.style.overflow = "hidden"; 514 var td1 = aux [2];396 var td1 = aux.subject; 515 397 516 398 } … … 520 402 td.align = "center"; 521 403 td.onclick = _onclick; 522 var td1 = aux[3]; 404 var _dat = new Date(aux.udate*1000); 405 var td1 = _dat.getDate()+"/"+_dat.getMonth()+"/"+_dat.getFullYear(); 523 406 } 524 407 if( j == 9) … … 527 410 td.align = "center"; 528 411 td.onclick = _onclick; 529 var td1 = aux[4];412 var td1 = borkb(aux.size); 530 413 } 531 414 if (j == 10) 532 415 { 533 if (aux [5].match("U"))416 if (aux.flag.match("U")) 534 417 add_className(tr, 'tr_msg_unread'); 535 if (aux [5].match("F"))418 if (aux.flag.match("F")) 536 419 add_className(tr, 'flagged_msg'); 537 420 var td1 = ''; … … 923 806 var handler = function(data){ 924 807 var tmp; 925 var countTmp= new Array();926 927 var dataTemp = data.split('=sumResults=');928 var sumResults = dataTemp[0];929 930 var data = dataTemp[1] ? dataTemp[1] : dataTemp[0];931 932 808 if (local_folders.length > 0) { 933 809 tmp = expresso_local_messages.search(local_folders, fields); 934 810 if (tmp!=false) { 935 811 var tmp2 = tmp.substr(2, data.length - 4); 936 countTmp = tmp.split('####');937 812 } 938 813 } … … 947 822 // } 948 823 949 if (( sumResults == "none") && (countTmp.length==0)){824 if ((data == "none") || (data.length==0)){ 950 825 alert(get_lang("None result was found.")); 951 826 } 952 827 else 953 828 { 954 EsearchE.mount_result( (sumResults=='none')?tmp:(countTmp.length==0)?data:data+tmp);829 EsearchE.mount_result(data); 955 830 } 956 831
Note: See TracChangeset
for help on using the changeset viewer.