[ Index ]
 

Code source de eGroupWare 1.2.106-2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/felamimail/inc/ -> class.uifelamimail.inc.php (source)

   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','&nbsp;');
 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 . '&nbsp;' . $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  ?>


Généré le : Sun Feb 25 17:20:01 2007 par Balluche grâce à PHPXref 0.7