Changeset 2676 for trunk/expressoMail1_2/js/jscode/draw_api_folders.js
- Timestamp:
- 04/30/10 15:40:28 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/js/jscode/draw_api_folders.js
r2642 r2676 6 6 7 7 function draw_quota(data){ 8 build_quota(data); 9 } 10 11 function update_quota(folder_id){ 12 cExecute ("expressoMail1_2.imap_functions.get_quota&folder_id="+folder_id,build_quota); 13 } 14 15 function draw_search(headers_msgs){ 16 Element("border_id_0").innerHTML = " " + get_lang('Search Result') + " "; 17 18 var tbody = Element('tbody_box'); 19 for (var i=0; i<(headers_msgs.length); i++){ 20 var tr = this.make_tr_message(headers_msgs[i], headers_msgs[i].msg_folder); 21 if (tr) 22 tbody.appendChild(tr); 23 } 24 } 25 26 function draw_search_header_box(){ 27 var table_message_header_box = Element("table_message_header_box"); 28 table_message_header_box.parentNode.removeChild(table_message_header_box); 29 30 var content_id_0 = Element("content_id_0"); 31 var table_element = document.createElement("TABLE"); 32 var tbody_element = document.createElement("TBODY"); 33 table_element.setAttribute("id", "table_message_header_box"); 34 table_element.className = "table_message_header_box"; 35 tr_element = document.createElement("TR"); 36 tr_element.className = "message_header"; 37 td_element1 = document.createElement("TD"); 38 td_element1.setAttribute("width", "1%"); 39 chk_box_element = document.createElement("INPUT"); 40 chk_box_element.id = "chk_box_select_all_messages"; 41 chk_box_element.setAttribute("type", "checkbox"); 42 chk_box_element.className = "checkbox"; 43 chk_box_element.onclick = function(){ 44 select_all_messages(this.checked); 45 }; 46 chk_box_element.onmouseover = function () { 47 this.title=get_lang('Select all messages.') 48 }; 49 chk_box_element.onkeydown = function (e){ 50 if (is_ie) 51 { 52 if ((window.event.keyCode) == 46) 53 { 54 //delete_all_selected_msgs_imap(); 55 proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); 56 } 57 } 58 else 59 { 60 if ((e.keyCode) == 46) 61 { 62 //delete_all_selected_msgs_imap(); 63 proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); 64 } 65 } 66 }; 67 68 td_element1.appendChild(chk_box_element); 69 td_element2 = document.createElement("TD"); 70 td_element2.setAttribute("width", "3%"); 71 td_element3 = document.createElement("TD"); 72 td_element3.setAttribute("width", "30%"); 73 td_element3.id = "message_header_SORTFROM"; 74 td_element3.align = "left"; 75 td_element3.innerHTML = get_lang("From"); 76 td_element4 = document.createElement("TD"); 77 td_element4.setAttribute("width", "49%"); 78 td_element4.id = "message_header_SORTSUBJECT"; 79 td_element4.align = "left"; 80 td_element4.innerHTML = get_lang("Subject"); 81 td_element5 = document.createElement("TD"); 82 td_element5.setAttribute("width", "10%"); 83 td_element5.id = "message_header_SORTARRIVAL"; 84 td_element5.align = "center"; 85 td_element5.innerHTML = "<B>"+get_lang("Date")+"</B>"; 86 td_element5.innerHTML += '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/arrow_descendant.gif">'; 87 td_element6 = document.createElement("TD"); 88 td_element6.setAttribute("width", "10%"); 89 td_element6.id = "message_header_SORTSIZE"; 90 td_element6.align = "right"; 91 td_element6.innerHTML = get_lang("Size"); 92 tr_element.appendChild(td_element1); 93 tr_element.appendChild(td_element2); 94 tr_element.appendChild(td_element3); 95 tr_element.appendChild(td_element4); 96 tr_element.appendChild(td_element5); 97 tr_element.appendChild(td_element6); 98 99 tbody_element.appendChild(tr_element); 100 table_element.appendChild(tbody_element); 101 content_id_0.appendChild(table_element); 102 } 103 104 function draw_search_division(msg){ 105 var tbody = Element('tbody_box'); 106 var tr = document.createElement("TR"); 107 var td = document.createElement("TD"); 108 td.colSpan = '7'; 109 td.width = '100%'; 110 111 var action_info_table = document.createElement("TABLE"); 112 var action_info_tbody = document.createElement("TBODY"); 113 114 action_info_table.className = "action_info_table"; 115 action_info_table.width = "100%"; 116 117 var action_info_tr = document.createElement("TR"); 118 119 var action_info_th1 = document.createElement("TH"); 120 action_info_th1.width = "40%"; 121 action_info_th1.innerHTML = " "; 122 123 var action_info_th2 = document.createElement("TH"); 124 125 action_info_th2.innerHTML = msg; 126 action_info_th2.className = "action_info_th"; 127 action_info_th2.setAttribute("noWrap", "true"); 128 129 var action_info_th3 = document.createElement("TH"); 130 action_info_th3.width = "40%"; 131 action_info_th3.innerHTML = " "; 132 133 action_info_tr.appendChild(action_info_th1); 134 action_info_tr.appendChild(action_info_th2); 135 action_info_tr.appendChild(action_info_th3); 136 action_info_tbody.appendChild(action_info_tr); 137 action_info_table.appendChild(action_info_tbody); 138 139 td.appendChild(action_info_table); 140 tr.appendChild(td); 141 tbody.appendChild(tr); 142 } 143 144 function draw_search_box(){ 145 var content_id_0 = Element("content_id_0"); 146 var table = document.createElement("TABLE"); 147 table.id = "table_box"; 148 table.width = 'auto'; 149 var tbody = document.createElement("TBODY"); 150 tbody.id = "tbody_box"; 151 152 table.className = "table_box"; 153 table.setAttribute("frame", "below"); 154 table.setAttribute("rules", "none"); 155 table.setAttribute("cellpadding", "0"); 156 table.onkeydown = function (e){ 157 if (is_ie) 158 { 159 if ((window.event.keyCode) == 46) 160 { 161 //delete_all_selected_msgs_imap(); 162 proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); 163 } 164 } 165 else 166 { 167 if ((e.keyCode) == 46) 168 { 169 //delete_all_selected_msgs_imap(); 170 proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); 171 } 172 } 173 }; 174 if (is_ie) 175 table.style.cursor = "hand"; 176 177 table.appendChild(tbody); 178 content_id_0.appendChild(table); 179 } 180 var idx_cc = 0; 181 function draw_plugin_cc(ID, addrs) 182 { 183 expresso.connector.loadScript("jscode/ccQuickAdd"); 184 185 var array_addrs = ''; 186 var array_name = ''; 187 var cc_data = new Array(); 188 if(typeof(addrs.name) != 'undefined') { 189 array_name = LTrim(addrs.name).split(" "); 190 array_addrs = new Array(addrs.email); 191 } 192 else { 193 array_addrs = (typeof addrs == 'object' ? addrs.toString().split("\" ") : addrs.split("\" ")); 194 array_name = LTrim(array_addrs[0]).replace('"','').split(" "); 195 } 196 197 var _split = array_name[0].split('@'); 198 cc_data[0] = _split[0]; 199 cc_data[1] = _split[0]; 200 cc_data[2] = ''; 201 202 for (i=1; i < array_name.length; i++) 203 cc_data[2] += array_name[i] + " "; 204 205 206 if(array_addrs.length > 1) 207 cc_data[3] = array_addrs[1] ? array_addrs[1].replace("<",'').replace(">",'') : ''; 208 else 209 cc_data[3] = array_addrs[0]; 210 211 var sm_envelope_img1 = '<img style="cursor:'+ (is_ie ? 'hand' : 'pointer') +'" title="' + get_lang("Add Contact") + 212 '" onclick="ccQuickAddOne.showList(\''+cc_data+'\')" src="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/user_card.png">'; 213 var to_addybook_add = "<SPAN id='insert_plugin_"+idx_cc+"_"+ID+"'>"; 214 to_addybook_add += addrs; 215 to_addybook_add += sm_envelope_img1; 216 idx_cc++; 217 to_addybook_add += "</SPAN>"; 218 return to_addybook_add; 219 } 220 221 function build_quota(data){ 222 id = "content_quota"; 223 q_limit = data['quota_limit']; 224 var div = document.getElementById(id); 225 if(!q_limit){ 226 div.innerHTML = '<span><font size="2" style="color:red"><strong>'+get_lang("Without Quota")+'</strong></font></span>'; 227 } 228 else{ 229 if(div) 230 { 231 div.innerHTML = ''; 232 value = data['quota_percent']; 233 q_used = data['quota_used']; 234 table = document.getElementById("table_quota"); 235 if(table) 236 table.parentNode.removeChild(table); 237 table = document.createElement("TABLE"); 238 tbody = document.createElement("TBODY"); 239 table.appendChild(tbody); 240 table.id = "table_quota"; 241 table.width="102"; 242 table.border="0"; 243 table.cellSpacing = 0; 244 table.cellPadding = 0; 245 246 //tr1 = document.createElement("TR"); 247 td11 = document.createElement("TD"); 248 td11.align="center"; 249 td11.setAttribute("noWrap","true"); 250 td11.innerHTML += ' <span class="boxHeaderText">' + value+"% ("+q_used+"M/"+q_limit+"M)</span>"; 251 //tr1.appendChild(td11); 252 253 tr2 = document.createElement("TR"); 254 td21 = document.createElement("TD"); 255 td21.setAttribute("noWrap","true"); 256 td21.height="15"; 257 td22 = document.createElement("TD"); 258 td21.setAttribute("background", URL_SERVER + 'phpgwapi/templates/' + template + '/images/dsunused.gif'); 259 table221 = document.createElement("TABLE"); 260 tbody221 = document.createElement("TBODY"); 261 table221.appendChild(tbody221); 262 table221.style.width=value+"%"; 263 td21.width="102"; 264 table221.border="0"; 265 table221.cellSpacing = 0; 266 table221.cellPadding = 0; 267 tr221 = document.createElement("TR"); 268 td221 = document.createElement("TD"); 269 td221.height="15"; 270 if(value > 90) { 271 if(value >= 100) 272 write_msg(get_lang("Your Mailbox is 100% full! You must free more space or will not receive messages.")); 273 else 274 write_msg(get_lang("Warning: Your Mailbox is almost full!")); 275 td221.setAttribute("background","templates/"+template+"/images/dsalert.gif"); 276 } 277 else if(value > 80) 278 td221.setAttribute("background", URL_SERVER + 'expressoMail1_2/templates/' + template + '/images/dswarn.gif'); 279 else 280 td221.className = 'dsused'; 281 282 tr221.appendChild(td221); 283 tbody221.appendChild(tr221); 284 td21.appendChild(table221); 285 tr2.appendChild(td21); 286 tr2.appendChild(td11); 287 288 //tr2.appendChild(td1); 289 290 tbody.appendChild(tr2); //Desenho 291 //tbody.appendChild(tr1); //Letras 292 div.appendChild(table); 293 } 294 } 295 } 296 297 function draw_paging(num_msgs){ 298 num_msgs = parseInt(num_msgs); 299 total_pages = 1; 300 301 if(last_folder != current_folder){ 302 lastPage = 1; 303 current_page = 1; 304 last_folder = current_folder; 305 } 306 307 if(num_msgs > parseInt(preferences.max_email_per_page)) { 308 total_pages = parseInt(num_msgs/preferences.max_email_per_page); 309 if((num_msgs/preferences.max_email_per_page) > total_pages) 310 total_pages++; 311 } 312 313 if(total_pages == 1) { 314 if(span_paging = document.getElementById("span_paging")) { 315 span_paging.parentNode.removeChild(span_paging); 316 } 317 return; 318 } 319 320 span_paging = document.getElementById("span_paging"); 321 if(!span_paging){ 322 span_paging = document.createElement("DIV"); 323 span_paging.id = "span_paging"; 324 span_paging.className = "boxHeaderText"; 325 span_paging.align="right"; 326 var div_menu_c3 = document.getElementById("div_menu_c3"); 327 if ( div_menu_c3 ) 328 div_menu_c3.appendChild(span_paging); 329 } 330 span_paging.style.width="100%"; 331 span_paging.innerHTML=""; 332 msg_range_begin = 1; 333 msg_range_end = preferences.max_email_per_page; 334 if(current_page != 1) { 335 lnk_page = document.createElement("A"); 336 lnk_page.setAttribute("href", "javascript:current_page=1;kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+","+preferences.preview_msg_subject+","+preferences.preview_msg_tip+",function handler(data){draw_box(data, get_current_folder());});"); 337 } 338 else { 339 lnk_page = document.createElement("SPAN"); 340 } 341 span_paging.appendChild(lnk_page); 342 343 lnk_page.innerHTML = "<<"; 344 lnk_page.title = get_lang("First"); 345 span_paging.innerHTML += " "; 346 347 if(current_page == lastPage + numPages) 348 lastPage = current_page - 1; 349 else if((lastPage != 1 && lastPage == current_page) || current_page == total_pages) 350 lastPage = current_page - (numPages - 1); 351 else if(current_page == 1) 352 lastPage = 1; 353 354 if(lastPage < 1) 355 lastPage = 1; 356 else if(lastPage > 1 && (lastPage > (total_pages -(numPages - 1)))) 357 lastPage = total_pages -(numPages - 1); 358 359 var hasMarked = false; 360 361 for(i = lastPage; i <= total_pages; i++) { 362 363 if(current_page == i || (i == total_pages && !hasMarked)) { 364 lnk_page = document.createElement("SPAN"); 365 span_paging.appendChild(lnk_page); 366 lnk_page.innerHTML = " <b>"+i+"</b> "; 367 hasMarked = true; 368 continue; 369 } 370 else{ 371 lnk_page = document.createElement("A"); 372 span_paging.appendChild(lnk_page); 373 msg_range_begin = ((i*preferences.max_email_per_page)-(preferences.max_email_per_page-1)); 374 msg_range_end = (i*preferences.max_email_per_page); 375 lnk_page.setAttribute("href", "javascript:current_page="+i+";kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+","+preferences.preview_msg_subject+","+preferences.preview_msg_tip+",function handler(data){draw_box(data, get_current_folder());});"); 376 } 377 378 lnk_page.innerHTML = " ... "; 379 380 if(i == (lastPage + numPages)) 381 break; 382 else if(lastPage == 1 || i != lastPage) 383 lnk_page.innerHTML = " "+i+" "; 384 385 span_paging.innerHTML += " "; 386 } 387 388 if(current_page != total_pages) { 389 lnk_page = document.createElement("A"); 390 msg_range_begin = ((total_pages*preferences.max_email_per_page)-(preferences.max_email_per_page-1)); 391 msg_range_end = (total_pages*preferences.max_email_per_page); 392 lnk_page.setAttribute("href", "javascript:current_page="+total_pages+";kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+","+preferences.preview_msg_subject+","+preferences.preview_msg_tip+",function handler(data){draw_box(data, get_current_folder());});"); 393 } 394 else { 395 lnk_page = document.createElement("SPAN"); 396 } 397 span_paging.innerHTML += " "; 398 span_paging.appendChild(lnk_page); 399 400 lnk_page.title = get_lang("Last"); 401 lnk_page.innerHTML = ">>"; 402 } 403 404 405 function draw_tree_local_folders() { 406 /** 407 * Pastas locais 408 */ 409 if(preferences.use_local_messages==1 || expresso_offline) { 410 var local_folders = expresso_local_messages.list_local_folders(); 411 var has_changes = false; 412 for (var i in local_folders) { //Coloca as pastas locais. 413 if(!isNaN(i)){ 414 var new_caption = local_folders[i][0]; 415 if(local_folders[i][0].indexOf("/")!="-1") { 416 final_pos = local_folders[i][0].lastIndexOf("/"); 417 new_caption = local_folders[i][0].substr(final_pos+1); 418 } 419 420 var folder_unseen = Element('dftree_local_'+local_folders[i][0]+'_unseen'); 421 422 if ((folder_unseen) && (local_folders[i][1] > 0)) 423 { 424 folder_unseen.innerHTML = local_folders[i][1]; 425 has_changes = true; 426 } 427 else if (local_folders[i][1] > 0) 428 { 429 tree_folders.getNodeById("local_"+local_folders[i][0]).alter({ 430 caption:lang_folder(new_caption) + '<font style=color:red> (</font><span id="dftree_local_'+local_folders[i][0]+'_unseen" style=color:red>'+local_folders[i][1]+'</span><font style=color:red>)</font>' 431 }); 432 tree_folders.getNodeById("local_"+local_folders[i][0])._refresh(); 433 has_changes = true; 434 } 435 else if (local_folders[i][1] <= 0) 436 { 437 tree_folders.getNodeById("local_"+local_folders[i][0]).alter({ 438 caption:lang_folder(new_caption) 439 }); 440 tree_folders.getNodeById("local_"+local_folders[i][0])._refresh(); 441 has_changes = true; 442 } 443 444 if("local_"+local_folders[i][0] == get_current_folder()){ 445 var old_new_m = isNaN(parseInt(Element('new_m').innerHTML)) ? parseInt(Element('new_m').firstChild.innerHTML) : parseInt(Element('new_m').innerHTML); 446 if(!isNaN(old_new_m) && old_new_m < local_folders[i][1]){ 447 Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + (parseInt(local_folders[i][1])-old_new_m); 448 } 449 Element('new_m').innerHTML = local_folders[i][1] ? '<font color="RED">'+local_folders[i][1]+'</font>' : 0; 450 draw_paging(Element('tot_m').innerHTML); 451 has_changes = true; 452 } 453 } 454 } 455 if(has_changes) 456 tree_folders.getNodeById("local_root").open(); 457 458 } 459 } 460 461 function draw_tree_folders(folders){ 462 // Check if the tree folders alredy exist. 463 translatedFolders = new Map(); 464 if (Element('dftree_tree_folders')){ 465 if (!expresso_offline) { 466 var update_tree_folders = function(data){ 467 build_quota(data); 468 var unseen_in_mailbox = 0; 469 var unseen_in_shared_folders = 0; 470 for (var i=0; i<data.length; i++){ 471 if ( data[i].folder_unseen > 0 ) 472 { 473 unseen_in_mailbox = parseInt( unseen_in_mailbox + data[ i ].folder_unseen ); 474 if ( data[i].folder_id.indexOf( 'INBOX' ) !== 0 ) 475 unseen_in_shared_folders = parseInt( unseen_in_shared_folders + data[ i ].folder_unseen ); 476 } 477 478 var folder_unseen = Element('dftree_'+data[i].folder_id+'_unseen'); 479 480 if ((folder_unseen) && (data[i].folder_unseen > 0)) 481 { 482 folder_unseen.innerHTML = data[i].folder_unseen; 483 } 484 else if (data[i].folder_unseen > 0) 485 { 486 tree_folders.getNodeById(data[i].folder_id).alter({ 487 caption:lang_folder(data[i].folder_name) + '<font style=color:red> (</font><span id="dftree_'+data[i].folder_id+'_unseen" style=color:red>'+data[i].folder_unseen+'</span><font style=color:red>)</font>' 488 }); 489 tree_folders.getNodeById(data[i].folder_id)._refresh(); 490 } 491 else if (data[i].folder_unseen <= 0) 492 { 493 tree_folders.getNodeById(data[i].folder_id).alter({ 494 caption:lang_folder(data[i].folder_name) 495 }); 496 tree_folders.getNodeById(data[i].folder_id)._refresh(); 497 } 498 499 if(data[i].folder_id == current_folder){ 500 var old_new_m = isNaN(parseInt(Element('new_m').innerHTML)) ? parseInt(Element('new_m').firstChild.innerHTML) : parseInt(Element('new_m').innerHTML); 501 // if(!isNaN(old_new_m) && old_new_m < data[i].folder_unseen){ 502 // Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + (parseInt(data[i].folder_unseen)-old_new_m); 503 // } 504 Element('new_m').innerHTML = data[i].folder_unseen ? '<font color="RED">'+data[i].folder_unseen+'</font>' : 0; 505 draw_paging(Element('tot_m').innerHTML); 506 } 507 } 508 509 var display_unseen_in_mailbox = tree_folders.getNodeById( 'root' ); 510 //if ( unseen_in_mailbox ) 511 // display_unseen_in_mailbox.alter({caption:'<font style=color:red>[</font><span id="dftree_root_unseen" style="color:red">' + unseen_in_mailbox +'</span><font style=color:red>]</font> ' + get_lang("My Folders")}); 512 //else 513 display_unseen_in_mailbox.alter({ 514 caption:get_lang("My Folders") 515 }); 516 display_unseen_in_mailbox._refresh(); 517 518 var display_unseen_in_shared_folders = tree_folders.getNodeById( 'user' ); 519 if ( display_unseen_in_shared_folders ) 520 { 521 if ( unseen_in_shared_folders ) 522 display_unseen_in_shared_folders.alter({ 523 caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">' + unseen_in_shared_folders +'</span><font style=color:red>]</font> ' + get_lang("Shared folders") 524 }); 525 else 526 display_unseen_in_shared_folders.alter({ 527 caption:get_lang("Shared folders") 528 }); 529 display_unseen_in_shared_folders._refresh(); 530 } 531 }; 532 expresso.connector.cacheNextRequest(1); 533 cExecute ("expressoMail1_2.imap_functions.get_folders_list&folder=INBOX", update_tree_folders); 534 } 535 536 return; 537 } 538 else{ 539 if (!expresso_offline) { 540 tree_folders = new dFTree({ 541 name: 'tree_folders' 542 }); 543 544 var n_root = new dNode({ 545 id:'root', 546 caption: get_lang("My Folders") 547 }); 548 tree_folders.add(n_root,'anything'); //Places the root; second argument can be anything. 549 550 var unseen_in_mailbox = 0; 551 var unseen_in_shared_folders = 0; 552 for (var i=0; i<folders.length; i++){ 553 if (folders[i].folder_unseen > 0) 554 { 555 unseen_in_mailbox = parseInt( unseen_in_mailbox + folders[ i ].folder_unseen ); 556 if ( folders[i].folder_id.indexOf( 'INBOX' ) !== 0 ) 557 unseen_in_shared_folders = parseInt( unseen_in_shared_folders + folders[ i ].folder_unseen ); 558 559 var nn = new dNode({ 560 id:folders[i].folder_id, 561 caption:lang_folder(folders[i].folder_name) + '<font style=color:red> (</font><span id="dftree_'+folders[i].folder_id+'_unseen" style=color:red>'+folders[i].folder_unseen+'</span><font style=color:red>)</font>', 562 onClick:"change_folder('"+folders[i].folder_id+"','"+folders[i].folder_name+"')", 563 plusSign:folders[i].folder_hasChildren 564 }); 565 566 if( folders[i].folder_name.toLowerCase() == 'inbox' ) 567 Element('new_m').innerHTML = '<font style="color:red">' + folders[i].folder_unseen + '</font>'; 568 } 569 else 570 var nn = new dNode({ 571 id:folders[i].folder_id, 572 caption:lang_folder(folders[i].folder_name), 573 onClick:"change_folder('"+folders[i].folder_id+"','"+folders[i].folder_name+"')", 574 plusSign:folders[i].folder_hasChildren 575 }); 576 577 if (folders[i].folder_parent == '') 578 folders[i].folder_parent = 'root'; 579 else if (folders[i].folder_parent == 'user'){ 580 581 if (!tree_folders.getNodeById('user')){ 582 tmpFolderId = folders[i].folder_id.split(cyrus_delimiter).pop(); 583 if (tmpFolderId != folders[i].folder_name) 584 { 585 translatedFolders.add(tmpFolderId, folders[i].folder_name); 586 } 587 var n_root_shared_folders = new dNode({ 588 id:'user', 589 caption:get_lang("Shared folders"), 590 plusSign:true 591 }); 592 tree_folders.add(n_root_shared_folders,'root'); 593 } 594 } 595 tree_folders.add(nn,folders[i].folder_parent); 596 } 597 } 598 //tree_local_folders = new dFTree({name: 'tree_local_folders'}); 599 /** 600 * Pastas locais 601 */ 602 if (preferences.use_local_messages==1 || expresso_offline) { 603 if (!window.google || !google.gears) { 604 if (!expresso_local_messages.installGears()) 605 preferences.use_local_messages=0; 606 } 607 else{ 608 if (!window.google || !google.gears) { 609 temp = confirm(get_lang("To use local messages you have to install google gears. Would you like to be redirected to gears installation page?")); 610 if (temp) { 611 location.href = "http://gears.google.com/?action=install&message="+ 612 "Para utilizar o recurso de mensagens locais, instale o google gears&return=" + 613 document.location.href; 614 } 615 else { 616 preferences.use_local_messages=0; 617 } 618 } 619 else{ 620 if (expresso_offline) 621 tree_folders = new dFTree({ 622 name: 'tree_folders' 623 }); 624 var root_local = new dNode({ 625 id: "local_root", 626 caption: get_lang('local folders') 627 }); 628 tree_folders.add(root_local, "root"); //coloca root local 629 var local_folders = expresso_local_messages.list_local_folders(); 630 for (var i in local_folders) { //Coloca as pastas locais. 631 if(!isNaN(i)){ 632 var node_root = "local_root"; 633 var new_caption = local_folders[i][0]; 634 if (local_folders[i][0].indexOf("/") != "-1") { 635 final_pos = local_folders[i][0].lastIndexOf("/"); 636 node_root = "local_" + local_folders[i][0].substr(0, final_pos); 637 new_caption = local_folders[i][0].substr(final_pos + 1); 638 } 639 if (local_folders[i][1] > 0) 640 var nodeLocal = new dNode({ 641 id: "local_" + local_folders[i][0], 642 caption: lang_folder(new_caption) + '<font style=color:red> (</font><span id="local_unseen" style=color:red>' + local_folders[i][1] + '</span><font style=color:red>)</font>', 643 onClick: "change_folder('local_" + local_folders[i][0] + "','" + new_caption + "')", 644 plusSign: local_folders[i][2] 645 }); 646 else 647 var nodeLocal = new dNode({ 648 id: "local_" + local_folders[i][0], 649 caption: lang_folder(new_caption), 650 onClick: "change_folder('local_" + local_folders[i][0] + "','" + new_caption + "')", 651 plusSign: local_folders[i][2] 652 }); 653 tree_folders.add(nodeLocal, node_root); 654 } 655 } 656 } 657 } 658 } 659 660 tree_folders.draw(Element('content_folders')); 661 if (!expresso_offline) { 662 n_root.changeState(); 663 folder_select = (current_folder ? current_folder:"INBOX"); 664 if (typeof(tree_folders.getNodeById(folder_select)) == 'undefined') 665 return false; 666 tree_folders.getNodeById(folder_select)._select(); 667 } 668 else { 669 root_local.changeState(); 670 tree_folders.getNodeById('local_Inbox')._select(); 671 } 672 673 var trash_span=document.getElementById('lINBOX/'+trashfolder+'tree_folders'); 674 var draft_span=document.getElementById('lINBOX/'+draftsfolder+'tree_folders'); 675 var sent_span=document.getElementById('lINBOX/'+sentfolder+'tree_folders'); 676 var spam_span=document.getElementById('lINBOX/'+spamfolder+'tree_folders'); 677 678 if (trash_span) 679 trash_span.style.backgroundImage="url(" + URL_SERVER + "phpgwapi/templates/"+template+"/images/foldertree_trash.png)"; 680 681 if (draft_span) 682 draft_span.style.backgroundImage="url(" + URL_SERVER + "phpgwapi/templates/"+template+"/images/foldertree_draft.png)"; 683 684 if (sent_span) 685 sent_span.style.backgroundImage="url(" + URL_SERVER + "phpgwapi/templates/"+template+"/images/foldertree_sent.png)"; 686 687 if (spam_span) 688 spam_span.style.backgroundImage="url(" + URL_SERVER + "phpgwapi/templates/"+template+"/images/foldertree_spam.png)"; 689 690 691 draw_paging(Element('tot_m').innerHTML); 692 if(document.getElementById("nINBOX/"+trashfolder+"tree_folders")) 693 { 694 var trash = document.createElement("SPAN"); 695 trash.id = 'empty_trash'; 696 trash.className = 'clean_folder'; 697 trash.style.cursor = 'pointer'; 698 trash.onclick = function () { 699 empty_trash_imap(); 700 }; 701 trash.innerHTML = "["+get_lang("Clean")+"]"; 702 trash.title=get_lang("Empty trash"); 703 trash.onmouseover = function() { 704 trash.style.color="red"; 705 }; 706 trash.onmouseout= function() { 707 trash.style.color="#666666"; 708 }; 709 document.getElementById("nINBOX/"+trashfolder+"tree_folders").appendChild(trash); 710 } 711 if(document.getElementById("nINBOX/"+spamfolder+"tree_folders")) 712 { 713 var spam = document.createElement("SPAN"); 714 spam.id = 'empty_spam'; 715 spam.className = 'clean_folder'; 716 spam.style.cursor = 'pointer'; 717 spam.style.padding = '0 0 0 6px'; 718 spam.onclick = function () { 719 empty_spam_imap(); 720 }; 721 spam.innerHTML = "["+get_lang("Clean")+"]"; 722 spam.title=get_lang("Empty Spam Folder"); 723 spam.onmouseover = function() { 724 spam.style.color="red"; 725 }; 726 spam.onmouseout= function() { 727 spam.style.color="#666666"; 728 }; 729 document.getElementById("nINBOX/"+spamfolder+"tree_folders").appendChild(spam); 730 } 731 732 // Draw right menu folders. 733 /* 734 var treeroot = document.getElementById('chroottree_folders'); 735 for (var linkBox = treeroot.firstChild; linkBox != null; linkBox = linkBox.nextSibling) 736 _dragArea.makeMenuBox(linkBox); 737 */ 738 739 if(!expresso_offline) 740 var display_unseen_in_mailbox = tree_folders.getNodeById( 'root' ); 741 else 742 var display_unseen_in_mailbox = tree_folders.getNodeById( 'local_root' ); 743 //if ( unseen_in_mailbox ) 744 // display_unseen_in_mailbox.alter({caption:'<font style=color:red>[</font><span id="dftree_root_unseen" style="color:red">' + unseen_in_mailbox +'</span><font style=color:red>]</font> ' + get_lang("My Folders")}); 745 //else 746 display_unseen_in_mailbox.alter({ 747 caption:get_lang("My Folders") 748 }); 749 display_unseen_in_mailbox._refresh(); 750 751 var display_unseen_in_shared_folders = tree_folders.getNodeById( 'user' ); 752 if ( display_unseen_in_shared_folders ) 753 { 754 if ( unseen_in_shared_folders ) 755 display_unseen_in_shared_folders.alter({ 756 caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">' + unseen_in_shared_folders +'</span><font style=color:red>]</font> ' + get_lang("Shared folders") 757 }); 758 else 759 display_unseen_in_shared_folders.alter({ 760 caption:get_lang("Shared folders") 761 }); 762 display_unseen_in_shared_folders._refresh(); 763 } 764 } 765 766 if (!expresso_offline) { 767 var folder_create = ""; 768 var nm1 = ""; 769 if(tree_folders._folderPr.length > 0){ 770 var nm_folder = ""; 771 for(var i=0; i < tree_folders._folderPr.length; i++){ 772 nm_folder = tree_folders._folderPr[i].split(cyrus_delimiter); 773 if(nm_folder[0] == "INBOX"){ 774 if(nm1 == ""){ 775 nm1 = nm_folder[1]; 776 folder_create = "INBOX" + cyrus_delimiter + nm_folder[1] + ";"; 777 }else{ 778 if( nm1 != nm_folder[1]){ 779 folder_create += "INBOX" + cyrus_delimiter + nm_folder[1] + ";"; 780 nm1 = nm_folder[1]; 781 } 782 } 783 } 784 } 785 } 786 if(folder_create != ""){ 787 if(confirm(get_lang("There are folders with invalid format. Do you want to fix them?"))){ 788 var handler_correct_folders = function(data){ 789 //Timeout to release HTTPRequest , loadScript and update tree folders. 790 if(data) 791 setTimeout("expresso.connector.loadScript('jscode/TreeShow');ttreeBox.update_folder();",500); 792 }; 793 cExecute("expressoMail1_2.imap_functions.create_extra_mailbox",handler_correct_folders,"nw_folders="+folder_create); 794 } 795 } 796 } 797 } 798 799 800 function update_menu(data){ 801 /* 802 * @AUTHOR Rodrigo Souza dos Santos 803 * @DATE 2008/09/15 804 * @BRIEF When occurs a error in imap server show the message that is in file "error.html". 805 */ 806 if ( data && data.imap_error ) 807 { 808 if(preferences.use_local_messages==1 && expresso_local_messages.is_offline_installed){ 809 conf = confirm(get_lang("The expresso imap server is currently down, expresso noticed you have offline mail module installed, would you like to use it?")); 810 if(conf) { 811 window.onresize = function() { 812 var target = document.getElementById('divAppbox'); 813 target.style.height= document.body.clientHeight - 83; 814 }; 815 var target = document.getElementById('divAppbox'); 816 document.getElementById("divAppboxHeader").innerHTML=""; 817 target.style.height= document.body.clientHeight - 83; 818 expresso_local_messages.set_as_logged(account_id,0,true); 819 target.innerHTML = "<iframe src='offline.php?inside=1' width='100%' height='100%' frameBorder='0'></iframe>"; 820 return false; 821 } 822 } 823 expresso.connector.newRequest('error.html', URL_SERVER + 'expressoMail1_2/templates/'+template+'/error.html', 'GET', 824 function(data) 825 { 826 var target = document.getElementById('divAppbox'); 827 if ( target ) 828 target.innerHTML = data; 829 } 830 ); 831 return false; 832 } 833 834 draw_tree_folders(data); 835 if(data) { 8 836 build_quota(data); 9 } 10 11 function update_quota(folder_id){ 12 cExecute ("expressoMail1_2.imap_functions.get_quota&folder_id="+folder_id,build_quota); 13 } 14 15 function draw_search(headers_msgs){ 16 Element("border_id_0").innerHTML = " " + get_lang('Search Result') + " "; 17 18 var tbody = Element('tbody_box'); 19 for (var i=0; i<(headers_msgs.length); i++){ 20 var tr = this.make_tr_message(headers_msgs[i], headers_msgs[i].msg_folder); 21 if (tr) 22 tbody.appendChild(tr); 23 } 24 } 25 26 function draw_search_header_box(){ 27 var table_message_header_box = Element("table_message_header_box"); 28 table_message_header_box.parentNode.removeChild(table_message_header_box); 29 30 var content_id_0 = Element("content_id_0"); 837 var f_unseen = Element('dftree_'+current_folder+'_unseen'); 838 if(f_unseen && f_unseen.innerHTML) 839 Element('new_m').innerHTML = '<font face="Verdana" size="1" color="RED">'+f_unseen.innerHTML+'</font>'; 840 else 841 { 842 if( parseInt(Element('new_m').innerHTML) == 0 ) 843 Element('new_m').innerHTML = 0; 844 } 845 folders = data; 846 } 847 } 848 849 var handler_draw_box = function(data){ 850 draw_box( expresso.connector.unserialize( data ), 'INBOX', true); 851 //alternate_border(0); 852 }; 853 854 // Action on change folders. 855 function change_folder(folder, folder_name){ 856 if (openTab.imapBox[0] != folder) 857 { 858 current_folder = folder; 859 var handler_draw_box = function(data) 860 { 861 alternate_border(0); 862 Element("border_id_0").innerHTML = " " + lang_folder(folder_name) + ' <font face="Verdana" size="1" color="#505050">[<span id="new_m"> </span> / <span id="tot_m"></span>]</font>'; 863 draw_box(data, folder, true); 864 draw_paging(data.num_msgs); 865 Element("tot_m").innerHTML = data.num_msgs; 866 update_menu(); 867 return true; 868 }; 869 proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort_box_type,search_box_type,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box); 870 // cExecute ("expressoMail1_2.imap_functions.get_range_msgs2&folder="+current_folder+"&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type="+sort_box_type+ "&search_box_type="+ search_box_type +"&sort_box_reverse="+sort_box_reverse+"", handler_draw_box); 871 } 872 else 873 alternate_border(0); 874 } 875 876 function open_folder(folder, folder_name){ 877 if (current_folder!= folder) { 878 current_folder = folder; 879 var handler_draw_box = function(data){ 880 numBox++; 881 create_border(folder_name,numBox.toString()); 882 draw_box(data, current_folder, false); 883 alternate_border(numBox); 884 return true; 885 }; 886 cExecute ("expressoMail1_2.imap_functions.get_range_msgs2&folder="+current_folder+"&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type="+sort_box_type+ "&search_box_type="+ search_box_type +"&sort_box_reverse="+sort_box_reverse+"", handler_draw_box); 887 } 888 else 889 alternate_border(numBox); 890 return true; 891 } 892 893 function sort_box(search, sort){ 894 var message_header = Element("message_header_"+search); 895 var handler_draw_box = function(data){ 896 draw_box(data, current_folder,true); 897 draw_paging(Element('tot_m').innerHTML); 898 //Mostrar as msgs nao lidas de acordo com o filtro de relevancia 899 var msgs_unseen = 0; 900 for(i in data){ 901 if(data[i].Unseen == 'U') 902 msgs_unseen++; 903 } 904 Element("new_m").innerHTML = '<font style="color:'+(msgs_unseen == 0 ? '': 'red')+'">' + msgs_unseen + '</font>'; 905 }; 906 907 if(sort_box_type == sort && search_box_type == search){ 908 sort_box_reverse = sort_box_reverse ? 0 : 1; 909 } 910 else if(sort_box_type != sort){ 911 if ( (sort == 'SORTFROM') || (sort == 'SORTSUBJECT') ) 912 sort_box_reverse = 0; 913 else 914 sort_box_reverse = 1; 915 } 916 917 // Global variable. 918 sort_box_type = sort; 919 search_box_type = search; 920 921 proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort,search,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box); 922 current_page = 1; 923 //Comentado para nao sobrepor o numero de msgs nao lidas ao utilizar os filtros 924 //update_menu(); 925 } 926 927 function make_tr_message(headers_msgs, msg_folder) 928 { 929 if ( InfoContact == null ) 930 InfoContact = new emInfoContact(); 931 932 var tr_element = document.createElement('tr'); 933 tr_element.style.height = preferences.line_height; 934 tr_element.id = headers_msgs.msg_number; 935 936 tr_element.msg_sample = ""; 937 //if(headers_msgs.msg_sample && headers_msgs.msg_sample.preview_msg_subject != "") 938 if(headers_msgs.msg_sample && preferences.preview_msg_subject == "1") 939 { 940 tr_element.msg_sample = headers_msgs.msg_sample.body.substr(0,120) + "..."; //trecho do body que sera exibido com o assunto; 941 } 942 943 tr_element.tip = ""; 944 if(headers_msgs.msg_sample && preferences.preview_msg_tip == "1") 945 { 946 tr_element.tip = headers_msgs.msg_sample.body.substr(3,300) + "..."; //trecho do body que sera exibido no tool-tip; 947 } 948 949 if ((headers_msgs.Unseen == 'U') || (headers_msgs.Recent == 'N')){ 950 if ((headers_msgs.Flagged == 'F') || (headers_msgs.Importance.toLowerCase().indexOf("high")!=-1 && parseInt(preferences.use_important_flag))) 951 add_className(tr_element, 'flagged_msg'); 952 add_className(tr_element, 'tr_msg_unread'); 953 } 954 else{ 955 if ((headers_msgs.Flagged == 'F') || (headers_msgs.Importance.toLowerCase().indexOf("high")!=-1 && parseInt(preferences.use_important_flag))) 956 add_className(tr_element,'flagged_msg'); 957 } 958 959 if ((headers_msgs.Unseen == 'U') || (headers_msgs.Recent == 'N')) 960 add_className(tr_element, 'tr_msg_unread'); 961 962 if (headers_msgs.Flagged == 'F') 963 add_className(tr_element,'flagged_msg'); 964 965 td_element1 = document.createElement("TD"); 966 td_element1.className = "td_msg"; 967 td_element1.setAttribute("width", "1%"); 968 chk_box_element = document.createElement("INPUT"); 969 chk_box_element.setAttribute("type", "checkbox"); 970 chk_box_element.className = "checkbox"; 971 chk_box_element.setAttribute("id", "check_box_message_"+headers_msgs.msg_number); 972 chk_box_element.onclick = function(e){ 973 if (is_ie) 974 changeBgColor(window.event,headers_msgs.msg_number); 975 else 976 changeBgColor(e,headers_msgs.msg_number); 977 }; 978 td_element1.appendChild(chk_box_element); 979 980 td_element2 = document.createElement("TD"); 981 td_element2.className = "td_msg"; 982 td_element2.setAttribute("width", "2%"); 983 if (headers_msgs.attachment && headers_msgs.attachment.number_attachments > 0) 984 td_element2.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/clip.gif" title="' + url_decode(headers_msgs.attachment.names) + '">'; 985 986 td_element21 = document.createElement("TD"); 987 td_element21.className = "td_msg"; 988 td_element21.setAttribute("width", "1%"); 989 td_element21.id = "td_message_answered_"+headers_msgs.msg_number; 990 991 if (headers_msgs.attachment && headers_msgs.attachment.number_attachments > 0) { 992 attach_name = headers_msgs.attachment.names.split(", "); 993 for(var item in attach_name) 994 { 995 if (url_decode(attach_name[item]) != 'smime.p7s' && url_decode(attach_name[item]) != 'smime.p7m'){ 996 td_element21.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/clip.gif" title="' + url_decode(attach_name[item]) + '">'; 997 break; 998 } 999 } 1000 } 1001 1002 if ((headers_msgs.Forwarded == 'F') || (headers_msgs.Draft == 'X' && headers_msgs.Answered == 'A')){ 1003 td_element21.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/forwarded.gif" title="'+get_lang('Forwarded')+'">'; 1004 headers_msgs.Draft = ''; 1005 headers_msgs.Answered = ''; 1006 headers_msgs.Forwarded = 'F'; 1007 } 1008 else if (headers_msgs.Draft == 'X') 1009 td_element21.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/draft.gif" title="'+get_lang('Draft')+'">'; 1010 else if (headers_msgs.Answered == 'A') 1011 td_element21.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/answered.gif" title="'+get_lang('Answered')+'">'; 1012 else 1013 td_element21.innerHTML = " "; 1014 1015 td_element22 = document.createElement("TD"); 1016 td_element22.className = "td_msg"; 1017 td_element22.setAttribute("width", "1%"); 1018 td_element22.id = "td_message_signed_"+headers_msgs.msg_number; 1019 1020 //td_element23 = document.createElement("TD"); 1021 //td_element23.setAttribute("width", "1%"); 1022 //td_element23.id = "td_message_signed_"+headers_msgs.msg_number; 1023 switch(headers_msgs.ContentType) 1024 { 1025 case "signature": 1026 { 1027 td_element22.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/signed_msg.gif" title="' + get_lang('Signed message') + '">'; 1028 break; 1029 } 1030 case "cipher": 1031 { 1032 td_element22.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/lock.gif" title="' + get_lang('Crypted message') + '">'; 1033 break; 1034 } 1035 default: 1036 { 1037 break; 1038 } 1039 }; 1040 1041 td_element23 = document.createElement("TD"); 1042 td_element23.className = "td_msg"; 1043 td_element23.setAttribute("width", "1%"); 1044 td_element23.id = "td_message_important_"+headers_msgs.msg_number; 1045 1046 if (headers_msgs.Flagged == 'F' || (headers_msgs.Importance.toLowerCase().indexOf("high") != -1 && parseInt(preferences.use_important_flag))) 1047 { 1048 td_element23.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/important.gif" title="'+get_lang('Important')+'">'; 1049 } 1050 else 1051 td_element23.innerHTML = " "; 1052 1053 td_element24 = document.createElement("TD"); 1054 td_element24.className = "td_msg"; 1055 td_element24.setAttribute("width", "1%"); 1056 td_element24.id = "td_message_sent_"+headers_msgs.msg_number; 1057 td_element24.innerHTML = " "; 1058 // preload image 1059 var _img_sent = new Image(); 1060 _img_sent.src = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/sent.gif'; 1061 1062 td_element3 = document.createElement("TD"); 1063 td_element3.className = "td_msg"; 1064 td_element3.id = "td_who_"+ headers_msgs.msg_number; 1065 td_element3.setAttribute("width", "20%"); 1066 var _onclick = function(){ 1067 InfoContact.hide();proxy_mensagens.get_msg(headers_msgs.msg_number, msg_folder,true, show_msg); 1068 }; 1069 td_element3.onclick = _onclick; 1070 td_element3.innerHTML = ' '; 1071 1072 if (typeof(headers_msgs.from) == 'undefined') 1073 return false; 1074 if(headers_msgs.from.email.toLowerCase() == Element("user_email").value) 1075 { 1076 td_element3.onmouseover = function () { 1077 this.title=headers_msgs.to.email; 1078 }; 1079 if (headers_msgs.Draft == 'X') 1080 td_element3.innerHTML += "<span style=\"color:red\">("+get_lang("Draft")+") </span>"; 1081 else{ 1082 if(headers_msgs.to.email != null && headers_msgs.to.email.toLowerCase() != Element("user_email").value) 1083 td_element24.innerHTML = '<img valign="center" src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/sent.gif" title="'+get_lang('Sent')+'">'; 1084 1085 if ((headers_msgs.to)&&(headers_msgs.to.name != null)) 1086 td_element3.innerHTML += headers_msgs.to.name; 1087 else if (headers_msgs.to){ 1088 td_element3.innerHTML += headers_msgs.to.email; 1089 } 1090 } 1091 } 1092 else{ 1093 if (headers_msgs.Draft == 'X'){ 1094 td_element3.innerHTML = "<span style=\"color:red\">("+get_lang("Draft")+") </span>"; 1095 } 1096 else{ 1097 var spanSender = document.createElement("SPAN"); 1098 spanSender.onmouseover = function (event) { 1099 this.style.textDecoration = "underline";try { 1100 InfoContact.begin(this,headers_msgs.from.email) 1101 } catch(e){}; 1102 }; 1103 spanSender.onmouseout = function (){ 1104 try { 1105 this.style.textDecoration = "none"; clearTimeout(InfoContact.timeout); 1106 } catch(e){} 1107 }; 1108 spanSender.innerHTML = headers_msgs.from.name != null ? headers_msgs.from.name : headers_msgs.from.email; 1109 if (spanSender.innerHTML.indexOf(" ") == '-1' && spanSender.innerHTML.length > 25){ 1110 spanSender.innerHTML = spanSender.innerHTML.substring(0,25) + "..."; 1111 } 1112 else if (spanSender.innerHTML.length > 40 ){ 1113 spanSender.innerHTML = spanSender.innerHTML.substring(0,40) + "..."; 1114 } 1115 td_element3.appendChild(spanSender); 1116 } 1117 } 1118 td_element4 = document.createElement("TD"); 1119 td_element4.className = "td_msg"; 1120 td_element4.setAttribute("width", "50%"); 1121 td_element4.onclick = _onclick; 1122 // td_element4.setAttribute("style","white-space:nowrap;"); 1123 td_element4.innerHTML = !is_ie ? "<a nowrap id='a_message_"+tr_element.id+"'> " : " "; 1124 1125 if ((headers_msgs.subject)&&(headers_msgs.subject.length > 50)) 1126 { 1127 // if( (headers_msgs.subject.length+tr_element.msg_sample.length)> 1128 td_element4.innerHTML += headers_msgs.subject.substring(0,50) + "..." + "<span style=\"color:#b3b3b3;\"> " + tr_element.msg_sample +"</span>";//modificacao feita para exibir o trecho do body ao lado do assunto da mensagem; 1129 } 1130 else 1131 { 1132 td_element4.innerHTML += headers_msgs.subject + "<span style=\"color:#b3b3b3;\"> " + tr_element.msg_sample + "</span>";//modificacao feita para exibir o trecho do body ao lado do assunto da mensagem; 1133 } 1134 1135 td_element4.title=tr_element.tip; 1136 if(!is_ie){ 1137 td_element4.innerHTML += "</a>"; 1138 } 1139 1140 1141 td_element5 = document.createElement("TD"); 1142 td_element5.className = "td_msg"; 1143 td_element5.setAttribute("width", "14%"); 1144 td_element5.onclick = _onclick; 1145 td_element5.setAttribute("align", "center"); 1146 td_element5.innerHTML = headers_msgs.udate; 1147 1148 td_element6 = document.createElement("TD"); 1149 td_element6.className = "td_msg"; 1150 td_element6.setAttribute("width", "14%"); 1151 td_element6.onclick = _onclick; 1152 td_element6.setAttribute("noWrap","true"); 1153 td_element6.setAttribute("align", "center"); 1154 1155 td_element6.innerHTML = borkb(headers_msgs.Size); 1156 1157 tr_element.appendChild(td_element1); 1158 tr_element.appendChild(td_element2); 1159 tr_element.appendChild(td_element21); 1160 tr_element.appendChild(td_element22); 1161 tr_element.appendChild(td_element23); 1162 tr_element.appendChild(td_element24); 1163 tr_element.appendChild(td_element3); 1164 tr_element.appendChild(td_element4); 1165 tr_element.appendChild(td_element5); 1166 tr_element.appendChild(td_element6); 1167 return tr_element; 1168 } 1169 1170 1171 // Draw the inbox and another folders 1172 function draw_box(headers_msgs, msg_folder, alternate){ 1173 if ( _dragArea == null ) 1174 _dragArea = new DragArea( ); 1175 1176 if (alternate) 1177 kill_current_box(); 1178 1179 if(is_ie) 1180 document.getElementById("border_table").width = "99.5%"; 1181 1182 openTab.content_id[numBox] = document.getElementById("content_id_"+numBox); 1183 openTab.imapBox[numBox] = msg_folder; 1184 openTab.type[numBox] = 0; 1185 1186 table_message_header_box = document.getElementById("table_message_header_box_"+numBox); 1187 if (table_message_header_box == null){ 31 1188 var table_element = document.createElement("TABLE"); 32 1189 var tbody_element = document.createElement("TBODY"); 33 table_element.setAttribute("id", "table_message_header_box ");1190 table_element.setAttribute("id", "table_message_header_box_"+numBox); 34 1191 table_element.className = "table_message_header_box"; 1192 35 1193 tr_element = document.createElement("TR"); 36 1194 tr_element.className = "message_header"; … … 41 1199 chk_box_element.setAttribute("type", "checkbox"); 42 1200 chk_box_element.className = "checkbox"; 43 chk_box_element.onclick = function(){select_all_messages(this.checked);}; 44 chk_box_element.onmouseover = function () {this.title=get_lang('Select all messages.')}; 1201 chk_box_element.onclick = function(){ 1202 select_all_messages(this.checked); 1203 }; 1204 chk_box_element.onmouseover = function () { 1205 this.title=get_lang('Select all messages.'); 1206 }; 45 1207 chk_box_element.onkeydown = function (e){ 46 if (is_ie) 47 { 48 if ((window.event.keyCode) == 46) 49 { 50 //delete_all_selected_msgs_imap(); 51 proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); 52 } 53 } 54 else 55 { 56 if ((e.keyCode) == 46) 57 { 58 //delete_all_selected_msgs_imap(); 59 proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); 60 } 61 } 1208 if (is_ie) 1209 { 1210 if ((window.event.keyCode) == 46) 1211 proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); 1212 } 1213 else 1214 { 1215 if ((e.keyCode) == 46) 1216 proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); 1217 } 62 1218 }; 63 1219 64 1220 td_element1.appendChild(chk_box_element); 1221 65 1222 td_element2 = document.createElement("TD"); 66 td_element2.setAttribute("width", " 3%");1223 td_element2.setAttribute("width", "7%"); 67 1224 td_element3 = document.createElement("TD"); 68 td_element3.setAttribute("width", "30%"); 69 td_element3.id = "message_header_SORTFROM"; 1225 td_element3.setAttribute("width", "29%"); 1226 td_element3.onclick = function () { 1227 sort_box(search_box_type,'SORTFROM'); 1228 }; 1229 td_element3.id = "message_header_SORTFROM_"+numBox; 70 1230 td_element3.align = "left"; 71 td_element3.innerHTML = get_lang("From"); 1231 td_element3.innerHTML = get_lang("Who"); 1232 72 1233 td_element4 = document.createElement("TD"); 73 td_element4.setAttribute("width", "49%"); 74 td_element4.id = "message_header_SORTSUBJECT"; 1234 td_element4.setAttribute("width", "38%"); 1235 td_element4.onclick = function () { 1236 sort_box(search_box_type,'SORTSUBJECT'); 1237 }; 1238 td_element4.id = "message_header_SORTSUBJECT_"+numBox; 75 1239 td_element4.align = "left"; 76 td_element4.innerHTML = get_lang("Subject"); 1240 td_element4.innerHTML = get_lang("Subject"); 1241 77 1242 td_element5 = document.createElement("TD"); 78 td_element5.setAttribute("width", "10%"); 79 td_element5.id = "message_header_SORTARRIVAL"; 1243 td_element5.setAttribute("width", "14%"); 1244 td_element5.onclick = function () { 1245 sort_box(search_box_type,'SORTARRIVAL'); 1246 }; 1247 td_element5.id = "message_header_SORTARRIVAL_"+numBox; 80 1248 td_element5.align = "center"; 81 td_element5.innerHTML = "<B>"+get_lang("Date")+"</B>"; 82 td_element5.innerHTML += '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/arrow_descendant.gif">'; 1249 td_element5.innerHTML = get_lang("Date"); 83 1250 td_element6 = document.createElement("TD"); 84 td_element6.setAttribute("width", "10%"); 85 td_element6.id = "message_header_SORTSIZE"; 86 td_element6.align = "right"; 1251 td_element6.setAttribute("width", "14%"); 1252 td_element6.onclick = function () { 1253 sort_box(search_box_type,'SORTSIZE'); 1254 }; 1255 td_element6.id = "message_header_SORTSIZE_"+numBox; 1256 td_element6.align = "left"; 87 1257 td_element6.innerHTML = get_lang("Size"); 1258 88 1259 tr_element.appendChild(td_element1); 89 1260 tr_element.appendChild(td_element2); 1261 var td_element21 = document.createElement("TD"); 1262 td_element21.innerHTML = " "; 1263 var td_element22 = document.createElement("TD"); 1264 td_element22.innerHTML = " "; 1265 var td_element23 = document.createElement("TD"); 1266 td_element23.innerHTML = " "; 1267 tr_element.appendChild(td_element21); 1268 tr_element.appendChild(td_element22); 1269 tr_element.appendChild(td_element23); 90 1270 tr_element.appendChild(td_element3); 91 1271 tr_element.appendChild(td_element4); 92 1272 tr_element.appendChild(td_element5); 93 1273 tr_element.appendChild(td_element6); 94 95 1274 tbody_element.appendChild(tr_element); 96 1275 table_element.appendChild(tbody_element); 97 content_id_0.appendChild(table_element); 98 } 99 100 function draw_search_division(msg){ 101 var tbody = Element('tbody_box'); 102 var tr = document.createElement("TR"); 103 var td = document.createElement("TD"); 104 td.colSpan = '7'; 105 td.width = '100%'; 106 107 var action_info_table = document.createElement("TABLE"); 108 var action_info_tbody = document.createElement("TBODY"); 109 110 action_info_table.className = "action_info_table"; 111 action_info_table.width = "100%"; 112 113 var action_info_tr = document.createElement("TR"); 114 115 var action_info_th1 = document.createElement("TH"); 116 action_info_th1.width = "40%"; 117 action_info_th1.innerHTML = " "; 118 119 var action_info_th2 = document.createElement("TH"); 120 121 action_info_th2.innerHTML = msg; 122 action_info_th2.className = "action_info_th"; 123 action_info_th2.setAttribute("noWrap", "true"); 124 125 var action_info_th3 = document.createElement("TH"); 126 action_info_th3.width = "40%"; 127 action_info_th3.innerHTML = " "; 128 129 action_info_tr.appendChild(action_info_th1); 130 action_info_tr.appendChild(action_info_th2); 131 action_info_tr.appendChild(action_info_th3); 132 action_info_tbody.appendChild(action_info_tr); 133 action_info_table.appendChild(action_info_tbody); 134 135 td.appendChild(action_info_table); 136 tr.appendChild(td); 137 tbody.appendChild(tr); 138 } 139 140 function draw_search_box(){ 141 var content_id_0 = Element("content_id_0"); 142 var table = document.createElement("TABLE"); 143 table.id = "table_box"; 144 table.width = 'auto'; 145 var tbody = document.createElement("TBODY"); 146 tbody.id = "tbody_box"; 147 148 table.className = "table_box"; 149 table.setAttribute("frame", "below"); 150 table.setAttribute("rules", "none"); 151 table.setAttribute("cellpadding", "0"); 152 table.onkeydown = function (e){ 153 if (is_ie) 154 { 155 if ((window.event.keyCode) == 46) 156 { 157 //delete_all_selected_msgs_imap(); 158 proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); 159 } 160 } 161 else 162 { 163 if ((e.keyCode) == 46) 164 { 165 //delete_all_selected_msgs_imap(); 166 proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); 167 } 168 } 169 }; 1276 openTab.content_id[numBox].appendChild(table_element); 1277 } 1278 draw_header_box(); 1279 var table_element = document.createElement("TABLE"); 1280 var tbody_element = document.createElement("TBODY"); 1281 table_element.id = "table_box"; 1282 table_element.className = "table_box"; 1283 table_element.borderColorDark = "#bbbbbb"; 1284 table_element.frame = "void"; 1285 table_element.rules = "rows"; 1286 table_element.cellPadding = "0"; 1287 table_element.cellSpacing = "0"; 1288 1289 table_element.onkeydown = function (e){ 170 1290 if (is_ie) 171 table.style.cursor = "hand"; 172 173 table.appendChild(tbody); 174 content_id_0.appendChild(table); 175 } 176 var idx_cc = 0; 177 function draw_plugin_cc(ID, addrs) 178 { 179 expresso.connector.loadScript("jscode/ccQuickAdd"); 180 181 var array_addrs = ''; 182 var array_name = ''; 183 var cc_data = new Array(); 184 if(typeof(addrs.name) != 'undefined') { 185 array_name = LTrim(addrs.name).split(" "); 186 array_addrs = new Array(addrs.email); 187 } 188 else { 189 array_addrs = (typeof addrs == 'object' ? addrs.toString().split("\" ") : addrs.split("\" ")); 190 array_name = LTrim(array_addrs[0]).replace('"','').split(" "); 191 } 192 193 var _split = array_name[0].split('@'); 194 cc_data[0] = _split[0]; 195 cc_data[1] = _split[0]; 196 cc_data[2] = ''; 197 198 for (i=1; i < array_name.length; i++) 199 cc_data[2] += array_name[i] + " "; 200 201 202 if(array_addrs.length > 1) 203 cc_data[3] = array_addrs[1] ? array_addrs[1].replace("<",'').replace(">",'') : ''; 1291 { 1292 if ((window.event.keyCode) == 46) 1293 { 1294 //delete_all_selected_msgs_imap(); 1295 proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); 1296 } 1297 } 204 1298 else 205 cc_data[3] = array_addrs[0]; 206 207 var sm_envelope_img1 = '<img style="cursor:'+ (is_ie ? 'hand' : 'pointer') +'" title="' + get_lang("Add Contact") + 208 '" onclick="ccQuickAddOne.showList(\''+cc_data+'\')" src="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/user_card.png">'; 209 var to_addybook_add = "<SPAN id='insert_plugin_"+idx_cc+"_"+ID+"'>"; 210 to_addybook_add += addrs; 211 to_addybook_add += sm_envelope_img1; 212 idx_cc++; 213 to_addybook_add += "</SPAN>"; 214 return to_addybook_add; 215 } 216 217 function build_quota(data){ 218 id = "content_quota"; 219 q_limit = data['quota_limit']; 220 var div = document.getElementById(id); 221 if(!q_limit){ 222 div.innerHTML = '<span><font size="2" style="color:red"><strong>'+get_lang("Without Quota")+'</strong></font></span>'; 223 } 224 else{ 225 if(div) 226 { 227 div.innerHTML = ''; 228 value = data['quota_percent']; 229 q_used = data['quota_used']; 230 table = document.getElementById("table_quota"); 231 if(table) 232 table.parentNode.removeChild(table); 233 table = document.createElement("TABLE"); 234 tbody = document.createElement("TBODY"); 235 table.appendChild(tbody); 236 table.id = "table_quota"; 237 table.width="102"; 238 table.border="0"; 239 table.cellSpacing = 0; 240 table.cellPadding = 0; 241 242 //tr1 = document.createElement("TR"); 243 td11 = document.createElement("TD"); 244 td11.align="center"; 245 td11.setAttribute("noWrap","true"); 246 td11.innerHTML += ' <span class="boxHeaderText">' + value+"% ("+q_used+"M/"+q_limit+"M)</span>"; 247 //tr1.appendChild(td11); 248 249 tr2 = document.createElement("TR"); 250 td21 = document.createElement("TD"); 251 td21.setAttribute("noWrap","true"); 252 td21.height="15"; 253 td22 = document.createElement("TD"); 254 td21.setAttribute("background", URL_SERVER + 'phpgwapi/templates/' + template + '/images/dsunused.gif'); 255 table221 = document.createElement("TABLE"); 256 tbody221 = document.createElement("TBODY"); 257 table221.appendChild(tbody221); 258 table221.style.width=value+"%"; 259 td21.width="102"; 260 table221.border="0"; 261 table221.cellSpacing = 0; 262 table221.cellPadding = 0; 263 tr221 = document.createElement("TR"); 264 td221 = document.createElement("TD"); 265 td221.height="15"; 266 if(value > 90) { 267 if(value >= 100) 268 write_msg(get_lang("Your Mailbox is 100% full! You must free more space or will not receive messages.")); 269 else 270 write_msg(get_lang("Warning: Your Mailbox is almost full!")); 271 td221.setAttribute("background","templates/"+template+"/images/dsalert.gif"); 272 } 273 else if(value > 80) 274 td221.setAttribute("background", URL_SERVER + 'expressoMail1_2/templates/' + template + '/images/dswarn.gif'); 275 else 276 td221.className = 'dsused'; 277 278 tr221.appendChild(td221); 279 tbody221.appendChild(tr221); 280 td21.appendChild(table221); 281 tr2.appendChild(td21); 282 tr2.appendChild(td11); 283 284 //tr2.appendChild(td1); 285 286 tbody.appendChild(tr2); //Desenho 287 //tbody.appendChild(tr1); //Letras 288 div.appendChild(table); 289 } 290 } 291 } 292 293 function draw_paging(num_msgs){ 294 num_msgs = parseInt(num_msgs); 295 total_pages = 1; 296 297 if(last_folder != current_folder){ 298 lastPage = 1; 299 current_page = 1; 300 last_folder = current_folder; 301 } 302 303 if(num_msgs > parseInt(preferences.max_email_per_page)) { 304 total_pages = parseInt(num_msgs/preferences.max_email_per_page); 305 if((num_msgs/preferences.max_email_per_page) > total_pages) 306 total_pages++; 307 } 308 309 if(total_pages == 1) { 310 if(span_paging = document.getElementById("span_paging")) { 311 span_paging.parentNode.removeChild(span_paging); 312 } 313 return; 314 } 315 316 span_paging = document.getElementById("span_paging"); 317 if(!span_paging){ 318 span_paging = document.createElement("DIV"); 319 span_paging.id = "span_paging"; 320 span_paging.className = "boxHeaderText"; 321 span_paging.align="right"; 322 var div_menu_c3 = document.getElementById("div_menu_c3"); 323 if ( div_menu_c3 ) 324 div_menu_c3.appendChild(span_paging); 325 } 326 span_paging.style.width="100%"; 327 span_paging.innerHTML=""; 328 msg_range_begin = 1; 329 msg_range_end = preferences.max_email_per_page; 330 if(current_page != 1) { 331 lnk_page = document.createElement("A"); 332 lnk_page.setAttribute("href", "javascript:current_page=1;kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+","+preferences.preview_msg_subject+","+preferences.preview_msg_tip+",function handler(data){draw_box(data, get_current_folder());});"); 333 } 334 else { 335 lnk_page = document.createElement("SPAN"); 336 } 337 span_paging.appendChild(lnk_page); 338 339 lnk_page.innerHTML = "<<"; 340 lnk_page.title = get_lang("First"); 341 span_paging.innerHTML += " "; 342 343 if(current_page == lastPage + numPages) 344 lastPage = current_page - 1; 345 else if((lastPage != 1 && lastPage == current_page) || current_page == total_pages) 346 lastPage = current_page - (numPages - 1); 347 else if(current_page == 1) 348 lastPage = 1; 349 350 if(lastPage < 1) 351 lastPage = 1; 352 else if(lastPage > 1 && (lastPage > (total_pages -(numPages - 1)))) 353 lastPage = total_pages -(numPages - 1); 354 355 var hasMarked = false; 356 357 for(i = lastPage; i <= total_pages; i++) { 358 359 if(current_page == i || (i == total_pages && !hasMarked)) { 360 lnk_page = document.createElement("SPAN"); 361 span_paging.appendChild(lnk_page); 362 lnk_page.innerHTML = " <b>"+i+"</b> "; 363 hasMarked = true; 364 continue; 365 } 366 else{ 367 lnk_page = document.createElement("A"); 368 span_paging.appendChild(lnk_page); 369 msg_range_begin = ((i*preferences.max_email_per_page)-(preferences.max_email_per_page-1)); 370 msg_range_end = (i*preferences.max_email_per_page); 371 lnk_page.setAttribute("href", "javascript:current_page="+i+";kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+","+preferences.preview_msg_subject+","+preferences.preview_msg_tip+",function handler(data){draw_box(data, get_current_folder());});"); 372 } 373 374 lnk_page.innerHTML = " ... "; 375 376 if(i == (lastPage + numPages)) 377 break; 378 else if(lastPage == 1 || i != lastPage) 379 lnk_page.innerHTML = " "+i+" "; 380 381 span_paging.innerHTML += " "; 382 } 383 384 if(current_page != total_pages) { 385 lnk_page = document.createElement("A"); 386 msg_range_begin = ((total_pages*preferences.max_email_per_page)-(preferences.max_email_per_page-1)); 387 msg_range_end = (total_pages*preferences.max_email_per_page); 388 lnk_page.setAttribute("href", "javascript:current_page="+total_pages+";kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+","+preferences.preview_msg_subject+","+preferences.preview_msg_tip+",function handler(data){draw_box(data, get_current_folder());});"); 389 } 390 else { 391 lnk_page = document.createElement("SPAN"); 392 } 393 span_paging.innerHTML += " "; 394 span_paging.appendChild(lnk_page); 395 396 lnk_page.title = get_lang("Last"); 397 lnk_page.innerHTML = ">>"; 398 } 399 400 401 function draw_tree_local_folders() { 402 /** 403 * Pastas locais 404 */ 405 if(preferences.use_local_messages==1 || expresso_offline) { 406 var local_folders = expresso_local_messages.list_local_folders(); 407 var has_changes = false; 408 for (var i in local_folders) { //Coloca as pastas locais. 409 410 var new_caption = local_folders[i][0]; 411 if(local_folders[i][0].indexOf("/")!="-1") { 412 final_pos = local_folders[i][0].lastIndexOf("/"); 413 new_caption = local_folders[i][0].substr(final_pos+1); 414 } 415 416 var folder_unseen = Element('dftree_local_'+local_folders[i][0]+'_unseen'); 417 418 if ((folder_unseen) && (local_folders[i][1] > 0)) 419 { 420 folder_unseen.innerHTML = local_folders[i][1]; 421 has_changes = true; 422 } 423 else if (local_folders[i][1] > 0) 424 { 425 tree_folders.getNodeById("local_"+local_folders[i][0]).alter({caption:lang_folder(new_caption) + '<font style=color:red> (</font><span id="dftree_local_'+local_folders[i][0]+'_unseen" style=color:red>'+local_folders[i][1]+'</span><font style=color:red>)</font>'}); 426 tree_folders.getNodeById("local_"+local_folders[i][0])._refresh(); 427 has_changes = true; 428 } 429 else if (local_folders[i][1] <= 0) 430 { 431 tree_folders.getNodeById("local_"+local_folders[i][0]).alter({caption:lang_folder(new_caption)}); 432 tree_folders.getNodeById("local_"+local_folders[i][0])._refresh(); 433 has_changes = true; 434 } 435 436 if("local_"+local_folders[i][0] == get_current_folder()){ 437 var old_new_m = isNaN(parseInt(Element('new_m').innerHTML)) ? parseInt(Element('new_m').firstChild.innerHTML) : parseInt(Element('new_m').innerHTML); 438 if(!isNaN(old_new_m) && old_new_m < local_folders[i][1]){ 439 Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + (parseInt(local_folders[i][1])-old_new_m); 440 } 441 Element('new_m').innerHTML = local_folders[i][1] ? '<font color="RED">'+local_folders[i][1]+'</font>' : 0; 442 draw_paging(Element('tot_m').innerHTML); 443 has_changes = true; 444 } 445 } 446 if(has_changes) 447 tree_folders.getNodeById("local_root").open(); 448 449 } 450 } 451 452 function draw_tree_folders(folders){ 453 // Check if the tree folders alredy exist. 454 translatedFolders = new Map(); 455 if (Element('dftree_tree_folders')){ 456 if (!expresso_offline) { 457 var update_tree_folders = function(data){ 458 build_quota(data); 459 var unseen_in_mailbox = 0; 460 var unseen_in_shared_folders = 0; 461 for (var i=0; i<data.length; i++){ 462 if ( data[i].folder_unseen > 0 ) 463 { 464 unseen_in_mailbox = parseInt( unseen_in_mailbox + data[ i ].folder_unseen ); 465 if ( data[i].folder_id.indexOf( 'INBOX' ) !== 0 ) 466 unseen_in_shared_folders = parseInt( unseen_in_shared_folders + data[ i ].folder_unseen ); 467 } 468 469 var folder_unseen = Element('dftree_'+data[i].folder_id+'_unseen'); 470 471 if ((folder_unseen) && (data[i].folder_unseen > 0)) 472 { 473 folder_unseen.innerHTML = data[i].folder_unseen; 474 } 475 else if (data[i].folder_unseen > 0) 476 { 477 tree_folders.getNodeById(data[i].folder_id).alter({caption:lang_folder(data[i].folder_name) + '<font style=color:red> (</font><span id="dftree_'+data[i].folder_id+'_unseen" style=color:red>'+data[i].folder_unseen+'</span><font style=color:red>)</font>'}); 478 tree_folders.getNodeById(data[i].folder_id)._refresh(); 479 } 480 else if (data[i].folder_unseen <= 0) 481 { 482 tree_folders.getNodeById(data[i].folder_id).alter({caption:lang_folder(data[i].folder_name)}); 483 tree_folders.getNodeById(data[i].folder_id)._refresh(); 484 } 485 486 if(data[i].folder_id == current_folder){ 487 var old_new_m = isNaN(parseInt(Element('new_m').innerHTML)) ? parseInt(Element('new_m').firstChild.innerHTML) : parseInt(Element('new_m').innerHTML); 488 // if(!isNaN(old_new_m) && old_new_m < data[i].folder_unseen){ 489 // Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + (parseInt(data[i].folder_unseen)-old_new_m); 490 // } 491 Element('new_m').innerHTML = data[i].folder_unseen ? '<font color="RED">'+data[i].folder_unseen+'</font>' : 0; 492 draw_paging(Element('tot_m').innerHTML); 493 } 494 } 495 496 var display_unseen_in_mailbox = tree_folders.getNodeById( 'root' ); 497 //if ( unseen_in_mailbox ) 498 // display_unseen_in_mailbox.alter({caption:'<font style=color:red>[</font><span id="dftree_root_unseen" style="color:red">' + unseen_in_mailbox +'</span><font style=color:red>]</font> ' + get_lang("My Folders")}); 499 //else 500 display_unseen_in_mailbox.alter({caption:get_lang("My Folders")}); 501 display_unseen_in_mailbox._refresh(); 502 503 var display_unseen_in_shared_folders = tree_folders.getNodeById( 'user' ); 504 if ( display_unseen_in_shared_folders ) 505 { 506 if ( unseen_in_shared_folders ) 507 display_unseen_in_shared_folders.alter({caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">' + unseen_in_shared_folders +'</span><font style=color:red>]</font> ' + get_lang("Shared folders")}); 508 else 509 display_unseen_in_shared_folders.alter({caption:get_lang("Shared folders")}); 510 display_unseen_in_shared_folders._refresh(); 511 } 512 }; 513 expresso.connector.cacheNextRequest(1); 514 cExecute ("expressoMail1_2.imap_functions.get_folders_list&folder=INBOX", update_tree_folders); 515 } 516 517 return; 518 } 519 else{ 520 if (!expresso_offline) { 521 tree_folders = new dFTree({name: 'tree_folders'}); 522 523 var n_root = new dNode({id:'root', caption: get_lang("My Folders")}); 524 tree_folders.add(n_root,'anything'); //Places the root; second argument can be anything. 525 526 var unseen_in_mailbox = 0; 527 var unseen_in_shared_folders = 0; 528 for (var i=0; i<folders.length; i++){ 529 if (folders[i].folder_unseen > 0) 530 { 531 unseen_in_mailbox = parseInt( unseen_in_mailbox + folders[ i ].folder_unseen ); 532 if ( folders[i].folder_id.indexOf( 'INBOX' ) !== 0 ) 533 unseen_in_shared_folders = parseInt( unseen_in_shared_folders + folders[ i ].folder_unseen ); 534 535 var nn = new dNode({id:folders[i].folder_id, caption:lang_folder(folders[i].folder_name) + '<font style=color:red> (</font><span id="dftree_'+folders[i].folder_id+'_unseen" style=color:red>'+folders[i].folder_unseen+'</span><font style=color:red>)</font>', onClick:"change_folder('"+folders[i].folder_id+"','"+folders[i].folder_name+"')", plusSign:folders[i].folder_hasChildren}); 536 537 if( folders[i].folder_name.toLowerCase() == 'inbox' ) 538 Element('new_m').innerHTML = '<font style="color:red">' + folders[i].folder_unseen + '</font>'; 539 } 540 else 541 var nn = new dNode({id:folders[i].folder_id, caption:lang_folder(folders[i].folder_name), onClick:"change_folder('"+folders[i].folder_id+"','"+folders[i].folder_name+"')", plusSign:folders[i].folder_hasChildren}); 542 543 if (folders[i].folder_parent == '') 544 folders[i].folder_parent = 'root'; 545 else if (folders[i].folder_parent == 'user'){ 546 547 if (!tree_folders.getNodeById('user')){ 548 tmpFolderId = folders[i].folder_id.split(cyrus_delimiter).pop(); 549 if (tmpFolderId != folders[i].folder_name) 550 { 551 translatedFolders.add(tmpFolderId, folders[i].folder_name); 552 } 553 var n_root_shared_folders = new dNode({id:'user', caption:get_lang("Shared folders"), plusSign:true}); 554 tree_folders.add(n_root_shared_folders,'root'); 555 } 556 } 557 tree_folders.add(nn,folders[i].folder_parent); 558 } 559 } 560 //tree_local_folders = new dFTree({name: 'tree_local_folders'}); 561 /** 562 * Pastas locais 563 */ 564 if (preferences.use_local_messages==1 || expresso_offline) { 565 if (!window.google || !google.gears) { 566 if (!expresso_local_messages.installGears()) 567 preferences.use_local_messages=0; 568 } 569 else{ 570 if (!window.google || !google.gears) { 571 temp = confirm(get_lang("To use local messages you have to install google gears. Would you like to be redirected to gears installation page?")); 572 if (temp) { 573 location.href = "http://gears.google.com/?action=install&message="+ 574 "Para utilizar o recurso de mensagens locais, instale o google gears&return=" + 575 document.location.href; 576 } 577 else { 578 preferences.use_local_messages=0; 579 } 580 } 581 else{ 582 if (expresso_offline) 583 tree_folders = new dFTree({ 584 name: 'tree_folders' 585 }); 586 var root_local = new dNode({ 587 id: "local_root", 588 caption: get_lang('local folders') 589 }); 590 tree_folders.add(root_local, "root"); //coloca root local 591 var local_folders = expresso_local_messages.list_local_folders(); 592 for (var i in local_folders) { //Coloca as pastas locais. 593 var node_root = "local_root"; 594 var new_caption = local_folders[i][0]; 595 if (local_folders[i][0].indexOf("/") != "-1") { 596 final_pos = local_folders[i][0].lastIndexOf("/"); 597 node_root = "local_" + local_folders[i][0].substr(0, final_pos); 598 new_caption = local_folders[i][0].substr(final_pos + 1); 599 } 600 if (local_folders[i][1] > 0) 601 var nodeLocal = new dNode({ 602 id: "local_" + local_folders[i][0], 603 caption: lang_folder(new_caption) + '<font style=color:red> (</font><span id="local_unseen" style=color:red>' + local_folders[i][1] + '</span><font style=color:red>)</font>', 604 onClick: "change_folder('local_" + local_folders[i][0] + "','" + new_caption + "')", 605 plusSign: local_folders[i][2] 606 }); 607 else 608 var nodeLocal = new dNode({ 609 id: "local_" + local_folders[i][0], 610 caption: lang_folder(new_caption), 611 onClick: "change_folder('local_" + local_folders[i][0] + "','" + new_caption + "')", 612 plusSign: local_folders[i][2] 613 }); 614 tree_folders.add(nodeLocal, node_root); 615 } 616 } 617 } 618 } 619 620 tree_folders.draw(Element('content_folders')); 621 if (!expresso_offline) { 622 n_root.changeState(); 623 folder_select = (current_folder ? current_folder:"INBOX"); 624 if (typeof(tree_folders.getNodeById(folder_select)) == 'undefined') 625 return false; 626 tree_folders.getNodeById(folder_select)._select(); 627 } 628 else { 629 root_local.changeState(); 630 tree_folders.getNodeById('local_Inbox')._select(); 631 } 632 633 var trash_span=document.getElementById('lINBOX/'+trashfolder+'tree_folders'); 634 var draft_span=document.getElementById('lINBOX/'+draftsfolder+'tree_folders'); 635 var sent_span=document.getElementById('lINBOX/'+sentfolder+'tree_folders'); 636 var spam_span=document.getElementById('lINBOX/'+spamfolder+'tree_folders'); 637 638 if (trash_span) 639 trash_span.style.backgroundImage="url(" + URL_SERVER + "phpgwapi/templates/"+template+"/images/foldertree_trash.png)"; 640 641 if (draft_span) 642 draft_span.style.backgroundImage="url(" + URL_SERVER + "phpgwapi/templates/"+template+"/images/foldertree_draft.png)"; 643 644 if (sent_span) 645 sent_span.style.backgroundImage="url(" + URL_SERVER + "phpgwapi/templates/"+template+"/images/foldertree_sent.png)"; 646 647 if (spam_span) 648 spam_span.style.backgroundImage="url(" + URL_SERVER + "phpgwapi/templates/"+template+"/images/foldertree_spam.png)"; 649 650 651 draw_paging(Element('tot_m').innerHTML); 652 if(document.getElementById("nINBOX/"+trashfolder+"tree_folders")) 653 { 654 var trash = document.createElement("SPAN"); 655 trash.id = 'empty_trash'; 656 trash.className = 'clean_folder'; 657 trash.style.cursor = 'pointer'; 658 trash.onclick = function () {empty_trash_imap();}; 659 trash.innerHTML = "["+get_lang("Clean")+"]"; 660 trash.title=get_lang("Empty trash"); 661 trash.onmouseover = function() {trash.style.color="red";}; 662 trash.onmouseout= function() {trash.style.color="#666666";}; 663 document.getElementById("nINBOX/"+trashfolder+"tree_folders").appendChild(trash); 664 } 665 if(document.getElementById("nINBOX/"+spamfolder+"tree_folders")) 666 { 667 var spam = document.createElement("SPAN"); 668 spam.id = 'empty_spam'; 669 spam.className = 'clean_folder'; 670 spam.style.cursor = 'pointer'; 671 spam.style.padding = '0 0 0 6px'; 672 spam.onclick = function () {empty_spam_imap();}; 673 spam.innerHTML = "["+get_lang("Clean")+"]"; 674 spam.title=get_lang("Empty Spam Folder"); 675 spam.onmouseover = function() {spam.style.color="red";}; 676 spam.onmouseout= function() {spam.style.color="#666666";}; 677 document.getElementById("nINBOX/"+spamfolder+"tree_folders").appendChild(spam); 678 } 679 680 // Draw right menu folders. 681 /* 682 var treeroot = document.getElementById('chroottree_folders'); 683 for (var linkBox = treeroot.firstChild; linkBox != null; linkBox = linkBox.nextSibling) 684 _dragArea.makeMenuBox(linkBox); 685 */ 686 687 if(!expresso_offline) 688 var display_unseen_in_mailbox = tree_folders.getNodeById( 'root' ); 689 else 690 var display_unseen_in_mailbox = tree_folders.getNodeById( 'local_root' ); 691 //if ( unseen_in_mailbox ) 692 // display_unseen_in_mailbox.alter({caption:'<font style=color:red>[</font><span id="dftree_root_unseen" style="color:red">' + unseen_in_mailbox +'</span><font style=color:red>]</font> ' + get_lang("My Folders")}); 693 //else 694 display_unseen_in_mailbox.alter({caption:get_lang("My Folders")}); 695 display_unseen_in_mailbox._refresh(); 696 697 var display_unseen_in_shared_folders = tree_folders.getNodeById( 'user' ); 698 if ( display_unseen_in_shared_folders ) 699 { 700 if ( unseen_in_shared_folders ) 701 display_unseen_in_shared_folders.alter({caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">' + unseen_in_shared_folders +'</span><font style=color:red>]</font> ' + get_lang("Shared folders")}); 702 else 703 display_unseen_in_shared_folders.alter({caption:get_lang("Shared folders")}); 704 display_unseen_in_shared_folders._refresh(); 705 } 706 } 707 708 if (!expresso_offline) { 709 var folder_create = ""; 710 var nm1 = ""; 711 if(tree_folders._folderPr.length > 0){ 712 var nm_folder = ""; 713 for(var i=0; i < tree_folders._folderPr.length; i++){ 714 nm_folder = tree_folders._folderPr[i].split(cyrus_delimiter); 715 if(nm_folder[0] == "INBOX"){ 716 if(nm1 == ""){ 717 nm1 = nm_folder[1]; 718 folder_create = "INBOX" + cyrus_delimiter + nm_folder[1] + ";"; 719 }else{ 720 if( nm1 != nm_folder[1]){ 721 folder_create += "INBOX" + cyrus_delimiter + nm_folder[1] + ";"; 722 nm1 = nm_folder[1]; 723 } 724 } 725 } 726 } 727 } 728 if(folder_create != ""){ 729 if(confirm(get_lang("There are folders with invalid format. Do you want to fix them?"))){ 730 var handler_correct_folders = function(data){ 731 //Timeout to release HTTPRequest , loadScript and update tree folders. 732 if(data) 733 setTimeout("expresso.connector.loadScript('jscode/TreeShow');ttreeBox.update_folder();",500); 734 }; 735 cExecute("expressoMail1_2.imap_functions.create_extra_mailbox",handler_correct_folders,"nw_folders="+folder_create); 736 } 737 } 738 } 739 } 740 741 742 function update_menu(data){ 743 /* 744 * @AUTHOR Rodrigo Souza dos Santos 745 * @DATE 2008/09/15 746 * @BRIEF When occurs a error in imap server show the message that is in file "error.html". 747 */ 748 if ( data && data.imap_error ) 749 { 750 if(preferences.use_local_messages==1 && expresso_local_messages.is_offline_installed){ 751 conf = confirm(get_lang("The expresso imap server is currently down, expresso noticed you have offline mail module installed, would you like to use it?")); 752 if(conf) { 753 window.onresize = function() { 754 var target = document.getElementById('divAppbox'); 755 target.style.height= document.body.clientHeight - 83; 756 }; 757 var target = document.getElementById('divAppbox'); 758 document.getElementById("divAppboxHeader").innerHTML=""; 759 target.style.height= document.body.clientHeight - 83; 760 expresso_local_messages.set_as_logged(account_id,0,true); 761 target.innerHTML = "<iframe src='offline.php?inside=1' width='100%' height='100%' frameBorder='0'></iframe>"; 762 return false; 763 } 764 } 765 expresso.connector.newRequest('error.html', URL_SERVER + 'expressoMail1_2/templates/'+template+'/error.html', 'GET', 766 function(data) 767 { 768 var target = document.getElementById('divAppbox'); 769 if ( target ) 770 target.innerHTML = data; 771 } 772 ); 773 return false; 774 } 775 776 draw_tree_folders(data); 777 if(data) { 778 build_quota(data); 779 var f_unseen = Element('dftree_'+current_folder+'_unseen'); 780 if(f_unseen && f_unseen.innerHTML) 781 Element('new_m').innerHTML = '<font face="Verdana" size="1" color="RED">'+f_unseen.innerHTML+'</font>'; 782 else 783 { 784 if( parseInt(Element('new_m').innerHTML) == 0 ) 785 Element('new_m').innerHTML = 0; 786 } 787 folders = data; 788 } 789 } 790 791 var handler_draw_box = function(data){ 792 draw_box( expresso.connector.unserialize( data ), 'INBOX', true); 793 //alternate_border(0); 1299 { 1300 if ((e.keyCode) == 46) 1301 { 1302 //delete_all_selected_msgs_imap(); 1303 proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); 1304 } 1305 } 1306 }; 1307 if (is_ie) 1308 table_element.style.cursor = "hand"; 1309 1310 tbody_element.setAttribute("id", "tbody_box"); 1311 table_element.appendChild(tbody_element); 1312 1313 var _divScroll = document.getElementById("divScrollMain_"+numBox); 1314 1315 var bar = document.getElementById("toolbar"); 1316 var offset = 0; 1317 1318 if(!_divScroll){ 1319 _divScroll = document.createElement("DIV"); 1320 _divScroll.id = "divScrollMain_"+numBox; 1321 } 1322 1323 _divScroll.style.overflowY = "auto"; 1324 _divScroll.style.overflowX = "hidden"; 1325 _divScroll.style.width ="100%"; 1326 1327 if (is_mozilla){ 1328 _divScroll.style.overflow = "-moz-scrollbars-vertical"; 1329 _divScroll.style.width ="99.3%"; 1330 } 1331 // Inicio: Redimensiona DIV SCROLL 1332 var bar = Element("toolbar"); 1333 var offset = 0; 1334 if(bar.style.visibility != 'hidden') 1335 offset = (bar.offsetHeight ? bar.offsetHeight : bar.clientHeight); 1336 var screenHeight = document.body.clientHeight ? document.body.clientHeight : document.body.offsetHeight; 1337 var defaultHeight = screenHeight - offset; 1338 _divScroll.style.height = defaultHeight - 110; 1339 Element('content_folders').style.height = defaultHeight - (is_ie ? 165 : 150); 1340 // Fim: Redimensiona DIV SCROLL 1341 _divScroll.appendChild(table_element); 1342 openTab.content_id[numBox].appendChild(_divScroll); 1343 1344 var f_unseen = 0; 1345 1346 if (headers_msgs.num_msgs == 0){ 1347 var tr_info = document.createElement("TR"); 1348 var td_info = document.createElement("TD"); 1349 td_info.setAttribute("colspan", "10"); 1350 td_info.setAttribute("background", "#FFF"); 1351 tr_info.setAttribute("id", "msg_info"); 1352 td_info.align = "center"; 1353 td_info.style.padding = "25px"; 1354 td_info.style.fontWeight = "bold"; 1355 td_info.style.fontSize = "11pt"; 1356 td_info.innerHTML = get_lang("This mail box is empty"); 1357 tr_info.appendChild(td_info); 1358 tbody_element.appendChild(tr_info); 1359 } 1360 1361 1362 for (var i=0; i < headers_msgs.length; i++){ 1363 if ((headers_msgs[i].Unseen == 'U') || (headers_msgs[i].Recent == 'N')) 1364 f_unseen++; 1365 tr_element = make_tr_message(headers_msgs[i], msg_folder); 1366 if (tr_element){ 1367 tbody_element.appendChild(tr_element); 1368 add_className(tr_element, i%2 != 0 ? 'tr_msg_read2' : 'tr_msg_read'); 1369 } 1370 _dragArea.makeDragged(tr_element, headers_msgs[i].msg_number, headers_msgs[i].subject, true); 1371 } 1372 1373 if ((preferences.use_shortcuts == '1') && (headers_msgs[0])) 1374 select_msg(headers_msgs[0].msg_number, 'null', true); 1375 1376 var tdFolders = Element("folderscol"); 1377 tdFolders.style.display = preferences.hide_folders == '1' ? "none" : ""; 1378 if ( !currentTab ) 1379 alternate_border(numBox); 1380 draw_footer_box(headers_msgs.num_msgs); 1381 Element('main_table').style.display = ''; 1382 if(debug) { 1383 var _eTime = new Date(); 1384 _eTime = _eTime.getTime(); 1385 alert("Carregou em "+(_eTime - _bTime)+" ms"); 1386 } 1387 var msg_folder = Element('msg_folder').value; 1388 var msg_number = Element('msg_number').value; 1389 if(!msg_folder && msg_number) { 1390 new_message('new','null'); 1391 } 1392 else if(msg_folder && msg_number){ 1393 expresso.connector.cacheNextRequest(); 1394 cExecute("expressoMail1_2.imap_functions.get_info_msg&msg_number="+ msg_number + "&msg_folder=" + url_encode(msg_folder), show_msg); 1395 Element('msg_folder').value = ''; 1396 Element('msg_number').value = ''; 1397 } 1398 1399 if(!is_ie) { 1400 var scripts = new Array("jscode/ccQuickAdd", 1401 "jscode/color_palette", 1402 "jscode/filter", 1403 "jscode/filters", 1404 "jscode/html2xhtml", 1405 "jscode/preferences", 1406 "jscode/QuickCatalogSearch", 1407 "jscode/QuickSearchUser", 1408 "jscode/rich_text_editor", 1409 "jscode/sharemailbox", 1410 "jscode/search", 1411 "jscode/TreeS", 1412 "jscode/TreeShow"); 1413 1414 expresso.connector.loadAllScripts(scripts); 1415 } 1416 // Loading Quota View Folder Component (if exists...) 1417 if(Element("table_quota")) 1418 expresso.connector.loadScript("jscode/InfoQuota"); 794 1419 }; 795 1420 796 // Action on change folders. 797 function change_folder(folder, folder_name){ 798 if (openTab.imapBox[0] != folder) 799 { 800 current_folder = folder; 801 var handler_draw_box = function(data) 802 { 803 alternate_border(0); 804 Element("border_id_0").innerHTML = " " + lang_folder(folder_name) + ' <font face="Verdana" size="1" color="#505050">[<span id="new_m"> </span> / <span id="tot_m"></span>]</font>'; 805 draw_box(data, folder, true); 806 draw_paging(data.num_msgs); 807 Element("tot_m").innerHTML = data.num_msgs; 808 update_menu(); 809 return true; 810 }; 811 proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort_box_type,search_box_type,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box); 812 // cExecute ("expressoMail1_2.imap_functions.get_range_msgs2&folder="+current_folder+"&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type="+sort_box_type+ "&search_box_type="+ search_box_type +"&sort_box_reverse="+sort_box_reverse+"", handler_draw_box); 813 } 814 else 815 alternate_border(0); 816 } 817 818 function open_folder(folder, folder_name){ 819 if (current_folder!= folder) { 820 current_folder = folder; 821 var handler_draw_box = function(data){ 822 numBox++; 823 create_border(folder_name,numBox.toString()); 824 draw_box(data, current_folder, false); 825 alternate_border(numBox); 826 return true; 827 }; 828 cExecute ("expressoMail1_2.imap_functions.get_range_msgs2&folder="+current_folder+"&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type="+sort_box_type+ "&search_box_type="+ search_box_type +"&sort_box_reverse="+sort_box_reverse+"", handler_draw_box); 829 } 830 else 831 alternate_border(numBox); 832 return true; 833 } 834 835 function sort_box(search, sort){ 836 var message_header = Element("message_header_"+search); 837 var handler_draw_box = function(data){ 838 draw_box(data, current_folder,true); 839 draw_paging(Element('tot_m').innerHTML); 840 //Mostrar as msgs nao lidas de acordo com o filtro de relevancia 841 var msgs_unseen = 0; 842 for(i in data){ 843 if(data[i].Unseen == 'U') 844 msgs_unseen++; 845 } 846 Element("new_m").innerHTML = '<font style="color:'+(msgs_unseen == 0 ? '': 'red')+'">' + msgs_unseen + '</font>'; 847 }; 848 849 if(sort_box_type == sort && search_box_type == search){ 850 sort_box_reverse = sort_box_reverse ? 0 : 1; 851 } 852 else if(sort_box_type != sort){ 853 if ( (sort == 'SORTFROM') || (sort == 'SORTSUBJECT') ) 854 sort_box_reverse = 0; 855 else 856 sort_box_reverse = 1; 857 } 858 859 // Global variable. 860 sort_box_type = sort; 861 search_box_type = search; 862 863 proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort,search,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box); 864 current_page = 1; 865 //Comentado para nao sobrepor o numero de msgs nao lidas ao utilizar os filtros 866 //update_menu(); 867 } 868 869 function make_tr_message(headers_msgs, msg_folder) 870 { 871 if ( InfoContact == null ) 872 InfoContact = new emInfoContact(); 873 874 var tr_element = document.createElement('tr'); 875 tr_element.style.height = preferences.line_height; 876 tr_element.id = headers_msgs.msg_number; 877 878 tr_element.msg_sample = ""; 879 //if(headers_msgs.msg_sample && headers_msgs.msg_sample.preview_msg_subject != "") 880 if(headers_msgs.msg_sample && preferences.preview_msg_subject == "1") 881 { 882 tr_element.msg_sample = headers_msgs.msg_sample.body.substr(0,120) + "..."; //trecho do body que sera exibido com o assunto; 883 } 884 885 tr_element.tip = ""; 886 if(headers_msgs.msg_sample && preferences.preview_msg_tip == "1") 887 { 888 tr_element.tip = headers_msgs.msg_sample.body.substr(3,300) + "..."; //trecho do body que sera exibido no tool-tip; 889 } 890 891 if ((headers_msgs.Unseen == 'U') || (headers_msgs.Recent == 'N')){ 892 if ((headers_msgs.Flagged == 'F') || (headers_msgs.Importance.toLowerCase().indexOf("high")!=-1 && parseInt(preferences.use_important_flag))) 893 add_className(tr_element, 'flagged_msg'); 894 add_className(tr_element, 'tr_msg_unread'); 895 } 896 else{ 897 if ((headers_msgs.Flagged == 'F') || (headers_msgs.Importance.toLowerCase().indexOf("high")!=-1 && parseInt(preferences.use_important_flag))) 898 add_className(tr_element,'flagged_msg'); 899 } 900 901 if ((headers_msgs.Unseen == 'U') || (headers_msgs.Recent == 'N')) 902 add_className(tr_element, 'tr_msg_unread'); 903 904 if (headers_msgs.Flagged == 'F') 905 add_className(tr_element,'flagged_msg'); 906 907 td_element1 = document.createElement("TD"); 908 td_element1.className = "td_msg"; 909 td_element1.setAttribute("width", "1%"); 910 chk_box_element = document.createElement("INPUT"); 911 chk_box_element.setAttribute("type", "checkbox"); 912 chk_box_element.className = "checkbox"; 913 chk_box_element.setAttribute("id", "check_box_message_"+headers_msgs.msg_number); 914 chk_box_element.onclick = function(e){ 915 if (is_ie) 916 changeBgColor(window.event,headers_msgs.msg_number); 917 else 918 changeBgColor(e,headers_msgs.msg_number); 919 }; 920 td_element1.appendChild(chk_box_element); 921 922 td_element2 = document.createElement("TD"); 923 td_element2.className = "td_msg"; 924 td_element2.setAttribute("width", "2%"); 925 if (headers_msgs.attachment && headers_msgs.attachment.number_attachments > 0) 926 td_element2.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/clip.gif" title="' + url_decode(headers_msgs.attachment.names) + '">'; 927 928 td_element21 = document.createElement("TD"); 929 td_element21.className = "td_msg"; 930 td_element21.setAttribute("width", "1%"); 931 td_element21.id = "td_message_answered_"+headers_msgs.msg_number; 932 933 if (headers_msgs.attachment && headers_msgs.attachment.number_attachments > 0) { 934 attach_name = headers_msgs.attachment.names.split(", "); 935 for(var item in attach_name) 936 { 937 if (url_decode(attach_name[item]) != 'smime.p7s' && url_decode(attach_name[item]) != 'smime.p7m'){ 938 td_element21.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/clip.gif" title="' + url_decode(attach_name[item]) + '">'; 939 break; 940 } 941 } 942 } 943 944 if ((headers_msgs.Forwarded == 'F') || (headers_msgs.Draft == 'X' && headers_msgs.Answered == 'A')){ 945 td_element21.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/forwarded.gif" title="'+get_lang('Forwarded')+'">'; 946 headers_msgs.Draft = ''; 947 headers_msgs.Answered = ''; 948 headers_msgs.Forwarded = 'F'; 949 } 950 else if (headers_msgs.Draft == 'X') 951 td_element21.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/draft.gif" title="'+get_lang('Draft')+'">'; 952 else if (headers_msgs.Answered == 'A') 953 td_element21.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/answered.gif" title="'+get_lang('Answered')+'">'; 954 else 955 td_element21.innerHTML = " "; 956 957 td_element22 = document.createElement("TD"); 958 td_element22.className = "td_msg"; 959 td_element22.setAttribute("width", "1%"); 960 td_element22.id = "td_message_signed_"+headers_msgs.msg_number; 961 962 //td_element23 = document.createElement("TD"); 963 //td_element23.setAttribute("width", "1%"); 964 //td_element23.id = "td_message_signed_"+headers_msgs.msg_number; 965 switch(headers_msgs.ContentType) 966 { 967 case "signature": 968 { 969 td_element22.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/signed_msg.gif" title="' + get_lang('Signed message') + '">'; 970 break; 971 } 972 case "cipher": 973 { 974 td_element22.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/lock.gif" title="' + get_lang('Crypted message') + '">'; 975 break; 976 } 977 default: 978 { 979 break; 980 } 981 }; 982 983 td_element23 = document.createElement("TD"); 984 td_element23.className = "td_msg"; 985 td_element23.setAttribute("width", "1%"); 986 td_element23.id = "td_message_important_"+headers_msgs.msg_number; 987 988 if (headers_msgs.Flagged == 'F' || (headers_msgs.Importance.toLowerCase().indexOf("high") != -1 && parseInt(preferences.use_important_flag))) 989 { 990 td_element23.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/important.gif" title="'+get_lang('Important')+'">'; 991 } 992 else 993 td_element23.innerHTML = " "; 994 995 td_element24 = document.createElement("TD"); 996 td_element24.className = "td_msg"; 997 td_element24.setAttribute("width", "1%"); 998 td_element24.id = "td_message_sent_"+headers_msgs.msg_number; 999 td_element24.innerHTML = " "; 1000 // preload image 1001 var _img_sent = new Image(); 1002 _img_sent.src = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/sent.gif'; 1003 1004 td_element3 = document.createElement("TD"); 1005 td_element3.className = "td_msg"; 1006 td_element3.id = "td_who_"+ headers_msgs.msg_number; 1007 td_element3.setAttribute("width", "20%"); 1008 var _onclick = function(){InfoContact.hide();proxy_mensagens.get_msg(headers_msgs.msg_number, msg_folder,true, show_msg);}; 1009 td_element3.onclick = _onclick; 1010 td_element3.innerHTML = ' '; 1011 1012 if (typeof(headers_msgs.from) == 'undefined') 1013 return false; 1014 if(headers_msgs.from.email.toLowerCase() == Element("user_email").value) 1015 { 1016 td_element3.onmouseover = function () {this.title=headers_msgs.to.email;}; 1017 if (headers_msgs.Draft == 'X') 1018 td_element3.innerHTML += "<span style=\"color:red\">("+get_lang("Draft")+") </span>"; 1019 else{ 1020 if(headers_msgs.to.email != null && headers_msgs.to.email.toLowerCase() != Element("user_email").value) 1021 td_element24.innerHTML = '<img valign="center" src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/sent.gif" title="'+get_lang('Sent')+'">'; 1022 1023 if ((headers_msgs.to)&&(headers_msgs.to.name != null)) 1024 td_element3.innerHTML += headers_msgs.to.name; 1025 else if (headers_msgs.to){ 1026 td_element3.innerHTML += headers_msgs.to.email; 1027 } 1028 } 1029 } 1030 else{ 1031 if (headers_msgs.Draft == 'X'){ 1032 td_element3.innerHTML = "<span style=\"color:red\">("+get_lang("Draft")+") </span>"; 1033 } 1034 else{ 1035 var spanSender = document.createElement("SPAN"); 1036 spanSender.onmouseover = function (event) {this.style.textDecoration = "underline";try {InfoContact.begin(this,headers_msgs.from.email)} catch(e){};}; 1037 spanSender.onmouseout = function (){ try {this.style.textDecoration = "none"; clearTimeout(InfoContact.timeout);} catch(e){}}; 1038 spanSender.innerHTML = headers_msgs.from.name != null ? headers_msgs.from.name : headers_msgs.from.email; 1039 if (spanSender.innerHTML.indexOf(" ") == '-1' && spanSender.innerHTML.length > 25){ 1040 spanSender.innerHTML = spanSender.innerHTML.substring(0,25) + "..."; 1041 } 1042 else if (spanSender.innerHTML.length > 40 ){ 1043 spanSender.innerHTML = spanSender.innerHTML.substring(0,40) + "..."; 1044 } 1045 td_element3.appendChild(spanSender); 1046 } 1047 } 1048 td_element4 = document.createElement("TD"); 1049 td_element4.className = "td_msg"; 1050 td_element4.setAttribute("width", "50%"); 1051 td_element4.onclick = _onclick; 1052 // td_element4.setAttribute("style","white-space:nowrap;"); 1053 td_element4.innerHTML = !is_ie ? "<a nowrap id='a_message_"+tr_element.id+"'> " : " "; 1054 1055 if ((headers_msgs.subject)&&(headers_msgs.subject.length > 50)) 1056 { 1057 // if( (headers_msgs.subject.length+tr_element.msg_sample.length)> 1058 td_element4.innerHTML += headers_msgs.subject.substring(0,50) + "..." + "<span style=\"color:#b3b3b3;\"> " + tr_element.msg_sample +"</span>";//modificacao feita para exibir o trecho do body ao lado do assunto da mensagem; 1059 } 1060 else 1061 { 1062 td_element4.innerHTML += headers_msgs.subject + "<span style=\"color:#b3b3b3;\"> " + tr_element.msg_sample + "</span>";//modificacao feita para exibir o trecho do body ao lado do assunto da mensagem; 1063 } 1064 1065 td_element4.title=tr_element.tip; 1066 if(!is_ie){ 1067 td_element4.innerHTML += "</a>"; 1068 } 1069 1070 1071 td_element5 = document.createElement("TD"); 1072 td_element5.className = "td_msg"; 1073 td_element5.setAttribute("width", "14%"); 1074 td_element5.onclick = _onclick; 1075 td_element5.setAttribute("align", "center"); 1076 td_element5.innerHTML = headers_msgs.udate; 1077 1078 td_element6 = document.createElement("TD"); 1079 td_element6.className = "td_msg"; 1080 td_element6.setAttribute("width", "14%"); 1081 td_element6.onclick = _onclick; 1082 td_element6.setAttribute("noWrap","true"); 1083 td_element6.setAttribute("align", "center"); 1084 1085 td_element6.innerHTML = borkb(headers_msgs.Size); 1086 1087 tr_element.appendChild(td_element1); 1088 tr_element.appendChild(td_element2); 1089 tr_element.appendChild(td_element21); 1090 tr_element.appendChild(td_element22); 1091 tr_element.appendChild(td_element23); 1092 tr_element.appendChild(td_element24); 1093 tr_element.appendChild(td_element3); 1094 tr_element.appendChild(td_element4); 1095 tr_element.appendChild(td_element5); 1096 tr_element.appendChild(td_element6); 1097 return tr_element; 1098 } 1099 1100 1101 // Draw the inbox and another folders 1102 function draw_box(headers_msgs, msg_folder, alternate){ 1103 if ( _dragArea == null ) 1104 _dragArea = new DragArea( ); 1105 1106 if (alternate) 1107 kill_current_box(); 1108 1109 if(is_ie) 1110 document.getElementById("border_table").width = "99.5%"; 1111 1112 openTab.content_id[numBox] = document.getElementById("content_id_"+numBox); 1113 openTab.imapBox[numBox] = msg_folder; 1114 openTab.type[numBox] = 0; 1115 1116 table_message_header_box = document.getElementById("table_message_header_box_"+numBox); 1117 if (table_message_header_box == null){ 1118 var table_element = document.createElement("TABLE"); 1119 var tbody_element = document.createElement("TBODY"); 1120 table_element.setAttribute("id", "table_message_header_box_"+numBox); 1121 table_element.className = "table_message_header_box"; 1122 1123 tr_element = document.createElement("TR"); 1124 tr_element.className = "message_header"; 1125 td_element1 = document.createElement("TD"); 1126 td_element1.setAttribute("width", "1%"); 1127 chk_box_element = document.createElement("INPUT"); 1128 chk_box_element.id = "chk_box_select_all_messages"; 1129 chk_box_element.setAttribute("type", "checkbox"); 1130 chk_box_element.className = "checkbox"; 1131 chk_box_element.onclick = function(){select_all_messages(this.checked);}; 1132 chk_box_element.onmouseover = function () {this.title=get_lang('Select all messages.');}; 1133 chk_box_element.onkeydown = function (e){ 1134 if (is_ie) 1135 { 1136 if ((window.event.keyCode) == 46) 1137 proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); 1138 } 1139 else 1140 { 1141 if ((e.keyCode) == 46) 1142 proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); 1143 } 1144 }; 1145 1146 td_element1.appendChild(chk_box_element); 1147 1148 td_element2 = document.createElement("TD"); 1149 td_element2.setAttribute("width", "7%"); 1150 td_element3 = document.createElement("TD"); 1151 td_element3.setAttribute("width", "29%"); 1152 td_element3.onclick = function () {sort_box(search_box_type,'SORTFROM');}; 1153 td_element3.id = "message_header_SORTFROM_"+numBox; 1154 td_element3.align = "left"; 1155 td_element3.innerHTML = get_lang("Who"); 1156 1157 td_element4 = document.createElement("TD"); 1158 td_element4.setAttribute("width", "38%"); 1159 td_element4.onclick = function () {sort_box(search_box_type,'SORTSUBJECT');}; 1160 td_element4.id = "message_header_SORTSUBJECT_"+numBox; 1161 td_element4.align = "left"; 1162 td_element4.innerHTML = get_lang("Subject"); 1163 1164 td_element5 = document.createElement("TD"); 1165 td_element5.setAttribute("width", "14%"); 1166 td_element5.onclick = function () {sort_box(search_box_type,'SORTARRIVAL');}; 1167 td_element5.id = "message_header_SORTARRIVAL_"+numBox; 1168 td_element5.align = "center"; 1169 td_element5.innerHTML = get_lang("Date"); 1170 td_element6 = document.createElement("TD"); 1171 td_element6.setAttribute("width", "14%"); 1172 td_element6.onclick = function () {sort_box(search_box_type,'SORTSIZE');}; 1173 td_element6.id = "message_header_SORTSIZE_"+numBox; 1174 td_element6.align = "left"; 1175 td_element6.innerHTML = get_lang("Size"); 1176 1177 tr_element.appendChild(td_element1); 1178 tr_element.appendChild(td_element2); 1179 var td_element21 = document.createElement("TD"); 1180 td_element21.innerHTML = " "; 1181 var td_element22 = document.createElement("TD"); 1182 td_element22.innerHTML = " "; 1183 var td_element23 = document.createElement("TD"); 1184 td_element23.innerHTML = " "; 1185 tr_element.appendChild(td_element21); 1186 tr_element.appendChild(td_element22); 1187 tr_element.appendChild(td_element23); 1188 tr_element.appendChild(td_element3); 1189 tr_element.appendChild(td_element4); 1190 tr_element.appendChild(td_element5); 1191 tr_element.appendChild(td_element6); 1192 tbody_element.appendChild(tr_element); 1193 table_element.appendChild(tbody_element); 1194 openTab.content_id[numBox].appendChild(table_element); 1195 } 1196 draw_header_box(); 1197 var table_element = document.createElement("TABLE"); 1198 var tbody_element = document.createElement("TBODY"); 1199 table_element.id = "table_box"; 1200 table_element.className = "table_box"; 1201 table_element.borderColorDark = "#bbbbbb"; 1202 table_element.frame = "void"; 1203 table_element.rules = "rows"; 1204 table_element.cellPadding = "0"; 1205 table_element.cellSpacing = "0"; 1206 1207 table_element.onkeydown = function (e){ 1208 if (is_ie) 1209 { 1210 if ((window.event.keyCode) == 46) 1211 { 1212 //delete_all_selected_msgs_imap(); 1213 proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); 1214 } 1215 } 1216 else 1217 { 1218 if ((e.keyCode) == 46) 1219 { 1220 //delete_all_selected_msgs_imap(); 1221 proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); 1222 } 1223 } 1224 }; 1225 if (is_ie) 1226 table_element.style.cursor = "hand"; 1227 1228 tbody_element.setAttribute("id", "tbody_box"); 1229 table_element.appendChild(tbody_element); 1230 1231 var _divScroll = document.getElementById("divScrollMain_"+numBox); 1232 1233 var bar = document.getElementById("toolbar"); 1234 var offset = 0; 1235 1236 if(!_divScroll){ 1237 _divScroll = document.createElement("DIV"); 1238 _divScroll.id = "divScrollMain_"+numBox; 1239 } 1240 1241 _divScroll.style.overflowY = "auto"; 1242 _divScroll.style.overflowX = "hidden"; 1243 _divScroll.style.width ="100%"; 1244 1245 if (is_mozilla){ 1246 _divScroll.style.overflow = "-moz-scrollbars-vertical"; 1247 _divScroll.style.width ="99.3%"; 1248 } 1249 // Inicio: Redimensiona DIV SCROLL 1250 var bar = Element("toolbar"); 1251 var offset = 0; 1252 if(bar.style.visibility != 'hidden') 1253 offset = (bar.offsetHeight ? bar.offsetHeight : bar.clientHeight); 1254 var screenHeight = document.body.clientHeight ? document.body.clientHeight : document.body.offsetHeight; 1255 var defaultHeight = screenHeight - offset; 1256 _divScroll.style.height = defaultHeight - 110; 1257 Element('content_folders').style.height = defaultHeight - (is_ie ? 165 : 150); 1258 // Fim: Redimensiona DIV SCROLL 1259 _divScroll.appendChild(table_element); 1260 openTab.content_id[numBox].appendChild(_divScroll); 1261 1262 var f_unseen = 0; 1263 1264 if (headers_msgs.num_msgs == 0){ 1265 var tr_info = document.createElement("TR"); 1266 var td_info = document.createElement("TD"); 1267 td_info.setAttribute("colspan", "10"); 1268 td_info.setAttribute("background", "#FFF"); 1269 tr_info.setAttribute("id", "msg_info"); 1270 td_info.align = "center"; 1271 td_info.style.padding = "25px"; 1272 td_info.style.fontWeight = "bold"; 1273 td_info.style.fontSize = "11pt"; 1274 td_info.innerHTML = get_lang("This mail box is empty"); 1275 tr_info.appendChild(td_info); 1276 tbody_element.appendChild(tr_info); 1277 } 1278 1279 1280 for (var i=0; i < headers_msgs.length; i++){ 1281 if ((headers_msgs[i].Unseen == 'U') || (headers_msgs[i].Recent == 'N')) 1282 f_unseen++; 1283 tr_element = make_tr_message(headers_msgs[i], msg_folder); 1284 if (tr_element){ 1285 tbody_element.appendChild(tr_element); 1286 add_className(tr_element, i%2 != 0 ? 'tr_msg_read2' : 'tr_msg_read'); 1287 } 1288 _dragArea.makeDragged(tr_element, headers_msgs[i].msg_number, headers_msgs[i].subject, true); 1289 } 1290 1291 if ((preferences.use_shortcuts == '1') && (headers_msgs[0])) 1292 select_msg(headers_msgs[0].msg_number, 'null', true); 1293 1294 var tdFolders = Element("folderscol"); 1295 tdFolders.style.display = preferences.hide_folders == '1' ? "none" : ""; 1296 if ( !currentTab ) 1297 alternate_border(numBox); 1298 draw_footer_box(headers_msgs.num_msgs); 1299 Element('main_table').style.display = ''; 1300 if(debug) { 1301 var _eTime = new Date(); 1302 _eTime = _eTime.getTime(); 1303 alert("Carregou em "+(_eTime - _bTime)+" ms"); 1304 } 1305 var msg_folder = Element('msg_folder').value; 1306 var msg_number = Element('msg_number').value; 1307 if(!msg_folder && msg_number) { 1308 new_message('new','null'); 1309 } 1310 else if(msg_folder && msg_number){ 1311 expresso.connector.cacheNextRequest(); 1312 cExecute("expressoMail1_2.imap_functions.get_info_msg&msg_number="+ msg_number + "&msg_folder=" + url_encode(msg_folder), show_msg); 1313 Element('msg_folder').value = ''; 1314 Element('msg_number').value = ''; 1315 } 1316 1317 if(!is_ie) { 1318 var scripts = new Array("jscode/ccQuickAdd", 1319 "jscode/color_palette", 1320 "jscode/filter", 1321 "jscode/filters", 1322 "jscode/html2xhtml", 1323 "jscode/preferences", 1324 "jscode/QuickCatalogSearch", 1325 "jscode/QuickSearchUser", 1326 "jscode/rich_text_editor", 1327 "jscode/sharemailbox", 1328 "jscode/search", 1329 "jscode/TreeS", 1330 "jscode/TreeShow"); 1331 1332 expresso.connector.loadAllScripts(scripts); 1333 } 1334 // Loading Quota View Folder Component (if exists...) 1335 if(Element("table_quota")) 1336 expresso.connector.loadScript("jscode/InfoQuota"); 1337 }; 1338 1339 1340 1421 1422
Note: See TracChangeset
for help on using the changeset viewer.