| [ Index ] |
|
Code source de eGroupWare 1.2.106-2 |
1 <?php 2 /***************************************************************************\ 3 * eGroupWare - FeLaMiMail * 4 * http://www.linux-at-work.de * 5 * http://www.phpgw.de * 6 * http://www.egroupware.org * 7 * Written by : Lars Kneschke [lkneschke@linux-at-work.de] * 8 * ------------------------------------------------- * 9 * This program is free software; you can redistribute it and/or modify it * 10 * under the terms of the GNU General Public License as published by the * 11 * Free Software Foundation; version 2 of the License. * 12 \***************************************************************************/ 13 /* $Id: class.uifelamimail.inc.php 20042 2005-11-28 18:24:40Z lkneschke $ */ 14 15 class uifelamimail 16 { 17 var $public_functions = array 18 ( 19 'addVcard' => True, 20 'changeFilter' => True, 21 'changeFolder' => True, 22 'changeSorting' => True, 23 'compressFolder' => True, 24 'deleteMessage' => True, 25 'handleButtons' => True, 26 'hookAdmin' => True, 27 'toggleFilter' => True, 28 'viewMainScreen' => True 29 ); 30 31 var $mailbox; // the current folder in use 32 var $startMessage; // the first message to show 33 var $sort; // how to sort the messages 34 var $moveNeeded; // do we need to move some messages? 35 36 function uifelamimail() 37 { 38 if(isset($_POST["mark_unread_x"])) 39 $_POST["mark_unread"] = "true"; 40 if(isset($_POST["mark_read_x"])) 41 $_POST["mark_read"] = "true"; 42 if(isset($_POST["mark_unflagged_x"])) 43 $_POST["mark_unflagged"] = "true"; 44 if(isset($_POST["mark_flagged_x"])) 45 $_POST["mark_flagged"] = "true"; 46 if(isset($_POST["mark_deleted_x"])) 47 $_POST["mark_deleted"] = "true"; 48 49 $this->displayCharset = $GLOBALS['egw']->translation->charset(); 50 $this->bofelamimail =& CreateObject('felamimail.bofelamimail',$this->displayCharset); 51 $this->bofilter =& CreateObject('felamimail.bofilter'); 52 $this->bopreferences =& CreateObject('felamimail.bopreferences'); 53 $this->preferences = $this->bopreferences->getPreferences(); 54 $this->botranslation =& CreateObject('phpgwapi.translation'); 55 56 if(isset($_POST["mailbox"]) && 57 $_GET["menuaction"] == "felamimail.uifelamimail.handleButtons" && 58 empty($_POST["mark_unread"]) && 59 empty($_POST["mark_read"]) && 60 empty($_POST["mark_unflagged"]) && 61 empty($_POST["mark_flagged"]) && 62 empty($_POST["mark_deleted"])) 63 { 64 if ($_POST["folderAction"] == "changeFolder") 65 { 66 // change folder 67 $this->bofelamimail->sessionData['mailbox'] = $_POST["mailbox"]; 68 $this->bofelamimail->sessionData['startMessage']= 1; 69 $this->bofelamimail->sessionData['sort'] = $this->preferences['sortOrder']; 70 $this->bofelamimail->sessionData['activeFilter']= -1; 71 } 72 elseif($_POST["folderAction"] == "moveMessage") 73 { 74 //print "move messages<br>"; 75 $this->bofelamimail->sessionData['mailbox'] = urldecode($_POST["oldMailbox"]); 76 77 // $this->bofelamimail->sessionData['startMessage']= 1; 78 if (is_array($_POST["msg"])) 79 { 80 // we need to initialize the classes first 81 $this->moveNeeded = "1"; 82 } 83 } 84 } 85 86 // elseif(isset($_POST["mailbox"]) && 87 // $_GET["menuaction"] == "felamimail.uifelamimail.handleButtons" && 88 // !empty($_POST["mark_deleted"])) 89 // { 90 // delete messages 91 // $this->bofelamimail->sessionData['startMessage']= 1; 92 // } 93 // elseif($_GET["menuaction"] == "felamimail.uifelamimail.deleteMessage") 94 // { 95 // delete 1 message from the mail reading window 96 // $this->bofelamimail->sessionData['startMessage']= 1; 97 // } 98 elseif(isset($_POST["filter"]) || isset($_GET["filter"])) 99 { 100 // new search filter defined, lets start with message 1 101 $this->bofelamimail->sessionData['startMessage']= 1; 102 } 103 104 // navigate for and back 105 if(isset($_GET["startMessage"])) 106 { 107 $this->bofelamimail->sessionData['startMessage'] = $_GET["startMessage"]; 108 } 109 110 $this->bofelamimail->saveSessionData(); 111 112 $this->mailbox = $this->bofelamimail->sessionData['mailbox']; 113 $this->startMessage = $this->bofelamimail->sessionData['startMessage']; 114 $this->sort = $this->bofelamimail->sessionData['sort']; 115 #$this->filter = $this->bofelamimail->sessionData['activeFilter']; 116 117 #$this->cats =& CreateObject('phpgwapi.categories'); 118 #$this->nextmatchs =& CreateObject('phpgwapi.nextmatchs'); 119 $this->t =& CreateObject('phpgwapi.Template',EGW_APP_TPL); 120 #$this->grants[$this->account] = EGW_ACL_READ + EGW_ACL_ADD + EGW_ACL_EDIT + EGW_ACL_DELETE; 121 // this need to fixed 122 // this does not belong to here 123 if($_GET['menuaction'] != 'felamimail.uifelamimail.hookAdmin' && 124 $_GET['menuaction'] != 'felamimail.uifelamimail.changeFolder') 125 { 126 $this->connectionStatus = $this->bofelamimail->openConnection(); 127 } 128 129 $this->rowColor[0] = $GLOBALS['egw_info']["theme"]["row_on"]; 130 $this->rowColor[1] = $GLOBALS['egw_info']["theme"]["row_off"]; 131 132 $this->dataRowColor[0] = $GLOBALS['egw_info']["theme"]["bg01"]; 133 $this->dataRowColor[1] = $GLOBALS['egw_info']["theme"]["bg02"]; 134 } 135 136 function addVcard() 137 { 138 $messageID = $_GET['messageID']; 139 $partID = $_GET['partID']; 140 $attachment = $this->bofelamimail->getAttachment($messageID,$partID); 141 142 $tmpfname = tempnam ($GLOBALS['egw_info']['server']['temp_dir'], "phpgw_"); 143 $fp = fopen($tmpfname, "w"); 144 fwrite($fp, $attachment['attachment']); 145 fclose($fp); 146 147 $vcard =& CreateObject('phpgwapi.vcard'); 148 $entry = $vcard->in_file($tmpfname); 149 $entry['owner'] = $GLOBALS['egw_info']['user']['account_id']; 150 $entry['access'] = 'private'; 151 $entry['tid'] = 'n'; 152 153 #_debug_array($entry); 154 #print "<br><br>"; 155 156 print quoted_printable_decode($entry['fn'])."<br>"; 157 158 #$boaddressbook =& CreateObject('addressbook.boaddressbook'); 159 #$soaddressbook =& CreateObject('addressbook.soaddressbook'); 160 #$soaddressbook->add_entry($entry); 161 #$ab_id = $boaddressbook->get_lastid(); 162 163 unlink($tmpfname); 164 165 $GLOBALS['egw']->common->egw_exit(); 166 } 167 168 function changeFilter() 169 { 170 if(isset($_POST["filter"])) 171 { 172 $data['quickSearch'] = $_POST["quickSearch"]; 173 $data['filter'] = $_POST["filter"]; 174 $this->bofilter->updateFilter($data); 175 } 176 elseif(isset($_GET["filter"])) 177 { 178 $data['filter'] = $_GET["filter"]; 179 $this->bofilter->updateFilter($data); 180 } 181 $this->viewMainScreen(); 182 } 183 184 function changeFolder() 185 { 186 // change folder 187 $this->bofelamimail->sessionData['mailbox'] = urldecode($_GET["mailbox"]); 188 $this->bofelamimail->sessionData['startMessage']= 1; 189 $this->bofelamimail->sessionData['sort'] = $this->preferences['sortOrder']; 190 $this->bofelamimail->sessionData['activeFilter']= -1; 191 192 $this->bofelamimail->saveSessionData(); 193 194 $this->mailbox = $this->bofelamimail->sessionData['mailbox']; 195 $this->startMessage = $this->bofelamimail->sessionData['startMessage']; 196 $this->sort = $this->bofelamimail->sessionData['sort']; 197 198 $this->connectionStatus = $this->bofelamimail->openConnection(); 199 200 $this->viewMainScreen(); 201 } 202 203 function changeSorting() 204 { 205 // change sorting 206 if(isset($_GET["sort"])) 207 { 208 $this->bofelamimail->sessionData['sort'] = $_GET["sort"]; 209 $this->sort = $_GET["sort"]; 210 211 $this->bofelamimail->saveSessionData(); 212 } 213 214 $this->viewMainScreen(); 215 } 216 217 /* function compressFolder() 218 { 219 $this->bofelamimail->compressFolder(); 220 $this->viewMainScreen(); 221 } */ 222 223 224 function deleteMessage() 225 { 226 $preferences = ExecMethod('felamimail.bopreferences.getPreferences'); 227 228 $message[] = $_GET["message"]; 229 230 $this->bofelamimail->deleteMessages($message); 231 232 // set the url to open when refreshing 233 $linkData = array 234 ( 235 'menuaction' => 'felamimail.uifelamimail.viewMainScreen' 236 ); 237 $refreshURL = $GLOBALS['egw']->link('/index.php',$linkData); 238 239 print "<script type=\"text/javascript\"> 240 opener.location.href = '".$refreshURL."'; 241 window.close();</script>"; 242 } 243 244 function display_app_header() 245 { 246 if(!@is_object($GLOBALS['egw']->js)) 247 { 248 $GLOBALS['egw']->js =& CreateObject('phpgwapi.javascript'); 249 } 250 #$GLOBALS['egw']->js->validate_file('foldertree','foldertree'); 251 $GLOBALS['egw']->js->validate_file('dhtmlxtree','js/dhtmlXCommon'); 252 $GLOBALS['egw']->js->validate_file('dhtmlxtree','js/dhtmlXTree'); 253 $GLOBALS['egw']->js->validate_file('jscode','viewMainScreen','felamimail'); 254 $GLOBALS['egw_info']['flags']['include_xajax'] = True; 255 $GLOBALS['egw']->common->egw_header(); 256 echo parse_navbar(); 257 } 258 259 function handleButtons() 260 { 261 if($this->moveNeeded == "1") 262 { 263 $this->bofelamimail->moveMessages($_POST["mailbox"], 264 $_POST["msg"]); 265 } 266 267 elseif(!empty($_POST["mark_deleted"]) && 268 is_array($_POST["msg"])) 269 { 270 $this->bofelamimail->deleteMessages($_POST["msg"]); 271 } 272 273 elseif(!empty($_POST["mark_unread"]) && 274 is_array($_POST["msg"])) 275 { 276 $this->bofelamimail->flagMessages("unread",$_POST["msg"]); 277 } 278 279 elseif(!empty($_POST["mark_read"]) && 280 is_array($_POST["msg"])) 281 { 282 $this->bofelamimail->flagMessages("read",$_POST["msg"]); 283 } 284 285 elseif(!empty($_POST["mark_unflagged"]) && 286 is_array($_POST["msg"])) 287 { 288 $this->bofelamimail->flagMessages("unflagged",$_POST["msg"]); 289 } 290 291 elseif(!empty($_POST["mark_flagged"]) && 292 is_array($_POST["msg"])) 293 { 294 $this->bofelamimail->flagMessages("flagged",$_POST["msg"]); 295 } 296 297 298 $this->viewMainScreen(); 299 } 300 301 function hookAdmin() 302 { 303 if(!$GLOBALS['egw']->acl->check('run',1,'admin')) 304 { 305 $GLOBALS['egw']->common->egw_header(); 306 echo parse_navbar(); 307 echo lang('access not permitted'); 308 $GLOBALS['egw']->log->message('F-Abort, Unauthorized access to felamimail.uifelamimail.hookAdmin'); 309 $GLOBALS['egw']->log->commit(); 310 $GLOBALS['egw']->common->egw_exit(); 311 } 312 313 if(!empty($_POST['profileID']) && is_int(intval($_POST['profileID']))) 314 { 315 $profileID = intval($_POST['profileID']); 316 $this->bofelamimail->setEMailProfile($profileID); 317 } 318 319 $boemailadmin =& CreateObject('emailadmin.bo'); 320 321 $profileList = $boemailadmin->getProfileList(); 322 $profileID = $this->bofelamimail->getEMailProfile(); 323 324 $this->display_app_header(); 325 326 $this->t->set_file(array("body" => "selectprofile.tpl")); 327 $this->t->set_block('body','main'); 328 $this->t->set_block('body','select_option'); 329 330 $this->t->set_var('lang_select_email_profile',lang('select emailprofile')); 331 $this->t->set_var('lang_site_configuration',lang('site configuration')); 332 $this->t->set_var('lang_save',lang('save')); 333 $this->t->set_var('lang_back',lang('back')); 334 335 $linkData = array 336 ( 337 'menuaction' => 'felamimail.uifelamimail.hookAdmin' 338 ); 339 $this->t->set_var('action_url',$GLOBALS['egw']->link('/index.php',$linkData)); 340 341 $linkData = array 342 ( 343 'menuaction' => 'emailadmin.ui.listProfiles' 344 ); 345 $this->t->set_var('lang_go_emailadmin', lang('use <a href="%1">EmailAdmin</a> to create profiles', $GLOBALS['egw']->link('/index.php',$linkData))); 346 347 $this->t->set_var('back_url',$GLOBALS['egw']->link('/admin/index.php')); 348 349 if(isset($profileList) && is_array($profileList)) 350 { 351 foreach($profileList as $key => $value) 352 { 353 #print "$key => $value<br>"; 354 #_debug_array($value); 355 $this->t->set_var('profileID',$value['profileID']); 356 $this->t->set_var('description',$value['description']); 357 if(is_int($profileID) && $profileID == $value['profileID']) 358 { 359 $this->t->set_var('selected','selected'); 360 } 361 else 362 { 363 $this->t->set_var('selected',''); 364 } 365 $this->t->parse('select_options','select_option',True); 366 } 367 } 368 369 $this->t->parse("out","main"); 370 print $this->t->get('out','main'); 371 372 } 373 374 function viewMainScreen() 375 { 376 #printf ("this->uifelamimail->viewMainScreen() start: %s<br>",date("H:i:s",mktime())); 377 $bopreferences =& CreateObject('felamimail.bopreferences'); 378 $preferences = $bopreferences->getPreferences(); 379 $bofilter =& CreateObject('felamimail.bofilter'); 380 $mailPreferences = $bopreferences->getPreferences(); 381 $uiwidgets =& CreateObject('felamimail.uiwidgets'); 382 383 $urlMailbox = urlencode($this->mailbox); 384 385 $maxMessages = $GLOBALS['egw_info']["user"]["preferences"]["common"]["maxmatchs"]; 386 387 388 $this->display_app_header(); 389 390 $this->t->set_file(array("body" => 'mainscreen.tpl')); 391 $this->t->set_block('body','main'); 392 $this->t->set_block('body','status_row_tpl'); 393 $this->t->set_block('body','header_row'); 394 $this->t->set_block('body','error_message'); 395 $this->t->set_block('body','quota_block'); 396 $this->t->set_block('body','subject_same_window'); 397 $this->t->set_block('body','subject_new_window'); 398 399 $this->translate(); 400 401 $this->t->set_var('oldMailbox',$urlMailbox); 402 $this->t->set_var('image_path',EGW_IMAGES); 403 #printf ("this->uifelamimail->viewMainScreen() Line 272: %s<br>",date("H:i:s",mktime())); 404 // ui for the quotas 405 if($quota = $this->bofelamimail->getQuotaRoot()) 406 { 407 if($quota['limit'] == 0) 408 { 409 $quotaPercent=100; 410 } 411 else 412 { 413 $quotaPercent=round(($quota['usage']*100)/$quota['limit']); 414 } 415 $quotaLimit=$this->show_readable_size($quota['limit']*1024); 416 $quotaUsage=$this->show_readable_size($quota['usage']*1024); 417 418 $this->t->set_var('leftWidth',$quotaPercent); 419 if($quotaPercent > 90) 420 { 421 $this->t->set_var('quotaBG','red'); 422 } 423 elseif($quotaPercent > 80) 424 { 425 $this->t->set_var('quotaBG','yellow'); 426 } 427 else 428 { 429 $this->t->set_var('quotaBG','#66ff66'); 430 } 431 432 if($quotaPercent > 50) 433 { 434 $this->t->set_var('quotaUsage_right',''); 435 $this->t->set_var('quotaUsage_left',$quotaUsage .'/'.$quotaLimit); 436 } 437 else 438 { 439 $this->t->set_var('quotaUsage_left',''); 440 $this->t->set_var('quotaUsage_right',$quotaUsage .'/'.$quotaLimit); 441 } 442 443 $this->t->parse('quota_display','quota_block',True); 444 } 445 else 446 { 447 $this->t->set_var('quota_display',' '); 448 } 449 450 $linkData = array 451 ( 452 'menuaction' => 'felamimail.uicompose.compose' 453 ); 454 $urlCompose = "egw_openWindowCentered('".$GLOBALS['egw']->link('/index.php',$linkData)."','test',700,750);"; 455 456 $navbarImages = array( 457 'mail_new' => array( 458 'action' => $urlCompose, 459 'tooltip' => lang('compose'), 460 ), 461 'read_small' => array( 462 'action' => "flagMessages('read',xajax.getFormValues('formMessageList'))", 463 'tooltip' => lang('mark selected as read'), 464 ), 465 'unread_small' => array( 466 'action' => "flagMessages('unread',xajax.getFormValues('formMessageList'))", 467 'tooltip' => lang('mark selected as unread'), 468 ), 469 'unread_flagged_small' => array( 470 'action' => "flagMessages('flagged',xajax.getFormValues('formMessageList'))", 471 'tooltip' => lang('mark selected as flagged'), 472 ), 473 'read_flagged_small' => array( 474 'action' => "flagMessages('unflagged',xajax.getFormValues('formMessageList'))", 475 'tooltip' => lang('mark selected as unflagged'), 476 ), 477 'delete' => array( 478 'action' => "deleteMessages(xajax.getFormValues('formMessageList'))", 479 'tooltip' => lang('mark as deleted'), 480 ), 481 ); 482 foreach($navbarImages as $buttonName => $buttonInfo) 483 { 484 $navbarButtons .= $uiwidgets->navbarButton($buttonName, $buttonInfo['action'], $buttonInfo['tooltip']); 485 } 486 #$navbarButtons .= $uiwidgets->navbarSeparator(); 487 $this->t->set_var('navbarButtonsLeft',$navbarButtons); 488 489 $navbarImages = array( 490 'last' => array( 491 'action' => "jumpEnd(); return false;", 492 'tooltip' => '', 493 ), 494 'right' => array( 495 'action' => "skipForward(); return false;", 496 'tooltip' => '', 497 ), 498 'left' => array( 499 'action' => "skipPrevious(); return false;", 500 'tooltip' => '', 501 ), 502 'first' => array( 503 'action' => "jumpStart(); return false;", 504 'tooltip' => '', 505 ), 506 ); 507 $navbarButtons = ''; 508 foreach($navbarImages as $buttonName => $buttonInfo) 509 { 510 $navbarButtons .= $uiwidgets->navbarButton($buttonName, $buttonInfo['action'], $buttonInfo['tooltip'],'right'); 511 } 512 #$navbarButtons .= $uiwidgets->navbarSeparator(); 513 $this->t->set_var('navbarButtonsRight',$navbarButtons); 514 515 // set the images 516 $listOfImages = array( 517 'read_small', 518 'unread_small', 519 'unread_flagged_small', 520 'read_flagged_small', 521 'trash', 522 'sm_envelope', 523 'write_mail', 524 'manage_filter', 525 'msg_icon_sm', 526 'mail_find', 527 'new', 528 'start_kde', 529 'previous_kde', 530 'next_kde', 531 'finnish_kde', 532 ); 533 534 foreach ($listOfImages as $image) 535 { 536 $this->t->set_var($image,$GLOBALS['egw']->common->image('felamimail',$image)); 537 } 538 // refresh settings 539 $refreshTime = $preferences['refreshTime']; 540 $this->t->set_var('refreshTime',$refreshTime*60*1000); 541 542 #// set the url to open when refreshing 543 #$linkData = array 544 #( 545 # 'menuaction' => 'felamimail.uifelamimail.viewMainScreen' 546 #); 547 #$this->t->set_var('refresh_url',$GLOBALS['egw']->link('/index.php',$linkData)); 548 549 // define the sort defaults 550 $dateSort = '0'; 551 $dateCSS = 'text_small'; 552 $fromSort = '3'; 553 $fromCSS = 'text_small'; 554 $subjectSort = '5'; 555 $subjectCSS = 'text_small'; 556 $sizeSort = '6'; 557 $sizeCSS = 'text_small'; 558 559 // and no overwrite the defaults 560 switch($this->sort) 561 { 562 // sort by date newest first 563 case '0': 564 $dateSort = '1'; 565 $dateCSS = 'text_small_bold'; 566 break; 567 // sort by date oldest first 568 case '1': 569 $dateSort = '0'; 570 $dateCSS = 'text_small_bold'; 571 break; 572 573 // sort by from z->a 574 case '2': 575 $fromSort = '3'; 576 $fromCSS = 'text_small_bold'; 577 break; 578 // sort by from a->z 579 case '3': 580 $fromSort = '2'; 581 $fromCSS = 'text_small_bold'; 582 break; 583 584 // sort by subject z->a 585 case '4': 586 $subjectSort = '5'; 587 $subjectCSS = 'text_small_bold'; 588 break; 589 // sort by subject a->z 590 case '5': 591 $subjectSort = '4'; 592 $subjectCSS = 'text_small_bold'; 593 break; 594 595 // sort by size z->a 596 case '6': 597 $sizeSort = '7'; 598 $sizeCSS = 'text_small_bold'; 599 break; 600 // sort by subject a->z 601 case '7': 602 $sizeSort = '6'; 603 $sizeCSS = 'text_small_bold'; 604 break; 605 } 606 607 // sort by date 608 $linkData = array 609 ( 610 'menuaction' => 'felamimail.uifelamimail.changeSorting', 611 'startMessage' => 1, 612 'sort' => $dateSort 613 ); 614 $this->t->set_var('url_sort_date',$GLOBALS['egw']->link('/index.php',$linkData)); 615 $this->t->set_var('css_class_date',$dateCSS); 616 617 // sort by from 618 $linkData = array 619 ( 620 'menuaction' => 'felamimail.uifelamimail.changeSorting', 621 'startMessage' => 1, 622 'sort' => $fromSort 623 ); 624 $this->t->set_var('url_sort_from',$GLOBALS['egw']->link('/index.php',$linkData)); 625 $this->t->set_var('css_class_from',$fromCSS); 626 627 // sort by subject 628 $linkData = array 629 ( 630 'menuaction' => 'felamimail.uifelamimail.changeSorting', 631 'startMessage' => 1, 632 'sort' => $subjectSort 633 ); 634 $this->t->set_var('url_sort_subject',$GLOBALS['egw']->link('/index.php',$linkData)); 635 $this->t->set_var('css_class_subject',$subjectCSS); 636 637 // sort by size 638 $linkData = array 639 ( 640 'menuaction' => 'felamimail.uifelamimail.changeSorting', 641 'startMessage' => 1, 642 'sort' => $sizeSort 643 ); 644 $this->t->set_var('url_sort_size',$GLOBALS['egw']->link('/index.php',$linkData)); 645 $this->t->set_var('css_class_size',$sizeCSS); 646 647 // create the filter ui 648 $filterList = $bofilter->getFilterList(); 649 $activeFilter = (isset($this->bofelamimail->sessionData['activeFilter'])?$this->bofelamimail->sessionData['activeFilter']:-1); 650 // -1 == no filter selected 651 if($activeFilter == -1) 652 $filterUI .= "<option value=\"-1\" selected>".lang('no filter')."</option>"; 653 else 654 $filterUI .= "<option value=\"-1\">".lang('no filter')."</option>"; 655 while(list($key,$value) = @each($filterList)) 656 { 657 $selected=""; 658 if($activeFilter == $key) $selected="selected"; 659 $filterUI .= "<option value=".$key." $selected>".$value['filterName']."</option>"; 660 } 661 $this->t->set_var('filter_options',$filterUI); 662 // 0 == quicksearch 663 if($activeFilter == '0') 664 $this->t->set_var('quicksearch',$filterList[0]['subject']); 665 666 if($this->connectionStatus != 'True') 667 { 668 $this->t->set_var('message',$this->connectionStatus); 669 $this->t->parse('header_rows','error_message',True); 670 } 671 else 672 { 673 #$folders = $this->bofelamimail->getFolderList('true'); 674 675 $headers = $this->bofelamimail->getHeaders($this->startMessage, $maxMessages, $this->sort); 676 677 $headerCount = count($headers['header']); 678 679 // if there aren't any messages left (eg. after delete or move) 680 // adjust $this->startMessage 681 if ($headerCount==0 && $this->startMessage > $maxMessages) 682 { 683 $this->startMessage = $this->startMessage - $maxMessages; 684 $headers = $this->bofelamimail->getHeaders($this->startMessage, $maxMessages, $this->sort); 685 $headerCount = count($headers['header']); 686 } 687 688 689 if ($mailPreferences['sent_folder'] == $this->mailbox) 690 { 691 $this->t->set_var('lang_from',lang("to")); 692 } 693 else 694 { 695 $this->t->set_var('lang_from',lang("from")); 696 } 697 $msg_icon_sm = $GLOBALS['egw']->common->image('felamimail','msg_icon_sm'); 698 699 $this->t->set_var('header_rows',$uiwidgets->messageTable($headers, 700 $mailPreferences['sent_folder'] == $this->mailbox,$preferences['messageNewWindow'])); 701 702 $firstMessage = $headers['info']['first']; 703 $lastMessage = $headers['info']['last']; 704 $totalMessage = $headers['info']['total']; 705 $langTotal = lang("total"); 706 } 707 708 $this->t->set_var('maxMessages',$i); 709 if($_GET["select_all"] == "select_all") 710 { 711 $this->t->set_var('checkedCounter',$i); 712 } 713 else 714 { 715 $this->t->set_var('checkedCounter','0'); 716 } 717 718 // set the select all/nothing link 719 if($_GET["select_all"] == "select_all") 720 { 721 // link to unselect all messages 722 $linkData = array 723 ( 724 'menuaction' => 'felamimail.uifelamimail.viewMainScreen' 725 ); 726 $selectLink = sprintf("<a class=\"body_link\" href=\"%s\">%s</a>", 727 $GLOBALS['egw']->link('/index.php',$linkData), 728 lang("Unselect All")); 729 $this->t->set_var('change_folder_checked',''); 730 $this->t->set_var('move_message_checked','checked'); 731 } 732 else 733 { 734 // link to select all messages 735 $linkData = array 736 ( 737 'select_all' => 'select_all', 738 'menuaction' => 'felamimail.uifelamimail.viewMainScreen' 739 ); 740 $selectLink = sprintf("<a class=\"body_link\" href=\"%s\">%s</a>", 741 $GLOBALS['egw']->link('/index.php',$linkData), 742 lang("Select all")); 743 $this->t->set_var('change_folder_checked','checked'); 744 $this->t->set_var('move_message_checked',''); 745 } 746 $this->t->set_var('select_all_link',$selectLink); 747 748 749 // create the links for the delete options 750 // "delete all" in the trash folder 751 // "compress folder" in normal folders 752 /* if ($mailPreferences['trash_folder'] == $this->mailbox && 753 $mailPreferences['deleteOptions'] == "move_to_trash") 754 { 755 $linkData = array 756 ( 757 'menuaction' => 'felamimail.uifelamimail.compressFolder' 758 ); 759 $trashLink = sprintf("<a class=\"body_link\" href=\"%s\">%s</a>", 760 $GLOBALS['egw']->link('/index.php',$linkData), 761 lang("delete all")); 762 763 $this->t->set_var('trash_link',$trashLink); 764 } 765 elseif($mailPreferences['deleteOptions'] == "mark_as_deleted") 766 { 767 $linkData = array 768 ( 769 'menuaction' => 'felamimail.uifelamimail.compressFolder' 770 ); 771 $trashLink = sprintf("<a class=\"body_link\" href=\"%s\">%s</a>", 772 $GLOBALS['egw']->link('/index.php',$linkData), 773 lang("compress folder")); 774 $this->t->set_var('trash_link',$trashLink); 775 }*/ 776 777 778 $this->t->set_var('message',lang("Viewing messages")." <b>$firstMessage</b> - <b>$lastMessage</b> ($totalMessage $langTotal)"); 779 if($firstMessage > 1) 780 { 781 $linkData = array 782 ( 783 'menuaction' => 'felamimail.uifelamimail.viewMainScreen', 784 'startMessage' => $this->startMessage - $maxMessages 785 ); 786 $link = $GLOBALS['egw']->link('/index.php',$linkData); 787 $this->t->set_var('link_previous',"<a class=\"body_link\" href=\"$link\">".lang("previous")."</a>"); 788 } 789 else 790 { 791 $this->t->set_var('link_previous',lang("previous")); 792 } 793 794 if($totalMessage > $lastMessage) 795 { 796 $linkData = array 797 ( 798 'menuaction' => 'felamimail.uifelamimail.viewMainScreen', 799 'startMessage' => $this->startMessage + $maxMessages 800 ); 801 $link = $GLOBALS['egw']->link('/index.php',$linkData); 802 $this->t->set_var('link_next',"<a class=\"body_link\" href=\"$link\">".lang("next")."</a>"); 803 } 804 else 805 { 806 $this->t->set_var('link_next',lang("next")); 807 } 808 $this->t->parse('status_row','status_row_tpl',True); 809 810 $folderObjects = $this->bofelamimail->getFolderObjects(true, false); 811 $folderTree = $uiwidgets->createHTMLFolder 812 ( 813 $folderObjects, 814 $this->mailbox, 815 lang('IMAP Server'), 816 $mailPreferences['username'].'@'.$mailPreferences['imapServerAddress'], 817 'divFolderTree', 818 FALSE 819 ); 820 821 $this->t->set_var('current_mailbox',$current_mailbox); 822 $this->t->set_var('folder_tree',$folderTree); 823 824 $this->t->set_var('options_folder',$options_folder); 825 826 $linkData = array 827 ( 828 'menuaction' => 'felamimail.uicompose.compose' 829 ); 830 #if($preferences['messageNewWindow']) 831 #{ 832 #$this->t->set_var('url_compose_empty',"javascript:displayMessage('".$GLOBALS['egw']->link('/index.php',$linkData)."','". 833 # ($preferences['messageNewWindow'] == 1 ? 'displayMessage' : '_blank')."');"); 834 $this->t->set_var('url_compose_empty',"egw_openWindowCentered('".$GLOBALS['egw']->link('/index.php',$linkData)."','test',700,egw_getWindowOuterHeight());"); 835 #} 836 #else 837 #{ 838 # $this->t->set_var('url_compose_empty',$GLOBALS['egw']->link('/index.php',$linkData)); 839 #} 840 841 842 $linkData = array 843 ( 844 'menuaction' => 'felamimail.uifilter.mainScreen' 845 ); 846 $this->t->set_var('url_filter',$GLOBALS['egw']->link('/index.php',$linkData)); 847 848 $linkData = array 849 ( 850 'menuaction' => 'felamimail.uifelamimail.handleButtons' 851 ); 852 $this->t->set_var('url_change_folder',$GLOBALS['egw']->link('/index.php',$linkData)); 853 854 $linkData = array 855 ( 856 'menuaction' => 'felamimail.uifelamimail.changeFilter' 857 ); 858 $this->t->set_var('url_search_settings',$GLOBALS['egw']->link('/index.php',$linkData)); 859 860 $this->t->set_var('lang_mark_messages_as',lang('mark messages as')); 861 $this->t->set_var('lang_delete',lang('delete')); 862 863 $this->t->parse("out","main"); 864 print $this->t->get('out','main'); 865 866 if($this->connectionStatus == 'True') 867 { 868 $this->bofelamimail->closeConnection(); 869 } 870 $GLOBALS['egw']->common->egw_footer(); 871 872 } 873 874 function array_merge_replace( $array, $newValues ) 875 { 876 foreach ( $newValues as $key => $value ) 877 { 878 if ( is_array( $value ) ) 879 { 880 if ( !isset( $array[ $key ] ) ) 881 { 882 $array[ $key ] = array(); 883 } 884 $array[ $key ] = $this->array_merge_replace( $array[ $key ], $value ); 885 } 886 else 887 { 888 if ( isset( $array[ $key ] ) && is_array( $array[ $key ] ) ) 889 { 890 $array[ $key ][ 0 ] = $value; 891 } 892 else 893 { 894 if ( isset( $array ) && !is_array( $array ) ) 895 { 896 $temp = $array; 897 $array = array(); 898 $array[0] = $temp; 899 } 900 $array[ $key ] = $value; 901 } 902 } 903 } 904 return $array; 905 } 906 907 /* Returns a string showing the size of the message/attachment */ 908 function show_readable_size($bytes, $_mode='short') 909 { 910 $bytes /= 1024; 911 $type = 'k'; 912 913 if ($bytes / 1024 > 1) 914 { 915 $bytes /= 1024; 916 $type = 'M'; 917 } 918 919 if ($bytes < 10) 920 { 921 $bytes *= 10; 922 settype($bytes, 'integer'); 923 $bytes /= 10; 924 } 925 else 926 settype($bytes, 'integer'); 927 928 return $bytes . ' ' . $type ; 929 } 930 931 function toggleFilter() 932 { 933 $this->bofelamimail->toggleFilter(); 934 $this->viewMainScreen(); 935 } 936 937 function translate() 938 { 939 $this->t->set_var('th_bg',$GLOBALS['egw_info']["theme"]["th_bg"]); 940 $this->t->set_var('bg_01',$GLOBALS['egw_info']["theme"]["bg01"]); 941 $this->t->set_var('bg_02',$GLOBALS['egw_info']["theme"]["bg02"]); 942 943 $this->t->set_var('lang_compose',lang('compose')); 944 $this->t->set_var('lang_edit_filter',lang('edit filter')); 945 $this->t->set_var('lang_move_selected_to',lang('move selected to')); 946 $this->t->set_var('lang_doit',lang('do it!')); 947 $this->t->set_var('lang_change_folder',lang('change folder')); 948 $this->t->set_var('lang_move_message',lang('move messages')); 949 $this->t->set_var('desc_read',lang("mark selected as read")); 950 $this->t->set_var('desc_unread',lang("mark selected as unread")); 951 $this->t->set_var('desc_important',lang("mark selected as flagged")); 952 $this->t->set_var('desc_unimportant',lang("mark selected as unflagged")); 953 $this->t->set_var('desc_deleted',lang("delete selected")); 954 $this->t->set_var('lang_date',lang("date")); 955 $this->t->set_var('lang_status',lang('status')); 956 $this->t->set_var('lang_size',lang("size")); 957 $this->t->set_var('lang_quicksearch',lang("Quicksearch")); 958 $this->t->set_var('lang_replied',lang("replied")); 959 $this->t->set_var('lang_read',lang("read")); 960 $this->t->set_var('lang_unread',lang("unread")); 961 $this->t->set_var('lang_deleted',lang("deleted")); 962 $this->t->set_var('lang_recent',lang("recent")); 963 $this->t->set_var('lang_flagged',lang("flagged")); 964 $this->t->set_var('lang_unflagged',lang("unflagged")); 965 $this->t->set_var('lang_subject',lang("subject")); 966 $this->t->set_var('lang_add_to_addressbook',lang("add to addressbook")); 967 $this->t->set_var('lang_no_filter',lang("no filter")); 968 $this->t->set_var('lang_connection_failed',lang("The connection to the IMAP Server failed!!")); 969 $this->t->set_var('lang_select_target_folder',lang("Simply click the target-folder")); 970 $this->t->set_var('lang_open_all',lang("open all")); 971 $this->t->set_var('lang_close_all',lang("close all")); 972 $this->t->set_var('lang_moving_messages_to',lang('moving messages to')); 973 $this->t->set_var('lang_empty_trash',lang('empty trash')); 974 $this->t->set_var('lang_compress_folder',lang('compress folder')); 975 } 976 } 977 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
| Généré le : Sun Feb 25 17:20:01 2007 | par Balluche grâce à PHPXref 0.7 |