/** * Formats communication for display in messages list * * @param RequestHTTP $po_request * @param array $pa_data * @param array $pa_options * viewContentDivID = * additionalMessages = * isAdditionalMessage = * * @return string */ function caClientServicesFormatMessageSummary($po_request, $pa_data, $pa_options = null) { $vb_is_additional_message = (bool) (isset($pa_options['isAdditionalMessage']) && $pa_options['isAdditionalMessage']); $vb_is_unread = !(bool) $pa_data['read_on']; $vs_unread_class = $vb_is_unread ? "caClientCommunicationsMessageSummaryUnread" : ""; if ($pa_data['source'] == __CA_COMMERCE_COMMUNICATION_SOURCE_INSTITUTION__) { $vb_is_unread = false; $vs_unread_class = ''; } // institution-sent messages are never unread in Providence if ($vb_is_additional_message) { $vs_class = $vb_is_unread ? "caClientCommunicationsAdditionalMessageSummary caClientCommunicationsMessageSummaryUnread" : "caClientCommunicationsAdditionalMessageSummary"; $vs_buf = "<div class='{$vs_class}' id='caClientCommunicationsMessage_" . $pa_data['communication_id'] . "'>"; } else { $vs_class = $vb_is_unread ? "caClientCommunicationsMessageSummary caClientCommunicationsMessageSummaryUnread" : "caClientCommunicationsMessageSummary"; $vs_buf = "<div class='{$vs_class}'>"; } $vs_buf .= "<div class='caClientCommunicationsMessageSummaryContainer' id='caClientCommunicationsMessage_" . $pa_data['communication_id'] . "'>"; $vs_buf .= "<div class='caClientCommunicationsViewMessageIcon'>+</div>"; TooltipManager::add(".caClientCommunicationsViewMessageIcon", _t("View entire message and associated media")); $vs_buf .= "<div class='caClientCommunicationsMessageSummaryFrom {$vs_unread_class}'><span class='caClientCommunicationsMessageSummaryHeading'>" . _t("From") . ":</span> " . caClientServicesGetSenderName($pa_data); $vs_buf .= $vb_is_unread ? " <img src='" . $po_request->getThemeUrlPath() . "/graphics/icons/envelope.gif' border='0'>" : ""; $vs_buf .= "</div>"; $vs_buf .= "<div class='caClientCommunicationsMessageSummaryDate {$vs_unread_class}'><span class='caClientCommunicationsMessageSummaryHeading'>" . _t("Date") . ":</span> " . caGetLocalizedDate($pa_data['created_on'], array('dateFormat' => 'delimited')) . "</div>"; $vs_buf .= "<div class='caClientCommunicationsMessageSummarySubject {$vs_unread_class}'><span class='caClientCommunicationsMessageSummaryHeading'>" . _t("Subject") . ":</span> " . $pa_data['subject'] . "</div>"; $vs_buf .= "<div class='caClientCommunicationsMessageSummaryText'>" . (mb_strlen($pa_data['message']) > 100 ? mb_substr($pa_data['message'], 0, 100) . "..." : $pa_data['message']) . "</div>"; $vn_num_additional_messages = is_array($pa_options['additionalMessages']) ? sizeof($pa_options['additionalMessages']) : 0; // are there orders linked to this thread? if ($vn_num_orders = sizeof($va_order_ids = ca_commerce_orders::getOrderIDsForTransaction($pa_data['transaction_id']))) { $vs_buf .= "<div class='caClientCommunicationsMessageSummaryThreadButton'>" . caNavLink($po_request, ($vn_num_orders == 1 ? _t('%1 order', $vn_num_orders) : _t('%1 orders', $vn_num_orders)) . " ›", 'button', 'client', 'Orders', 'Index', array('transaction_id' => $pa_data['transaction_id'])) . "</div>\n"; } if ($vn_num_additional_messages) { $vs_buf .= "<div class='caClientCommunicationsMessageSummaryThreadButton' id='caClientCommunicationsMessageAdditionalCount" . $pa_data['communication_id'] . "'><a href='#' onclick='jQuery(\"#caClientCommunicationsMessageAdditional" . $pa_data['communication_id'] . "\").slideToggle(250, function(){ if(jQuery(\"#caClientCommunicationsMessageViewThread" . $pa_data['communication_id'] . "\").html() == \"" . _t("view thread") . " ›\") {jQuery(\"#caClientCommunicationsMessageViewThread" . $pa_data['communication_id'] . "\").html(\"" . _t("hide thread") . " ›\")}else{jQuery(\"#caClientCommunicationsMessageViewThread" . $pa_data['communication_id'] . "\").html(\"" . _t("view thread") . " ›\")}}); return false;' id='caClientCommunicationsMessageViewThread" . $pa_data['communication_id'] . "' class='button'>" . _t("view thread") . " ›</a></div>\n"; } $vs_buf .= "</div>"; if ($vn_num_additional_messages) { $vs_buf .= "<div class='caClientCommunicationsMessageAdditional' id='caClientCommunicationsMessageAdditional" . $pa_data['communication_id'] . "'>"; $pa_additional_options = $pa_options; unset($pa_additional_options['additionalMessages']); $pa_additional_options['isAdditionalMessage'] = true; foreach ($pa_options['additionalMessages'] as $va_additional_message) { $vs_buf .= caClientServicesFormatMessageSummary($po_request, $va_additional_message, $pa_additional_options); } $vs_buf .= "</div>"; } $vs_buf .= "</div>\n"; return $vs_buf; }
?> </div> </td> </tr> </table> </form> </div> </div> <div id="caClientCommunicationsMessages"> <div id="caClientCommunicationsMessageList"> <?php foreach ($va_messages_by_transaction as $vn_tranaction_id => $va_messages) { $va_message = array_pop($va_messages); $va_messages = array_reverse($va_messages); print caClientServicesFormatMessageSummary($this->request, $va_message, array('viewContentDivID' => 'caClientCommunicationsMessageDisplay', 'additionalMessages' => $va_messages)); } ?> </div> <div id="caClientCommunicationsMessageDisplay"><div class="caClientCommunicationsMessageDisplayHelpText"><?php print _t("Click on a message at left to view the entire message and its associated media."); ?> </div></div> <div style="clear:both;"><!-- empty --></div> </div> <script type="text/javascript"> jQuery(document).ready(function() { jQuery('.caClientCommunicationsAdditionalMessageSummary, .caClientCommunicationsMessageSummaryContainer').click(function() {