[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 abstract class ConpherenceController extends PhabricatorController { 4 5 private $conpherences; 6 7 public function buildApplicationMenu() { 8 $nav = new PHUIListView(); 9 10 $nav->newLink( 11 pht('New Message'), 12 $this->getApplicationURI('new/')); 13 14 $nav->addMenuItem( 15 id(new PHUIListItemView()) 16 ->setName(pht('Add Participants')) 17 ->setType(PHUIListItemView::TYPE_LINK) 18 ->setHref('#') 19 ->addSigil('conpherence-widget-adder') 20 ->setMetadata(array('widget' => 'widgets-people'))); 21 22 $nav->addMenuItem( 23 id(new PHUIListItemView()) 24 ->setName(pht('New Calendar Item')) 25 ->setType(PHUIListItemView::TYPE_LINK) 26 ->setHref('/calendar/event/create/') 27 ->addSigil('conpherence-widget-adder') 28 ->setMetadata(array('widget' => 'widgets-calendar'))); 29 30 return $nav; 31 } 32 33 public function buildApplicationCrumbs() { 34 $crumbs = parent::buildApplicationCrumbs(); 35 36 $crumbs 37 ->addAction( 38 id(new PHUIListItemView()) 39 ->setName(pht('New Message')) 40 ->setHref($this->getApplicationURI('new/')) 41 ->setIcon('fa-plus-square') 42 ->setWorkflow(true)) 43 ->addAction( 44 id(new PHUIListItemView()) 45 ->setName(pht('Thread')) 46 ->setHref('#') 47 ->setIcon('fa-bars') 48 ->setStyle('display: none;') 49 ->addClass('device-widgets-selector') 50 ->addSigil('device-widgets-selector')); 51 return $crumbs; 52 } 53 54 protected function buildHeaderPaneContent(ConpherenceThread $conpherence) { 55 $crumbs = $this->buildApplicationCrumbs(); 56 if ($conpherence->getTitle()) { 57 $title = $conpherence->getTitle(); 58 } else { 59 $title = pht('[No Title]'); 60 } 61 $crumbs->addCrumb( 62 id(new PhabricatorCrumbView()) 63 ->setName($title) 64 ->setHref($this->getApplicationURI('update/'.$conpherence->getID().'/')) 65 ->setWorkflow(true)); 66 67 return hsprintf( 68 '%s', 69 array( 70 phutil_tag( 71 'div', 72 array( 73 'class' => 'header-loading-mask', 74 ), 75 ''), 76 $crumbs, 77 )); 78 } 79 80 protected function renderConpherenceTransactions( 81 ConpherenceThread $conpherence) { 82 83 $user = $this->getRequest()->getUser(); 84 $transactions = $conpherence->getTransactions(); 85 $oldest_transaction_id = 0; 86 $too_many = ConpherenceThreadQuery::TRANSACTION_LIMIT + 1; 87 if (count($transactions) == $too_many) { 88 $last_transaction = end($transactions); 89 unset($transactions[$last_transaction->getID()]); 90 $oldest_transaction = end($transactions); 91 $oldest_transaction_id = $oldest_transaction->getID(); 92 } 93 $transactions = array_reverse($transactions); 94 $handles = $conpherence->getHandles(); 95 $rendered_transactions = array(); 96 $engine = id(new PhabricatorMarkupEngine()) 97 ->setViewer($user); 98 foreach ($transactions as $key => $transaction) { 99 if ($transaction->shouldHide()) { 100 unset($transactions[$key]); 101 continue; 102 } 103 if ($transaction->getComment()) { 104 $engine->addObject( 105 $transaction->getComment(), 106 PhabricatorApplicationTransactionComment::MARKUP_FIELD_COMMENT); 107 } 108 } 109 $engine->process(); 110 // we're going to insert a dummy date marker transaction for breaks 111 // between days. some setup required! 112 $previous_transaction = null; 113 $date_marker_transaction = id(new ConpherenceTransaction()) 114 ->setTransactionType(ConpherenceTransactionType::TYPE_DATE_MARKER) 115 ->makeEphemeral(); 116 $date_marker_transaction_view = id(new ConpherenceTransactionView()) 117 ->setUser($user) 118 ->setConpherenceTransaction($date_marker_transaction) 119 ->setHandles($handles) 120 ->setMarkupEngine($engine); 121 foreach ($transactions as $transaction) { 122 if ($previous_transaction) { 123 $previous_day = phabricator_format_local_time( 124 $previous_transaction->getDateCreated(), 125 $user, 126 'Ymd'); 127 $current_day = phabricator_format_local_time( 128 $transaction->getDateCreated(), 129 $user, 130 'Ymd'); 131 // date marker transaction time! 132 if ($previous_day != $current_day) { 133 $date_marker_transaction->setDateCreated( 134 $transaction->getDateCreated()); 135 $rendered_transactions[] = $date_marker_transaction_view->render(); 136 } 137 } 138 $rendered_transactions[] = id(new ConpherenceTransactionView()) 139 ->setUser($user) 140 ->setConpherenceTransaction($transaction) 141 ->setHandles($handles) 142 ->setMarkupEngine($engine) 143 ->render(); 144 $previous_transaction = $transaction; 145 } 146 $latest_transaction_id = $transaction->getID(); 147 148 return array( 149 'transactions' => $rendered_transactions, 150 'latest_transaction_id' => $latest_transaction_id, 151 'oldest_transaction_id' => $oldest_transaction_id, 152 ); 153 } 154 155 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |