[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class PhabricatorCalendarEventViewController 4 extends PhabricatorCalendarController { 5 6 private $id; 7 8 public function shouldAllowPublic() { 9 return true; 10 } 11 12 public function willProcessRequest(array $data) { 13 $this->id = $data['id']; 14 } 15 16 public function processRequest() { 17 $request = $this->getRequest(); 18 $viewer = $request->getUser(); 19 20 $event = id(new PhabricatorCalendarEventQuery()) 21 ->setViewer($viewer) 22 ->withIDs(array($this->id)) 23 ->executeOne(); 24 if (!$event) { 25 return new Aphront404Response(); 26 } 27 28 $title = pht('Event %d', $event->getID()); 29 $crumbs = $this->buildApplicationCrumbs(); 30 $crumbs->addTextCrumb($title); 31 32 $header = $this->buildHeaderView($event); 33 $actions = $this->buildActionView($event); 34 $properties = $this->buildPropertyView($event); 35 36 $properties->setActionList($actions); 37 $box = id(new PHUIObjectBoxView()) 38 ->setHeader($header) 39 ->addPropertyList($properties); 40 41 return $this->buildApplicationPage( 42 array( 43 $crumbs, 44 $box, 45 ), 46 array( 47 'title' => $title, 48 )); 49 } 50 51 private function buildHeaderView(PhabricatorCalendarEvent $event) { 52 $viewer = $this->getRequest()->getUser(); 53 54 return id(new PHUIHeaderView()) 55 ->setUser($viewer) 56 ->setHeader($event->getTerseSummary($viewer)) 57 ->setPolicyObject($event); 58 } 59 60 private function buildActionView(PhabricatorCalendarEvent $event) { 61 $viewer = $this->getRequest()->getUser(); 62 $id = $event->getID(); 63 64 $actions = id(new PhabricatorActionListView()) 65 ->setObjectURI($this->getApplicationURI('event/'.$id.'/')) 66 ->setUser($viewer); 67 68 $can_edit = PhabricatorPolicyFilter::hasCapability( 69 $viewer, 70 $event, 71 PhabricatorPolicyCapability::CAN_EDIT); 72 73 $actions->addAction( 74 id(new PhabricatorActionView()) 75 ->setName(pht('Edit Event')) 76 ->setIcon('fa-pencil') 77 ->setHref($this->getApplicationURI("event/edit/{$id}/")) 78 ->setDisabled(!$can_edit) 79 ->setWorkflow(!$can_edit)); 80 81 $actions->addAction( 82 id(new PhabricatorActionView()) 83 ->setName(pht('Cancel Event')) 84 ->setIcon('fa-times') 85 ->setHref($this->getApplicationURI("event/delete/{$id}/")) 86 ->setDisabled(!$can_edit) 87 ->setWorkflow(true)); 88 89 return $actions; 90 } 91 92 private function buildPropertyView(PhabricatorCalendarEvent $event) { 93 $viewer = $this->getRequest()->getUser(); 94 95 $properties = id(new PHUIPropertyListView()) 96 ->setUser($viewer) 97 ->setObject($event); 98 99 $properties->addProperty( 100 pht('Starts'), 101 phabricator_datetime($event->getDateFrom(), $viewer)); 102 103 $properties->addProperty( 104 pht('Ends'), 105 phabricator_datetime($event->getDateTo(), $viewer)); 106 107 $properties->addSectionHeader( 108 pht('Description'), 109 PHUIPropertyListView::ICON_SUMMARY); 110 $properties->addTextContent($event->getDescription()); 111 112 return $properties; 113 } 114 115 }
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 |