else $icon = "unknown.png"; $download_url = get_url('mail', 'download_attachment', array('email_id' => $email->getId(), 'attachment_id' => $c)); include_once ROOT . "/library/browser/Browser.php"; if (Browser::instance()->getBrowser() == Browser::BROWSER_IE) { $download_url = "javascript:location.href = '$download_url';"; } $description .= '<img src="' . get_image_url("filetypes/" . $icon) .'"></td> <td><a target="_self" href="' . $download_url . '">' . clean($fName) . " ($size)" . '</a></td></tr>'; } $c++; } $description .= '</table></div></fieldset></td></tr>'; } //if $description .= '</table></div>'; if (($email_count = MailContents::countMailsInConversation($email)) > 1) { $emails_info = MailContents::getMailsFromConversation($email); $conversation_block = ''; $conversation_block .= '<div id="'.$genid.'conversation" style="margin-bottom:10px;' . (count($emails_info) > 6 ? 'max-height:101px;overflow:auto' : '' ) . '"><table style="width:100%;">'; $unread = 0; foreach($emails_info as $count => $info) { $row_cls = $count % 2 ? 'odd' : 'even'; $is_current = $info->getId() == $email->getId(); $style = $is_current ? "style='background-color:#FFDD78'" : ""; $conversation_block .= '<tr class="'.$row_cls.'" ' . $style . '>'; $state = $info->getState(); $show_user_icon = false; if ($state == 1 || $state == 3 || $state == 5) {
<?php $icon_class = $linked_object->getObjectTypeName(); $belongs_to_conversation = MailContents::countMailsInConversation($linked_object) > 1; ?> <tr class="<?php echo $counter % 2 ? 'even' : 'odd' ?>"> <td style="padding-left:1px;vertical-align:middle;width:22px"> <a class="internalLink" href="<?php echo $linked_object->getObjectUrl() ?>"> <div class="db-ico unknown ico-<?php echo clean($icon_class) ?>" title="<?php echo clean($linked_object->getObjectTypeName()) ?>"></div> </a></td> <td><a class="internalLink" href="<?php echo $linked_object->getObjectUrl() ?>" title="<?php echo clean($linked_object->getObjectName()) ?>"> <span><?php if ($linked_object->getState() == 2) {?><span style="color:red;font-weight:bold"><?php echo lang('draft') ?></span> - <?php } ?><?php echo clean($linked_object->getObjectName()) ?></span></a></td> <td><span class="desc"><?php echo lang('from')?>: </span><?php echo $linked_object->getFrom()?></td> <?php $date_str = $linked_object->getSentDate() instanceof DateTimeValue ? ($linked_object->getSentDate()->isToday() ? format_time($linked_object->getSentDate(), null, logged_user()->getTimezone()) : format_datetime($linked_object->getSentDate(), $date_format, logged_user()->getTimezone())) : lang('n/a') ?> <td><span class="desc"><?php echo lang('date')?>: </span><?php echo $date_str ?></td> <td> <?php if ($belongs_to_conversation) { ?> <div onclick="og.loadConversation('<?php echo $genid ?>', <?php echo $linked_object->getId()?>);" class="db-ico ico-comment" style="cursor: pointer;"></div> <?php } ?> </td> <td style="text-align:right;"> <?php if ($linked_objects_object->canUnlinkObject(logged_user(), $linked_object)) { echo '<a class="internalLink" href="' . $linked_objects_object->getUnlinkObjectUrl($linked_object) . '" onclick="return confirm(\'' . escape_single_quotes(lang('confirm unlink object')) . '\')" title="' . lang('unlink object') . '">' . lang('unlink') . '</a>'; } ?>
private function getMailProperties($msg, $i = 0) { $text = $msg->getTextBody(); // plain body is already converted to UTF-8 (when mail was saved) if (strlen_utf($text) > 150) { $text = substr_utf($text, 0, 150) . "..."; } $show_as_conv = user_config_option('show_emails_as_conversations'); if ($show_as_conv) { $conv_total = MailContents::countMailsInConversation($msg); $conv_unread = MailContents::countUnreadMailsInConversation($msg); $conv_hasatt = MailContents::conversationHasAttachments($msg); } $properties = array("id" => $msg->getId(), "ix" => $i, "object_id" => $msg->getId(), "type" => 'email', "hasAttachment" => $msg->getHasAttachments(), "accountId" => $msg->getAccountId(), "accountName" => $msg->getAccount() instanceof MailAccount ? $msg->getAccount()->getName() : lang('n/a'), "projectId" => $msg->getWorkspacesIdsCSV(logged_user()->getWorkspacesQuery()), "subject" => $msg->getSubject(), "text" => $text, "date" => $msg->getReceivedDate() instanceof DateTimeValue ? $msg->getReceivedDate()->isToday() ? format_time($msg->getReceivedDate()) : format_datetime($msg->getReceivedDate()) : lang('n/a'), "userId" => $msg->getAccount() instanceof MailAccount && $msg->getAccount()->getOwner() instanceof User ? $msg->getAccount()->getOwner()->getId() : 0, "userName" => $msg->getAccount() instanceof MailAccount && $msg->getAccount()->getOwner() instanceof User ? $msg->getAccount()->getOwner()->getDisplayName() : lang('n/a'), "tags" => implode(", ", $msg->getTagNames()), "isRead" => $show_as_conv ? $conv_unread == 0 : $msg->getIsRead(logged_user()->getId()), "from" => $msg->getFromName() != '' ? $msg->getFromName() : $msg->getFrom(), "from_email" => $msg->getFrom(), "isDraft" => $msg->getIsDraft(), "isSent" => $msg->getIsSent(), "folder" => $msg->getImapFolderName(), "to" => $msg->getTo()); if ($show_as_conv) { $properties["conv_total"] = $conv_total; $properties["conv_unread"] = $conv_unread; $properties["conv_hasatt"] = $conv_hasatt; } return $properties; }
private function getMailProperties($msg, $i = 0) { $text = $msg->getTextBody(); // plain body is already converted to UTF-8 (when mail was saved) if (strlen_utf($text) > 150) { $text = substr_utf($text, 0, 150) . "..."; } $show_as_conv = user_config_option('show_emails_as_conversations'); if ($show_as_conv) { $conv_total = MailContents::countMailsInConversation($msg); $conv_unread = MailContents::countUnreadMailsInConversation($msg); $conv_hasatt = MailContents::conversationHasAttachments($msg); } //if the variable is not set, make the query and set it. //seba // Comented by php TODO: Feng 2 context/members /* if(!isset($this->user_workspaces_ids)){ $sql = logged_user()->getWorkspacesQuery(); $rows = DB::executeAll($sql); if (count($rows)== 0) $this->user_workspaces_ids = "0"; else{ foreach ($rows as $row){ if ($this->user_workspaces_ids != "") $this->user_workspaces_ids .= ","; $this->user_workspaces_ids .= $row['project_id']; } } }*/ /* @var $msg MailContent */ $persons_dim = Dimensions::findByCode('feng_persons'); $persons_dim_id = $persons_dim instanceof Dimension ? $persons_dim->getId() : "0"; $mail_member_ids = array_flat(DB::executeAll("SELECT om.member_id FROM " . TABLE_PREFIX . "object_members om\r\n\t\t\t\tINNER JOIN " . TABLE_PREFIX . "members m ON m.id=om.member_id \r\n\t\t\t\tWHERE om.object_id = '" . $msg->getId() . "' AND om.is_optimization = 0 AND m.dimension_id<>{$persons_dim_id}")); $properties = array("id" => $msg->getId(), "ix" => $i, "object_id" => $msg->getId(), "ot_id" => $msg->getObjectTypeId(), "type" => 'email', "hasAttachment" => $msg->getHasAttachments(), "accountId" => $msg->getAccountId(), "accountName" => $msg->getAccount() instanceof MailAccount ? $msg->getAccount()->getName() : lang('n/a'), "subject" => $msg->getSubject(), "text" => $text, "date" => $msg->getReceivedDate() instanceof DateTimeValue ? $msg->getReceivedDate()->isToday() ? format_time($msg->getReceivedDate()) : format_datetime($msg->getReceivedDate()) : lang('n/a'), "userId" => $msg->getAccount() instanceof MailAccount && $msg->getAccount()->getOwner() instanceof Contact ? $msg->getAccount()->getOwner()->getId() : 0, "userName" => $msg->getAccount() instanceof MailAccount && $msg->getAccount()->getOwner() instanceof Contact ? $msg->getAccount()->getOwner()->getObjectName() : lang('n/a'), "isRead" => $show_as_conv ? $conv_unread == 0 : $msg->getIsRead(logged_user()->getId()), "from" => $msg->getFromName() != '' ? $msg->getFromName() : $msg->getFrom(), "from_email" => $msg->getFrom(), "isDraft" => $msg->getIsDraft(), "isSent" => $msg->getIsSent(), "folder" => $msg->getImapFolderName(), "to" => $msg->getTo(), "memPath" => json_encode($msg->getMembersIdsToDisplayPath()), "memberIds" => implode(",", $mail_member_ids)); if ($show_as_conv) { $properties["conv_total"] = $conv_total; $properties["conv_unread"] = $conv_unread; $properties["conv_hasatt"] = $conv_hasatt; } return $properties; }