Changeset View
Changeset View
Standalone View
Standalone View
src/applications/conpherence/ConpherenceTransactionRenderer.php
Show First 20 Lines • Show All 72 Lines • ▼ Show 20 Lines | public static function renderTransactions( | ||||
$transaction_view_template = id(new ConpherenceTransactionView()) | $transaction_view_template = id(new ConpherenceTransactionView()) | ||||
->setUser($user) | ->setUser($user) | ||||
->setConpherenceThread($conpherence) | ->setConpherenceThread($conpherence) | ||||
->setHandles($handles) | ->setHandles($handles) | ||||
->setMarkupEngine($engine) | ->setMarkupEngine($engine) | ||||
->setFullDisplay($full_display); | ->setFullDisplay($full_display); | ||||
foreach ($transactions as $transaction) { | foreach ($transactions as $transaction) { | ||||
$collapsed = false; | |||||
if ($previous_transaction) { | if ($previous_transaction) { | ||||
$previous_day = phabricator_format_local_time( | $previous_day = phabricator_format_local_time( | ||||
$previous_transaction->getDateCreated(), | $previous_transaction->getDateCreated(), | ||||
$user, | $user, | ||||
'Ymd'); | 'Ymd'); | ||||
$current_day = phabricator_format_local_time( | $current_day = phabricator_format_local_time( | ||||
$transaction->getDateCreated(), | $transaction->getDateCreated(), | ||||
$user, | $user, | ||||
'Ymd'); | 'Ymd'); | ||||
// See if same user / time | |||||
$previous_author = $previous_transaction->getAuthorPHID(); | |||||
$current_author = $transaction->getAuthorPHID(); | |||||
$previous_time = $previous_transaction->getDateCreated(); | |||||
$current_time = $transaction->getDateCreated(); | |||||
$previous_type = $previous_transaction->getTransactionType(); | |||||
$current_type = $transaction->getTransactionType(); | |||||
if (($previous_author == $current_author) && | |||||
($previous_type == $current_type)) { | |||||
// Group messages within the last x seconds | |||||
if (($current_time - $previous_time) < 120) { | |||||
$collapsed = true; | |||||
} | |||||
} | |||||
// date marker transaction time! | // date marker transaction time! | ||||
if ($previous_day != $current_day) { | if ($previous_day != $current_day) { | ||||
$date_marker_transaction->setDateCreated( | $date_marker_transaction->setDateCreated( | ||||
$transaction->getDateCreated()); | $transaction->getDateCreated()); | ||||
$date_marker_transaction->setID($previous_transaction->getID()); | $date_marker_transaction->setID($previous_transaction->getID()); | ||||
$rendered_transactions[] = $date_marker_transaction_view->render(); | $rendered_transactions[] = $date_marker_transaction_view->render(); | ||||
} | } | ||||
} | } | ||||
$transaction_view = id(clone $transaction_view_template) | $transaction_view = id(clone $transaction_view_template) | ||||
->setConpherenceTransaction($transaction); | ->setConpherenceTransaction($transaction); | ||||
if ($collapsed) { | |||||
$transaction_view->addClass('conpherence-transaction-collapsed'); | |||||
} | |||||
$rendered_transactions[] = $transaction_view->render(); | $rendered_transactions[] = $transaction_view->render(); | ||||
$previous_transaction = $transaction; | $previous_transaction = $transaction; | ||||
} | } | ||||
$latest_transaction_id = $transaction->getID(); | $latest_transaction_id = $transaction->getID(); | ||||
return array( | return array( | ||||
'transactions' => $rendered_transactions, | 'transactions' => $rendered_transactions, | ||||
▲ Show 20 Lines • Show All 70 Lines • Show Last 20 Lines |