Changeset 2758 for branches/2.0/expressoMail1_2
- Timestamp:
- 05/12/10 09:23:03 (14 years ago)
- Location:
- branches/2.0/expressoMail1_2
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.0/expressoMail1_2/inc/class.imap_functions.inc.php
r2740 r2758 3022 3022 3023 3023 function search_msg($params = ''){ 3024 $retorno = "";3025 3024 $mbox_stream = ""; 3026 3025 if(strpos($params['condition'],"#")===false) { //local messages … … 3076 3075 { 3077 3076 foreach($search_criteria as $new_search){ 3078 $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"); 3079 if(!@strstr($retorno,$m_token)) 3080 $retorno .= $m_token; 3077 $elem = $this->get_msg_detail($new_search,$name_box,$mbox_stream); 3078 $elem['boxname'] = mb_convert_encoding( $name_box, "ISO_8859-1", "UTF7-IMAP" ); 3079 $elem['uid'] = $new_search; 3080 $retorno[] = $elem; 3081 3081 } 3082 3082 } … … 3090 3090 { 3091 3091 foreach($search_criteria as $new_search) 3092 $retorno .= trim("##".mb_convert_encoding( $name_box, "ISO_8859-1", "UTF7-IMAP" ) . "--" . $this->get_msg($new_search,$name_box,$mbox_stream) . "--" . $new_search."##"."\n"); 3092 { 3093 $elem = $this->get_msg_detail($new_search,$name_box,$mbox_stream); 3094 $elem['boxname'] = mb_convert_encoding( $name_box, "ISO_8859-1", "UTF7-IMAP" ); 3095 $elem['uid'] = $new_search; 3096 $retorno[] = $elem; 3097 } 3093 3098 } 3094 3099 } … … 3097 3102 if($mbox_stream) 3098 3103 imap_close($mbox_stream); 3099 3100 3104 return $retorno ? $retorno : "none"; 3101 3105 } 3102 3106 3103 function get_msg ($uid_msg,$name_box, $mbox_stream )3107 function get_msg_detail($uid_msg,$name_box, $mbox_stream ) 3104 3108 { 3105 3109 $header = $this->get_header($uid_msg); 3106 include_once("class.imap_attachment.inc.php");3110 require_once("class.imap_attachment.inc.php"); 3107 3111 $imap_attachment = new imap_attachment(); 3108 3112 $attachments = $imap_attachment->get_attachment_headerinfo($mbox_stream, $uid_msg); … … 3121 3125 if($header->from[0]->personal != "") 3122 3126 $from = $header->from[0]->personal; 3123 $ret_msg = $this->decode_string($from) . "--" . $subject . "--". gmdate("d/m/Y",$header ->udate)."--". $this->size_msg($header->Size) ."--". $flag; 3127 $ret_msg['from'] = $this->decode_string($from); 3128 $ret_msg['subject'] = $subject; 3129 $ret_msg['udate'] = $header ->udate; 3130 $ret_msg['size'] = $header->Size; 3131 $ret_msg['flag'] = $flag; 3124 3132 return $ret_msg; 3125 3133 } 3126 3127 function size_msg($size){3128 $var = floor($size/1024);3129 if($var >= 1){3130 return $var." kb";3131 }else{3132 return $size ." b";3133 }3134 }3135 3134 3136 3135 function ob_array($the_object) -
branches/2.0/expressoMail1_2/js/common_functions.js
r2693 r2758 860 860 } 861 861 } 862 863 function borkb(size){ 864 kbyte = 1024; 865 mbyte = kbyte*1024; 866 gbyte = mbyte*1024; 867 if (!size) 868 size = 0; 869 if (size < kbyte) 870 return size + ' B'; 871 else if (size < mbyte) 872 return parseInt(size/kbyte) + ' KB'; 873 else if (size < gbyte) 874 if (size/mbyte > 100) 875 return (size/mbyte).toFixed(0) + ' MB'; 876 else 877 return (size/mbyte).toFixed(1) + ' MB'; 878 else 879 return parseInt(size/gbyte).toFixed(1) + ' GB'; 880 } 881 882 -
branches/2.0/expressoMail1_2/js/search.js
r2606 r2758 139 139 } 140 140 141 //This func returns the most recent date142 function date_comp(a,b)143 {144 var data1 = a.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g);145 data1 = data1[0].substr(0, data1[0].indexOf('--'))146 with ( data1 )147 data1 = Date.UTC(substr(6), substr(3, 2), substr(0, 2));148 var data2 = b.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g);149 data2 = data2[0].substr(0, data2[0].indexOf('--'))150 with ( data2 )151 data2 = Date.UTC(substr(6), substr(3, 2), substr(0, 2));152 return data2 - data1;153 }154 function date_comp_reverse(a,b)155 {156 return date_comp(b,a);157 }158 159 function box_comp(a,b)160 {161 var compare = [];162 compare[0] = a.substr(0, a.indexOf('--'));163 compare[0] = compare[0].toLowerCase();164 var temp=compare[0];165 compare[1] = b.substr(0, b.indexOf('--'))166 compare[1] = compare[1].toLowerCase();167 compare.sort();168 if (temp != compare[0])169 return +1;170 else171 return -1;172 }173 function box_comp_reverse(a,b)174 {175 return box_comp(b,a);176 }177 178 function who_comp(a,b)179 {180 var compare = [];181 compare[0] = a.substr(a.indexOf('--')+2);182 compare[0] = compare[0].toLowerCase();183 var temp=compare[0];184 compare[1] = b.substr(b.indexOf('--')+2);185 compare[1] = compare[1].toLowerCase();186 compare.sort();187 if (temp != compare[0])188 return +1;189 else190 return -1;191 }192 function who_comp_reverse(a,b)193 {194 return who_comp(b,a);195 }196 197 function subject_comp(a,b)198 {199 var compare = [];200 compare[0] = a.substr(a.indexOf('--')+2);201 compare[0] = compare[0].substr(compare[0].indexOf('--')+2);202 compare[0] = compare[0].toLowerCase();203 var temp=compare[0];204 compare[1] = b.substr(b.indexOf('--')+2);205 compare[1] = compare[1].substr(compare[1].indexOf('--')+2);206 compare[1] = compare[1].toLowerCase();207 compare.sort();208 if (temp != compare[0])209 return +1;210 else211 return -1;212 }213 function subject_comp_reverse(a,b)214 {215 return subject_comp(b,a);216 }217 218 function size_comp(a,b)219 {220 var data1 = a.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g);221 data1 = data1[0].substr(data1[0].indexOf('--')+2)222 data1 = data1.substr(0,data1.indexOf('--'))223 var size_a = parseInt(data1.substr(0,data1.indexOf(' ')));224 if (data1.match("k"))225 size_a = size_a * 1024;226 else227 if (data1.match("m"))228 size_a = size_a * 1048576;229 var data2 = b.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g);230 data2 = data2[0].substr(data2[0].indexOf('--')+2)231 data2 = data2.substr(0,data2.indexOf('--'))232 var size_b = parseInt(data2.substr(0,data2.indexOf(' ')));233 if (data2.match("k"))234 size_b = size_b * 1024;235 else236 if (data2.match("m"))237 size_b = size_b * 1048576;238 return size_b - size_a;239 }240 function size_comp_reverse(a,b)241 {242 return size_comp(b,a);243 }244 245 141 // Form resultado 246 142 searchE.prototype.mount_result = function(data,sort_type){ 247 var nw_array = new Array; 248 var var_tmp = data.substr(2, data.length - 4); 249 var_tmp = var_tmp.split("####"); 143 if (data == undefined) 144 return; 250 145 var cont = parseInt(0); 146 147 //This func returns the comparison between criterias 148 var date_comp = function(a,b){ return a.udate > b.udate;}; 149 var date_comp_reverse = function(a,b){ return date_comp(b,a);}; 150 var box_comp = function(a,b){ return a.boxname > b.boxname; } 151 var box_comp_reverse = function(a,b){ return box_comp(b,a); } 152 var who_comp = function(a,b){ return a.from > b.from; } 153 var who_comp_reverse = function(a,b){ return who_comp(b,a); } 154 var subject_comp = function(a,b){ return a.subject > b.subject; } 155 var subject_comp_reverse = function(a,b){ return subject_comp(b,a); } 156 var size_comp = function(a,b){ return a.size > b.size; } 157 var size_comp_reverse = function(a,b){ return size_comp(b,a); } 158 251 159 switch (sort_type) 252 160 { 253 161 case 'SORTDATE': 254 var_tmp.sort(date_comp);162 data.sort(date_comp); 255 163 break; 256 164 case 'SORTDATE_REVERSE': 257 var_tmp.sort(date_comp_reverse);165 data.sort(date_comp_reverse); 258 166 break; 259 167 case 'SORTBOX': 260 var_tmp.sort(box_comp);168 data.sort(box_comp); 261 169 break; 262 170 case 'SORTBOX_REVERSE': 263 var_tmp.sort(box_comp_reverse);171 data.sort(box_comp_reverse); 264 172 break; 265 173 case 'SORTSUBJECT': 266 var_tmp.sort(subject_comp);174 data.sort(subject_comp); 267 175 break; 268 176 case 'SORTSUBJECT_REVERSE': 269 var_tmp.sort(subject_comp_reverse);177 data.sort(subject_comp_reverse); 270 178 break; 271 179 case 'SORTWHO': 272 var_tmp.sort(who_comp);180 data.sort(who_comp); 273 181 break; 274 182 case 'SORTWHO_REVERSE': 275 var_tmp.sort(who_comp_reverse);183 data.sort(who_comp_reverse); 276 184 break; 277 185 case 'SORTSIZE': 278 var_tmp.sort(size_comp);186 data.sort(size_comp); 279 187 break; 280 188 case 'SORTSIZE_REVERSE': 281 var_tmp.sort(size_comp_reverse);189 data.sort(size_comp_reverse); 282 190 break; 283 191 default: … … 285 193 } 286 194 287 for(var i=0; i < var_tmp.length; i++){ 288 if(var_tmp[i] != "") 289 { 290 nw_array[cont] = var_tmp[i]; 291 cont++; 292 } 293 } 294 if(nw_array.length > 0 && showMsg) 295 write_msg(nw_array.length + " "+ get_lang('results found')); 195 if(data.length > 0 && showMsg) 196 write_msg(data.length + " "+ get_lang('results found')); 296 197 numBox++; 297 198 var border_id = create_border(get_lang("Search Results"), "search_" + numBox); … … 313 214 tbody.id = "tbody_box_" + numBox; 314 215 315 for( var i=0; i < nw_array.length; i++){216 for( var i=0; i < data.length; i++){ 316 217 var tr = document.createElement("TR"); 317 218 tr.style.height = preferences.line_height; 318 319 if (nw_array[i].match(/.*--.*--\w*--\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g) != null) //subject with "--" 320 { 321 var aux1 = nw_array[i].match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g); 322 aux1 = aux1[0].split("--"); 323 nw_array[i] = nw_array[i].substr(0, nw_array[i].indexOf(aux1[0])-2); 324 var aux = []; 325 aux[0] = nw_array[i].substr(0, nw_array[i].indexOf('--')); 326 nw_array[i] = nw_array[i].substr(nw_array[i].indexOf('--')+2); 327 aux[1] = nw_array[i].substr(0, nw_array[i].indexOf('--')); 328 aux[2] = nw_array[i].substr(nw_array[i].indexOf('--')+2); 329 aux = aux.concat(aux1); 330 } 331 else 332 { 333 var aux = nw_array[i].split("--"); 334 } 335 336 var mailbox = aux[0]; 337 var uid_msg = aux[6]; 338 var subject = aux[2]; 219 var aux = data[i]; 220 var mailbox = aux.boxname; 221 var uid_msg = aux.uid; 222 var subject = aux.subject; 339 223 tr.id = uid_msg; 340 224 … … 343 227 tr.name = mailbox; 344 228 345 if (aux [5].match("U"))229 if (aux.flag.match("U")) 346 230 add_className(tr,'tr_msg_unread'); 347 231 add_className(tr, i%2 != 0 ? 'tr_msg_read2' : 'tr_msg_read'); … … 354 238 td.style.width = "1%"; 355 239 var td1 = '<input type="checkbox" id="check_box_message_'+uid_msg+'"></input>'; 356 357 240 } 358 241 if (j == 1) 359 242 { 360 243 td.style.width = "2%"; 361 if (aux [5].match('T'))244 if (aux.flag.match('T')) 362 245 { 363 attachNum = parseInt(aux [5].substr(aux[5].indexOf('T')+1));246 attachNum = parseInt(aux.flag.substr(aux.flag.indexOf('T')+1)); 364 247 td1 = "<img src='templates/"+template+"/images/clip.gif' title='"+attachNum +' '+ get_lang('attachment(s)')+"'>"; 365 248 } … … 371 254 td.style.width = "1%"; 372 255 td.id = "td_message_answered_"+uid_msg; 373 if (aux [5].match('X'))256 if (aux.flag.match('X')) 374 257 td1 = '<img src=templates/'+template+'/images/forwarded.gif title=Forwarded>'; 375 258 else 376 if (aux [5].match('A'))259 if (aux.flag.match('A')) 377 260 td1 = '<img src=templates/'+template+'/images/answered.gif>'; 378 261 else … … 383 266 td.style.width = "1%"; 384 267 td.id = "td_message_important_"+uid_msg; 385 if (aux [5].match("F"))268 if (aux.flag.match("F")) 386 269 { 387 270 add_className(tr, 'flagged_msg'); … … 401 284 td.style.width = "14%"; 402 285 td.onclick = _onclick; 403 var nm_box = aux [0].split(cyrus_delimiter);286 var nm_box = aux.boxname.split(cyrus_delimiter); 404 287 var td1 = nm_box.pop(); 405 288 td.setAttribute("NoWrap","true"); … … 418 301 if( j == 6) 419 302 { 420 if (aux [1].length > 29)421 aux [1] = aux[1].substr(0,29) + "...";303 if (aux.from.length > 29) 304 aux.from = aux.from.substr(0,29) + "..."; 422 305 td.style.width = "20%"; 423 306 td.onclick = _onclick; 424 307 td.setAttribute("NoWrap","true"); 425 308 td.style.overflow = "hidden"; 426 var td1 = '<div style="width:100%;overflow:hidden">'+aux [1]+"</div>";309 var td1 = '<div style="width:100%;overflow:hidden">'+aux.from+"</div>"; 427 310 } 428 311 if( j == 7) … … 430 313 var subject_encode = url_encode(subject); 431 314 if (! subject_encode) 432 aux [2]= get_lang("no subject") + "...";433 if (aux [2].length > 70)434 aux [2] = aux[2].substr(0,70) + "...";315 aux.subject = get_lang("no subject") + "..."; 316 if (aux.subject.length > 70) 317 aux.subject = aux.subject.substr(0,70) + "..."; 435 318 td.style.width = "35%"; 436 319 td.onclick = _onclick; 437 320 td.setAttribute("NoWrap","true"); 438 321 td.style.overflow = "hidden"; 439 var td1 = aux [2];322 var td1 = aux.subject; 440 323 441 324 } … … 445 328 td.align = "center"; 446 329 td.onclick = _onclick; 447 var td1 = aux[3]; 330 var _dat = new Date(aux.udate*1000); 331 var td1 = _dat.getDate()+"/"+_dat.getMonth()+"/"+_dat.getFullYear(); 448 332 } 449 333 if( j == 9) … … 452 336 td.align = "center"; 453 337 td.onclick = _onclick; 454 var td1 = aux[4];338 var td1 = borkb(aux.size); 455 339 } 456 340 if (j == 10) 457 341 { 458 if (aux [5].match("U"))342 if (aux.flag.match("U")) 459 343 add_className(tr, 'tr_msg_unread'); 460 if (aux [5].match("F"))344 if (aux.flag.match("F")) 461 345 add_className(tr, 'flagged_msg'); 462 346 var td1 = ''; … … 763 647 var handler = function(data){ 764 648 var tmp; 765 var countTmp= new Array();766 649 if (local_folders.length > 0) { 767 650 tmp = expresso_local_messages.search(local_folders, fields); 768 651 if (tmp!=false) { 769 652 var tmp2 = tmp.substr(2, data.length - 4); 770 countTmp = tmp.split('####'); 771 } 772 } 773 if((data == "none") && (countTmp.length==0)){alert(get_lang("None result was found."));} 774 else if(countTmp.length > 50){alert(get_lang("More than %1 results. Please, try to refine your search.",50));} 653 } 654 } 655 if((data == "none") || (data.length==0)){alert(get_lang("None result was found."));} 656 else if(data.length > 50){alert(get_lang("More than %1 results. Please, try to refine your search.",50));} 775 657 else if(data == "many results"){alert(get_lang("More than %1 results. Please, try to refine your search.",50));} 776 else{EsearchE.mount_result( (data=='none')?tmp:(countTmp.length==0)?data:data+tmp);}658 else{EsearchE.mount_result(data);} 777 659 } 778 660 var args = "$this.imap_functions.search_msg";
Note: See TracChangeset
for help on using the changeset viewer.