function viewMainScreen() { #printf ("this->uifelamimail->viewMainScreen() start: %s<br>",date("H:i:s",mktime())); $bopreferences =& CreateObject('felamimail.bopreferences'); $bofilter =& CreateObject('felamimail.bofilter'); $uiwidgets =& CreateObject('felamimail.uiwidgets'); $preferences =& $bopreferences->getPreferences(); $urlMailbox = urlencode($this->mailbox); $imapServer =& $preferences->getIncomingServer(0); $activeIdentity =& $preferences->getIdentity(0); #_debug_array($activeIdentity); $maxMessages =& $GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs']; if (empty($maxMessages)) { $maxMessages = 23; } // this seems to be the number off messages that fit the height of the folder tree $userPreferences =& $GLOBALS['phpgw_info']['user']['preferences']['felamimail']; $this->display_app_header(); $this->t->set_file(array("body" => 'mainscreen.tpl')); $this->t->set_block('body', 'main'); $this->t->set_block('body', 'status_row_tpl'); $this->t->set_block('body', 'table_header_felamimail'); $this->t->set_block('body', 'table_header_outlook'); $this->t->set_block('body', 'error_message'); $this->t->set_block('body', 'quota_block'); $this->t->set_block('body', 'subject_same_window'); $this->t->set_block('body', 'subject_new_window'); $this->translate(); $this->t->set_var('oldMailbox', $urlMailbox); $this->t->set_var('image_path', PHPGW_IMAGES); #printf ("this->uifelamimail->viewMainScreen() Line 272: %s<br>",date("H:i:s",mktime())); $linkData = array('menuaction' => 'felamimail.uifelamimail.viewMainScreen'); $refreshURL = $GLOBALS['phpgw']->link('/index.php', $linkData); $this->t->set_var('reloadView', $refreshURL); // display a warning if vacation notice is active if (is_a($imapServer, 'defaultimap') && $imapServer->enableSieve) { $this->bosieve =& CreateObject('felamimail.bosieve', $imapServer); $this->bosieve->retrieveRules($this->bosieve->scriptName); $vacation = $this->bosieve->getVacation($this->bosieve->scriptName); } if (is_array($vacation) && $vacation['status'] == 'on') { $this->t->set_var('vacation_warning', html::image('phpgwapi', 'dialog_warning', false, 'style="vertical-align: middle; width: 16px;"') . lang('Vacation notice is active')); } else { $this->t->set_var('vacation_warning', ' '); } // ui for the quotas if ($this->connectionStatus !== false) { $quota = $this->bofelamimail->getQuotaRoot(); } else { $quota['limit'] = 'NOT SET'; } if ($quota !== false && $quota['limit'] != 'NOT SET') { $quotaDisplay = $uiwidgets->quotaDisplay($quota['usage'], $quota['limit']); $this->t->set_var('quota_display', $quotaDisplay); } else { $this->t->set_var('quota_display', ' '); } $linkData = array('menuaction' => 'felamimail.uicompose.compose'); $urlCompose = "egw_openWindowCentered('" . $GLOBALS['phpgw']->link('/index.php', $linkData) . "','compose', 700, egw_getWindowOuterHeight());"; $navbarImages = array('new' => array('action' => $urlCompose, 'tooltip' => lang('compose')), 'read_small' => array('action' => "flagMessages('read')", 'tooltip' => lang('mark selected as read')), 'unread_small' => array('action' => "flagMessages('unread')", 'tooltip' => lang('mark selected as unread')), 'unread_flagged_small' => array('action' => "flagMessages('flagged')", 'tooltip' => lang('mark selected as flagged')), 'read_flagged_small' => array('action' => "flagMessages('unflagged')", 'tooltip' => lang('mark selected as unflagged')), 'delete' => array('action' => "deleteMessages(xajax.getFormValues('formMessageList'))", 'tooltip' => lang('mark as deleted'))); foreach ($navbarImages as $buttonName => $buttonInfo) { $navbarButtons .= $uiwidgets->navbarButton($buttonName, $buttonInfo['action'], $buttonInfo['tooltip']); } $this->t->set_var('navbarButtonsLeft', $navbarButtons); $navbarImages = array('last' => array('action' => "jumpEnd(); return false;", 'tooltip' => ''), 'right' => array('action' => "skipForward(); return false;", 'tooltip' => ''), 'left' => array('action' => "skipPrevious(); return false;", 'tooltip' => ''), 'first' => array('action' => "jumpStart(); return false;", 'tooltip' => '')); $navbarButtons = ''; foreach ($navbarImages as $buttonName => $buttonInfo) { $navbarButtons .= $uiwidgets->navbarButton($buttonName, $buttonInfo['action'], $buttonInfo['tooltip'], 'right'); } $this->t->set_var('navbarButtonsRight', $navbarButtons); // set the images $listOfImages = array('read_small', 'unread_small', 'unread_flagged_small', 'read_flagged_small', 'trash', 'sm_envelope', 'write_mail', 'manage_filter', 'msg_icon_sm', 'mail_find', 'new', 'start_kde', 'previous_kde', 'next_kde', 'finnish_kde', 'ajax-loader'); foreach ($listOfImages as $image) { $this->t->set_var($image, $GLOBALS['phpgw']->common->image('felamimail', $image)); } $this->t->set_var('img_clear_left', html::image('felamimail', 'clear_left', lang('clear search'), 'style="margin-left:5px; cursor: pointer;" onclick="fm_clearSearch()"')); // refresh settings $refreshTime = $userPreferences['refreshTime']; $this->t->set_var('refreshTime', $refreshTime * 60 * 1000); // other settings $prefaskformove = intval($userPreferences['prefaskformove']) ? intval($userPreferences['prefaskformove']) : 0; $this->t->set_var('prefaskformove', $prefaskformove); #// set the url to open when refreshing #$linkData = array #( # 'menuaction' => 'felamimail.uifelamimail.viewMainScreen' #); #$this->t->set_var('refresh_url',$GLOBALS['phpgw']->link('/index.php',$linkData)); // define the sort defaults $dateSort = '0'; $dateCSS = 'text_small'; $fromSort = '3'; $fromCSS = 'text_small'; $subjectSort = '5'; $subjectCSS = 'text_small'; $sizeSort = '6'; $sizeCSS = 'text_small'; // and no overwrite the defaults switch ($this->sort) { // sort by date newest first case '0': $dateCSS = 'text_small_bold'; break; // sort by from z->a // sort by from z->a case '2': $fromCSS = 'text_small_bold'; break; // sort by from a->z // sort by from a->z case '3': $subjectCSS = 'text_small_bold'; break; // sort by size z->a // sort by size z->a case '6': $sizeCSS = 'text_small_bold'; break; } // sort by date $this->t->set_var('css_class_date', $dateCSS); // sort by from $this->t->set_var('css_class_from', $fromCSS); // sort by subject $this->t->set_var('css_class_subject', $subjectCSS); // sort by size $this->t->set_var('css_class_size', $sizeCSS); #_debug_array($this->bofelamimail->sessionData['messageFilter']); if (!empty($this->bofelamimail->sessionData['messageFilter']['string'])) { $this->t->set_var('quicksearch', $this->bofelamimail->sessionData['messageFilter']['string']); } $defaultSearchType = isset($this->bofelamimail->sessionData['messageFilter']['type']) ? $this->bofelamimail->sessionData['messageFilter']['type'] : 'quick'; $defaultSelectStatus = isset($this->bofelamimail->sessionData['messageFilter']['status']) ? $this->bofelamimail->sessionData['messageFilter']['status'] : 'any'; $searchTypes = array('quick' => 'quicksearch', 'subject' => 'subject', 'body' => 'message', 'from' => 'from', 'to' => 'to', 'cc' => 'cc'); $selectSearchType = html::select('searchType', $defaultSearchType, $searchTypes, false, "style='width:100%;' id='searchType' onchange='document.getElementById(\"quickSearch\").focus(); document.getElementById(\"quickSearch\").value=\"\" ;return false;'"); $this->t->set_var('select_search', $selectSearchType); $statusTypes = array('any' => 'any status', 'flagged' => 'flagged', 'unseen' => 'unread', 'answered' => 'replied', 'seen' => 'read', 'deleted' => 'deleted'); $selectStatus = html::select('status', $defaultSelectStatus, $statusTypes, false, "style='width:100%;' onchange='javascript:quickSearch();' id='status'"); $this->t->set_var('select_status', $selectStatus); $selectedID = 0; if ($this->preferences->userDefinedAccounts) { $allAccountData = $this->bopreferences->getAllAccountData($this->preferences); } if ($allAccountData) { foreach ($allAccountData as $tmpkey => $accountData) { $identity =& $accountData['identity']; $icServer =& $accountData['icServer']; //_debug_array($identity); //_debug_array($icServer); if (empty($icServer->host)) { continue; } $identities[$identity->id] = $identity->realName . ' ' . $identity->organization . ' <' . $identity->emailAddress . '>'; if (!empty($identity->default)) { $selectedID = $identity->id; } } } if (!isset($activeIdentity->id) && $selectedID == 0) { $identities[0] = $activeIdentity->realName . ' ' . $activeIdentity->organization . ' <' . $activeIdentity->emailAddress . '>'; } // if you use user defined accounts you may want to access the profile defined with the emailadmin available to the user if ($activeIdentity->id) { $boemailadmin = new emailadmin_bo(); $defaultProfile = $boemailadmin->getUserProfile(); #_debug_array($defaultProfile); $identitys =& $defaultProfile->identities; $icServers =& $defaultProfile->ic_server; foreach ($identitys as $tmpkey => $identity) { if (empty($icServers[$tmpkey]->host)) { continue; } $identities[0] = $identity->realName . ' ' . $identity->organization . ' <' . $identity->emailAddress . '>'; } #$identities[0] = $defaultIdentity->realName.' '.$defaultIdentity->organization.' <'.$defaultIdentity->emailAddress.'>'; } $selectAccount = html::select('accountSelect', $selectedID, $identities, true, "style='width:100%;' onchange='changeActiveAccount(this);'"); $this->t->set_var('accountSelect', $selectAccount); if ($this->connectionStatus === false) { $this->t->set_var('connection_error_message', lang($this->bofelamimail->getErrorMessage())); $this->t->set_var('message', ' '); $this->t->parse('header_rows', 'error_message', True); } else { $headers = $this->bofelamimail->getHeaders($this->mailbox, $this->startMessage, $maxMessages, $this->sort, $this->sortReverse, $this->bofelamimail->sessionData['messageFilter']); $headerCount = count($headers['header']); // if there aren't any messages left (eg. after delete or move) // adjust $this->startMessage if ($headerCount == 0 && $this->startMessage > $maxMessages) { $this->startMessage = $this->startMessage - $maxMessages; $headers = $this->bofelamimail->getHeaders($this->startMessage, $maxMessages, $this->sort); $headerCount = count($headers['header']); } if ($this->bofelamimail->isSentFolder($this->mailbox) || $this->bofelamimail->isDraftFolder($this->mailbox) || $this->bofelamimail->isTemplateFolder($this->mailbox)) { $this->t->set_var('lang_from', lang("to")); } else { $this->t->set_var('lang_from', lang("from")); } $msg_icon_sm = $GLOBALS['phpgw']->common->image('felamimail', 'msg_icon_sm'); $this->t->set_var('header_rows', $uiwidgets->messageTable($headers, $this->bofelamimail->isSentFolder($this->mailbox) || $this->bofelamimail->isDraftFolder($this->mailbox) || $this->bofelamimail->isTemplateFolder($this->mailbox), $this->mailbox, $userPreferences['message_newwindow'], $userPreferences['rowOrderStyle'])); $firstMessage = $headers['info']['first']; $lastMessage = $headers['info']['last']; $totalMessage = $headers['info']['total']; $langTotal = lang("total"); $this->t->set_var('maxMessages', $i); if ($_GET["select_all"] == "select_all") { $this->t->set_var('checkedCounter', $i); } else { $this->t->set_var('checkedCounter', '0'); } // set the select all/nothing link if ($_GET["select_all"] == "select_all") { // link to unselect all messages $linkData = array('menuaction' => 'felamimail.uifelamimail.viewMainScreen'); $selectLink = sprintf("<a class=\"body_link\" href=\"%s\">%s</a>", $GLOBALS['phpgw']->link('/index.php', $linkData), lang("Unselect All")); $this->t->set_var('change_folder_checked', ''); $this->t->set_var('move_message_checked', 'checked'); } else { // link to select all messages $linkData = array('select_all' => 'select_all', 'menuaction' => 'felamimail.uifelamimail.viewMainScreen'); $selectLink = sprintf("<a class=\"body_link\" href=\"%s\">%s</a>", $GLOBALS['phpgw']->link('/index.php', $linkData), lang("Select all")); $this->t->set_var('change_folder_checked', 'checked'); $this->t->set_var('move_message_checked', ''); } $this->t->set_var('select_all_link', $selectLink); $this->t->set_var('message', lang("Viewing messages") . " <b>{$firstMessage}</b> - <b>{$lastMessage}</b> ({$totalMessage} {$langTotal})"); if ($firstMessage > 1) { $linkData = array('menuaction' => 'felamimail.uifelamimail.viewMainScreen', 'startMessage' => $this->startMessage - $maxMessages); $link = $GLOBALS['phpgw']->link('/index.php', $linkData); $this->t->set_var('link_previous', "<a class=\"body_link\" href=\"{$link}\">" . lang("previous") . "</a>"); } else { $this->t->set_var('link_previous', lang("previous")); } if ($totalMessage > $lastMessage) { $linkData = array('menuaction' => 'felamimail.uifelamimail.viewMainScreen', 'startMessage' => $this->startMessage + $maxMessages); $link = $GLOBALS['phpgw']->link('/index.php', $linkData); $this->t->set_var('link_next', "<a class=\"body_link\" href=\"{$link}\">" . lang("next") . "</a>"); } else { $this->t->set_var('link_next', lang("next")); } $this->t->parse('status_row', 'status_row_tpl', True); //print __LINE__ . ': ' . (microtime(true) - $this->timeCounter) . '<br>'; $folderObjects = $this->bofelamimail->getFolderObjects(true, false); //print __LINE__ . ': ' . (microtime(true) - $this->timeCounter) . '<br>'; $folderStatus = $this->bofelamimail->getFolderStatus($this->mailbox); //print __LINE__ . ': ' . (microtime(true) - $this->timeCounter) . '<br>'; $folderTree = $uiwidgets->createHTMLFolder($folderObjects, $this->mailbox, $folderStatus['unseen'], lang('IMAP Server'), $imapServer->username . '@' . $imapServer->host, 'divFolderTree', FALSE); //print __LINE__ . ': ' . (microtime(true) - $this->timeCounter) . '<br>'; $this->bofelamimail->closeConnection(); } $this->t->set_var('current_mailbox', $current_mailbox); $this->t->set_var('folder_tree', $folderTree); $this->t->set_var('options_folder', $options_folder); $linkData = array('menuaction' => 'felamimail.uicompose.compose'); $this->t->set_var('url_compose_empty', "egw_openWindowCentered('" . $GLOBALS['phpgw']->link('/index.php', $linkData) . "','test',700,egw_getWindowOuterHeight());"); $linkData = array('menuaction' => 'felamimail.uifilter.mainScreen'); $this->t->set_var('url_filter', $GLOBALS['phpgw']->link('/index.php', $linkData)); $linkData = array('menuaction' => 'felamimail.uifelamimail.handleButtons'); $this->t->set_var('url_change_folder', $GLOBALS['phpgw']->link('/index.php', $linkData)); $linkData = array('menuaction' => 'felamimail.uifelamimail.changeFilter'); $this->t->set_var('url_search_settings', $GLOBALS['phpgw']->link('/index.php', $linkData)); $this->t->set_var('lang_mark_messages_as', lang('mark messages as')); $this->t->set_var('lang_delete', lang('delete')); switch ($GLOBALS['phpgw_info']['user']['preferences']['felamimail']['rowOrderStyle']) { case 'outlook': $this->t->parse('messageListTableHeader', 'table_header_outlook', True); break; default: $this->t->parse('messageListTableHeader', 'table_header_felamimail', True); break; } //print __LINE__ . ': ' . (microtime(true) - $this->timeCounter) . '<br>'; $this->t->parse("out", "main"); print $this->t->get('out', 'main'); $GLOBALS['phpgw']->common->phpgw_footer(); }
function __construct() { $boemailadmin = new emailadmin_bo(); $this->profileData = $boemailadmin->getUserProfile('felamimail'); }