Changeset 139
- Timestamp:
- 01/03/08 14:09:58 (16 years ago)
- Location:
- trunk/expressoMail1_2
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/inc/hook_home.inc.php
r2 r139 1 1 <?php 2 2 3 $current_app = 'expressoMail1_2'; 3 4 $current_name = 'ExpressoMail 1.2'; 4 5 $homedisplay = $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['mainscreen_showmail']; 5 6 $homedisplay = 'True'; 6 7 if($homedisplay=='True') 7 8 { … … 22 23 $expressoMail = CreateObject($current_app.'.imap_functions'); 23 24 $mbox_stream = $expressoMail-> open_mbox(); 24 $messages = imap_sort($mbox_stream, SORTARRIVAL, false, SE_UID);25 $messages = imap_sort($mbox_stream, SORTARRIVAL, true, SE_UID); 25 26 $num_new_messages = 0; 26 27 $subjects = array(); 28 27 29 for ($i = 0; $i < count($messages);$i++) 28 30 { … … 36 38 $new_m++; 37 39 if($new_m <= 10) { 38 $subject = $expressoMail->decode_string($header->fetchsubject); 39 if(strlen($subject) > 65) 40 $subject = substr($subject,0,65).' ...'; 40 $date_msg = date("d/m/Y",$header->udate); 41 if (date("d/m/Y") == $date_msg) 42 $date = date("H:i",$header->udate); 43 else 44 $date = $date_msg; 45 $subject = $expressoMail->decode_string($header->fetchsubject); 46 $text = "<div style='overflow:hidden;white-space:nowrap'>".$date." .: ".$subject."</div>"; 47 if(strlen($text) > 105) 48 $text = substr($text,0,105).' ...'; 41 49 42 50 $link_msg = $GLOBALS['phpgw']->link( 43 51 '/'.$current_app.'/index.php', 44 52 'msgball[msgnum]='.$msg_number.'&msgball[folder]=INBOX'); 45 $data[] = array('text' => $ subject, 'link' => $link_msg);46 } 53 $data[] = array('text' => $text, 'link' => $link_msg); 54 } 47 55 } 48 56 49 57 imap_close($mbox_stream); 50 51 $title = $current_name." - ".($new_m > 1 ? lang(" you have %1 new messages!",$new_m) : ($new_m == 1 ? lang("you have 1 new message!") : lang("you have no new messages")));58 59 $title = $current_name." - ".($new_m > 1 ? lang("You have %1 new messages!","<font color=red>".$new_m."</font>") : ($new_m == 1 ? str_replace("1","<font color=red>1</font>",lang("you have 1 new message!")) : lang("you have no new messages"))); 52 60 $GLOBALS['phpgw']->translation->add_app($current_app); 53 61 … … 81 89 $portalbox->set_controls($key,$value); 82 90 83 $portalbox->data = $data; 91 $portalbox->data = $data; 92 84 93 echo "\n".'<!-- BEGIN Mailbox info -->'."\n".$portalbox->draw($extra_data).'<!-- END Mailbox info -->'."\n"; 85 94 } -
trunk/expressoMail1_2/index.php
r135 r139 53 53 $template->set_var("refresh", lang("Refresh")); 54 54 $template->set_var("tools", lang("Tools")); 55 $template->set_var("lang_Open_Search_Window", lang("Open search window ..."));56 $template->set_var("lang_search_user", lang("Search user ..."));55 $template->set_var("lang_Open_Search_Window", lang("Open search window") . '...'); 56 $template->set_var("lang_search_user", lang("Search user") . '...'); 57 57 $template->set_var("upload_max_filesize",ini_get('upload_max_filesize')); 58 58 $template->set_var("msg_folder",$_GET['msgball']['folder']); -
trunk/expressoMail1_2/js/draw_api.js
r128 r139 124 124 if(!verify_session(data)) 125 125 return; 126 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"> 0</span>]</font>';126 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>'; 127 127 draw_box(data, current_folder); 128 128 draw_paging(data.num_msgs); … … 253 253 254 254 var content_id_0 = document.getElementById("content_id_0"); 255 //content_id_0.innerHTML = '';256 255 257 256 table_message_header_box = document.getElementById("table_message_header_box"); … … 316 315 td_element6.align = "left"; 317 316 td_element6.innerHTML = get_lang("Size"); 318 317 319 318 tr_element.appendChild(td_element1); 320 319 tr_element.appendChild(td_element2); … … 395 394 396 395 var f_unseen = 0; 396 397 if (headers_msgs.num_msgs == 0){ 398 td_info = document.createElement("H3"); 399 td_info.setAttribute("height", "25%"); 400 td_info.setAttribute("background", "#FFF"); 401 td_info.setAttribute("id", "msg_info"); 402 td_info.align = "center"; 403 td_info.innerHTML = get_lang("This mail box is empty"); 404 tbody_element.appendChild(td_info); 405 } 406 407 397 408 for (var i=0; i < headers_msgs.length; i++){ 398 409 if ((headers_msgs[i].Unseen == 'U') || (headers_msgs[i].Recent == 'N')) … … 627 638 } 628 639 else if(sort_box_type != sort){ 629 sort_box_reverse = 1; 630 } 631 640 if ( (sort == 'SORTFROM') || (sort == 'SORTSUBJECT') ) 641 sort_box_reverse = 0; 642 else 643 sort_box_reverse = 1; 644 } 645 632 646 // Global variable. 633 647 sort_box_type = sort; -
trunk/expressoMail1_2/js/filter.js
r128 r139 1 function populatedropdown(dayfield, monthfield, yearfield){ 2 var month=['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez']; 3 var today=new Date() 4 var dayfield=document.getElementById(dayfield) 5 var monthfield=document.getElementById(monthfield) 6 var yearfield=document.getElementById(yearfield) 7 for (var i=0; i<31; i++) 8 dayfield.options[i]=new Option(i+1, i+1) 9 dayfield.options[today.getDate()]=new Option(today.getDate(), today.getDate(), true, true) //select today's day 10 for (var m=0; m<12; m++) 11 monthfield.options[m]=new Option(month[m],m) 12 monthfield.options[today.getMonth()]=new Option(month[today.getMonth()], today.getMonth(), true, true) //select today's month 13 var thisyear=today.getFullYear() 14 for (var y=0; y<7; y++){ 15 yearfield.options[y]=new Option(thisyear, thisyear) 16 thisyear+=1 17 } 18 yearfield.options[0]=new Option(today.getFullYear(), today.getFullYear(), true, true) //select today's year 19 } 20 1 21 function cfilter(){ 2 22 … … 256 276 "</tr></table></td><td width='52%' valign='top'>"+get_lang('Emails of the account')+":<br><select multiple id='select_2' name='select_2' size='6' style='width:250px'></select>"+ 257 277 "</td></tr><tr><td colspan='3'><hr size='1' width='100%'></td>"+ 258 "</tr><tr><td colspan='3'>"+get_lang('During (days off the office)')+": <input type='text' id='select_days' size='3'> "+get_lang('day(s)')+"</td>"+ 278 "</tr><tr><td colspan='3'><input name='type' id='interval' checked='checked' type='radio'>"+get_lang('During')+": <input type='text' id='select_days' size='3'> "+get_lang('day(s)')+"</td>"+ 279 "</tr><tr><td colspan='3'><input name='type' id='date' type='radio' onChange=\"populatedropdown('daydropdown', 'monthdropdown', 'yeardropdown')\">"+get_lang('Set date')+": <select id='daydropdown'></select><select id='monthdropdown'></select><select id='yeardropdown'></select></td>"+ 259 280 "</tr><tr><td colspan='3'><hr size='1' width='100%'></td></tr><tr><td colspan='3'>"+get_lang('With the following message')+".:</td>"+ 260 281 "</tr><tr><td colspan='3'><textarea id='field8' rows='3' cols='50'></textarea></td></tr></table></div>"+ … … 473 494 }else{ 474 495 mount_rule = ""; 475 var fld_days = Element("select_days"); 496 if (Element("date").checked){ 497 var today=new Date(); 498 var entryDate = new Date(Date.UTC(Element("yeardropdown").value, Element("monthdropdown").value, parseInt(Element("daydropdown").value)+1, 0, 0, 0)); 499 var fld_days = parseInt((entryDate.getTime()-today.getTime())/86400000); 500 } 501 else 502 var fld_days = parseInt(Element("select_days").value); 503 476 504 var fld_emails = Element("select_1"); 477 505 var fld_men = Element("field8"); 478 506 mount_rule = "#vacation&&"; 479 if(LTrim(fld_days.value) != ""){ 480 if(fld_days.value > 0 && fld_days.value < 32){ 481 mount_rule += fld_days.value + "&&"; 482 }else{ 483 alert(get_lang("Inform between 1 and 31!")); 484 return false; 485 } 486 }else{ 507 if(fld_days != 0) 508 mount_rule += fld_days + "&&"; 509 else{ 487 510 alert(get_lang("Inform the days!")); 488 511 return false; -
trunk/expressoMail1_2/js/main.js
r135 r139 51 51 } 52 52 else{ 53 if (preferences.use_shortcuts == '1') 54 select_msg(msg_info.msg_number, 'null'); 53 55 // Call function to draw message 54 56 var id_msg_read = msg_info.msg_number +"_r"; … … 71 73 set_msg_class_to_read(msg_info['msg_number'], true); 72 74 73 if (preferences.use_shortcuts == '1')74 select_msg(msg_info.msg_number, 'null');75 76 75 if ((msg_info.DispositionNotificationTo) && ((msg_info.Unseen == 'U') || (msg_info.Recent == 'N'))){ 77 76 cExecute ("$this.imap_functions.send_notification¬ificationto="+msg_info.DispositionNotificationTo+"&subject="+url_encode(msg_info.subject), handler_sendNotification); … … 90 89 return; 91 90 if (data.length > 0){ 91 var msg_info = document.getElementById('msg_info') 92 if (msg_info != null) 93 main.removeChild(msg_info); 94 92 95 table_element = Element("table_box"); 93 96 var box = Element("tbody_box"); … … 101 104 if(parseInt(alert_new_msg) && data.new_msgs > 0) 102 105 alert(get_lang("You have %1 new", data['new_msgs'])+" "+(data['new_msgs'] > 1 ? get_lang("messages") : get_lang("message")) +"!"); 106 if(data.new_msgs > 0) 107 Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + parseInt(data.new_msgs); 103 108 } 104 109 update_menu(); … … 107 112 msg_range_end = (current_page*preferences.max_email_per_page); 108 113 msg_range_begin = (msg_range_end-(preferences.max_email_per_page)+1); 114 109 115 110 116 //Get element tBody. 111 117 main = Element("tbody_box"); 112 118 if(!main) 113 return; 119 return; 120 114 121 // Get all TR (messages) in tBody. 115 122 main_list = main.childNodes; 116 117 123 var tmp = ''; 118 124 var string_msgs_in_main = ''; 119 125 120 126 var len = main_list.length; 121 127 for (var j=0; j < len; j++) … … 123 129 124 130 string_msgs_in_main = tmp.substring(0,(tmp.length-1)); 125 131 update_quota(); 126 132 cExecute ("$this.imap_functions.refresh&folder="+current_folder+"&msgs_existent="+string_msgs_in_main+"&msg_range_begin="+msg_range_begin+"&msg_range_end="+msg_range_end+"&sort_box_type="+sort_box_type+"&search_box_type="+search_box_type+"&sort_box_reverse="+sort_box_reverse, handler_refresh); 127 133 } … … 145 151 if (msg_to_delete){ 146 152 if ( (msg_to_delete.style.backgroundColor != '') && (preferences.use_shortcuts == '1') ) 147 select_msg('null', 'down'); 153 { 154 if (!select_msg('null', 'down')) 155 select_msg('null', 'up') 156 } 148 157 mail_msg.removeChild(msg_to_delete); 149 158 } -
trunk/expressoMail1_2/js/shortcut.js
r135 r139 224 224 225 225 /* ExpressMail Functions */ 226 var shift_up_count = 0; 227 var shift_down_count = 0; 226 228 shortcut.add("N",function(){ new_message("new","null"); },{'disable_in_input':true}); 227 shortcut.add("Esc",function(){ delete_border(get_msg_id(), 'false'); },{'disable_in_input':false}); 229 230 shortcut.add("Esc",function(){ 231 var window_closed = false; 232 for(var window in arrayJSWin) 233 { 234 if (arrayJSWin[window].visible) 235 { 236 arrayJSWin[window].close(); 237 window_closed = true; 238 } 239 } 240 if (!window_closed) 241 delete_border(get_msg_id(), 'false'); 242 },{'disable_in_input':false}); 243 228 244 shortcut.add("I",function(){ exec_msg_action('print'); },{'disable_in_input':true}); 229 245 shortcut.add("E",function(){ exec_msg_action('forward'); },{'disable_in_input':true}); … … 232 248 if ( Element('border_id_0').className==='menu-sel' ) 233 249 { 250 var selected_msgs = ''; 251 var current_folder = get_current_folder(); 252 all_messages = Element('tbody_box').childNodes; 253 254 for (var i=0; i < all_messages.length; i++) 255 if (all_messages[i].style.backgroundColor != '') 256 selected_msgs += all_messages[i].id + ','; 257 258 selected_msgs = selected_msgs.substring(0,(selected_msgs.length-1)); 259 delete_msgs(current_folder, selected_msgs, 'null'); 260 } 261 else 262 exec_msg_action('delete'); 263 } 264 ,{'disable_in_input':true}); 265 266 shortcut.add("Ctrl+Up",function(){ exec_msg_action('previous'); },{'disable_in_input':true}); 267 shortcut.add("Ctrl+Down",function(){ exec_msg_action('next'); },{'disable_in_input':true}); 268 if (is_ie){ 269 shortcut.add("down",function(){ select_msg('null', 'down'); },{'disable_in_input':false}); 270 shortcut.add("up",function(){ select_msg('null', 'up'); },{'disable_in_input':false}); 271 shortcut.add("Shift+down",function(){ 272 if (shift_up_count > 0) 273 unselect_top_msg(); 274 else 275 select_bottom_msg(); 276 },{'disable_in_input':false, 'propagate':false}); 277 shortcut.add("Shift+up",function(){ 278 if (shift_down_count > 0) 279 unselect_bottom_msg(); 280 else 281 select_top_msg(); 282 },{'disable_in_input':false, 'propagate':false}); 283 } 284 else{ 285 shortcut.add("down",function(){ select_msg('null', 'down'); },{'type':'keypress', 'disable_in_input':false}); 286 shortcut.add("up",function(){ select_msg('null', 'up'); },{'type':'keypress', 'disable_in_input':false}); 287 shortcut.add("Shift+down",function(){ 288 if (shift_up_count > 0) 289 unselect_top_msg(); 290 else 291 select_bottom_msg(); 292 },{'type':'keypress','disable_in_input':false, 'propagate':false}); 293 shortcut.add("Shift+up",function(){ 294 if (shift_down_count > 0) 295 unselect_bottom_msg(); 296 else 297 select_top_msg(); 298 },{'type':'keypress','disable_in_input':false, 'propagate':false}); 299 } 300 301 shortcut.add("return",function(){ 302 if ( Element('border_id_0').className==='menu-sel' ) 303 { 234 304 all_messages = Element('tbody_box').childNodes; 235 305 for (var i=0; i < all_messages.length; i++) … … 237 307 if (all_messages[i].style.backgroundColor != '') 238 308 { 239 delete_msgs(get_current_folder(), all_messages[i].id, 'null');240 return;241 }242 }243 }244 else245 exec_msg_action('delete');246 }247 ,{'disable_in_input':true});248 249 shortcut.add("Ctrl+Up",function(){ exec_msg_action('previous'); },{'disable_in_input':true});250 shortcut.add("Ctrl+Down",function(){ exec_msg_action('next'); },{'disable_in_input':true});251 252 shortcut.add("down",function(){ select_msg('null', 'down'); },{'disable_in_input':false});253 shortcut.add("up",function(){ select_msg('null', 'up'); },{'disable_in_input':false});254 255 shortcut.add("return",function(){256 if ( Element('border_id_0').className==='menu-sel' )257 {258 all_messages = Element('tbody_box').childNodes;259 for (var i=0; i < all_messages.length; i++)260 {261 if (all_messages[i].style.backgroundColor != '')262 {263 309 Element("td_who_" + all_messages[i].id).onclick(); 264 310 return; … … 269 315 ,{'disable_in_input':true}); 270 316 317 shortcut.add("f9",function(){ 318 Element("em_refresh_button").onclick(); 319 return; 320 },{'disable_in_input':true}); 271 321 272 322 function exec_msg_action(action) … … 300 350 function select_msg(msg_number, keyboard_action) 301 351 { 352 if ( Element('border_id_0').className != 'menu-sel' ) 353 return; 354 355 shift_up_count = 0; 356 shift_down_count = 0; 357 302 358 if (msg_number != 'null') 303 359 { … … 319 375 { 320 376 all_messages = Element('tbody_box').childNodes; 321 for (var i=0; i < all_messages.length; i++) 322 { 323 if (all_messages[i].style.backgroundColor != '') 324 { 325 if (keyboard_action == 'down') 377 if (keyboard_action == 'down') 378 { 379 if (all_messages[all_messages.length-1].style.backgroundColor != '') 380 return false; 381 382 for (var i=all_messages.length-1; i >=0; i--) 383 { 384 if (all_messages[i].style.backgroundColor != '') 326 385 { 327 if (i+1 <= all_messages.length-1) 328 { 329 all_messages[i].style.color = ''; 330 all_messages[i].style.backgroundColor = ''; 331 332 all_messages[i+1].style.color = 'white'; 333 all_messages[i+1].style.backgroundColor = '#5194d2'; 334 } 335 else 336 { 337 return false; 338 } 386 all_messages[i+1].style.color = 'white'; 387 all_messages[i+1].style.backgroundColor = '#5194d2'; 388 break; 339 389 } 340 else if ( (keyboard_action == 'up') && (i-1 >= 0) ) 390 } 391 for (; i>=0; i--) 392 { 393 all_messages[i].style.color = ''; 394 all_messages[i].style.backgroundColor = ''; 395 } 396 return true; 397 } 398 else 399 { 400 if (all_messages[0].style.backgroundColor != '') 401 return false; 402 403 for (var i=0; i < all_messages.length; i++) 404 { 405 if (all_messages[i].style.backgroundColor != '') 341 406 { 342 all_messages[i].style.color = '';343 all_messages[i].style.backgroundColor = '';344 345 407 all_messages[i-1].style.color = 'white'; 346 408 all_messages[i-1].style.backgroundColor = '#5194d2'; 347 } 348 return; 349 } 350 } 351 } 352 } 409 break; 410 } 411 } 412 for (; i< all_messages.length; i++) 413 { 414 all_messages[i].style.color = ''; 415 all_messages[i].style.backgroundColor = ''; 416 } 417 return true; 418 } 419 } 420 } 421 422 function select_bottom_msg() 423 { 424 all_messages = Element('tbody_box').childNodes; 425 426 if (all_messages[all_messages.length-1].style.backgroundColor != '') 427 return; 428 429 for (var i=all_messages.length-1; i >=0; i--) 430 { 431 if ((all_messages[i].style.backgroundColor != '') && (i+1 <= all_messages.length-1)) 432 { 433 shift_down_count++; 434 all_messages[i+1].style.color = 'white'; 435 all_messages[i+1].style.backgroundColor = '#5194d2'; 436 break; 437 } 438 } 439 } 440 441 function select_top_msg() 442 { 443 all_messages = Element('tbody_box').childNodes; 444 445 if (all_messages[0].style.backgroundColor != '') 446 return; 447 448 for (var i=0; i <=all_messages.length-1; i++) 449 { 450 if (all_messages[i].style.backgroundColor != '') 451 { 452 shift_up_count++; 453 all_messages[i-1].style.color = 'white'; 454 all_messages[i-1].style.backgroundColor = '#5194d2'; 455 break; 456 } 457 } 458 } 459 460 function unselect_bottom_msg() 461 { 462 all_messages = Element('tbody_box').childNodes; 463 for (var i=all_messages.length-1; i >=0; i--) 464 { 465 if (all_messages[i].style.backgroundColor != '') 466 { 467 shift_down_count--; 468 all_messages[i].style.color = ''; 469 all_messages[i].style.backgroundColor = ''; 470 break; 471 } 472 } 473 } 474 475 function unselect_top_msg() 476 { 477 all_messages = Element('tbody_box').childNodes; 478 for (var i=0; i <=all_messages.length-1; i++) 479 { 480 if (all_messages[i].style.backgroundColor != '') 481 { 482 shift_up_count--; 483 all_messages[i].style.color = ''; 484 all_messages[i].style.backgroundColor = ''; 485 break; 486 } 487 } 488 } -
trunk/expressoMail1_2/templates/default/index.tpl
r118 r139 17 17 <table border="0" cellspacing="0" cellpadding="0" border="0"><tbody> 18 18 <tr><td class='content-menu-td' onclick='javascript:new_message("new","null");' onmouseover='javascript:set_menu_bg(this);' onmouseout='javascript:unset_menu_bg(this);'><div class='em_div_sidebox_menu'><img src='./templates/default/images/menu/createmail.gif'><span class="em_sidebox_menu">{new_message}</span></div></td></tr> 19 <tr><td class='content-menu-td' onclick='javascript:refresh();' onmouseover='javascript:set_menu_bg(this);' onmouseout='javascript:unset_menu_bg(this);'><div class='em_div_sidebox_menu'><img src='./templates/default/images/menu/checkmail.gif'><span class="em_sidebox_menu">{refresh}</span></div></td></tr>19 <tr><td class='content-menu-td' id='em_refresh_button' onclick='javascript:refresh();' onmouseover='javascript:set_menu_bg(this);' onmouseout='javascript:unset_menu_bg(this);'><div class='em_div_sidebox_menu'><img src='./templates/default/images/menu/checkmail.gif'><span class="em_sidebox_menu">{refresh}</span></div></td></tr> 20 20 <tr><td id="link_tools" class='content-menu-td' onmouseover='javascript:set_menu_bg(Element("link_tools"));' onmouseout='javascript:unset_menu_bg(this);'><div class='em_div_sidebox_menu'><img height='16px' src='./templates/default/images/menu/tools.gif'><span class="em_sidebox_menu">{tools} ...</span></div></td></tr> 21 21 </tbody></table>
Note: See TracChangeset
for help on using the changeset viewer.