コード例 #1
0
 public function handleRequest(AphrontRequest $request)
 {
     $viewer = $request->getViewer();
     $id = $request->getURIData('id');
     $initiative = id(new FundInitiativeQuery())->setViewer($viewer)->withIDs(array($id))->executeOne();
     if (!$initiative) {
         return new Aphront404Response();
     }
     $crumbs = $this->buildApplicationCrumbs();
     $crumbs->addTextCrumb($initiative->getMonogram());
     $crumbs->setBorder(true);
     $title = pht('%s %s', $initiative->getMonogram(), $initiative->getName());
     if ($initiative->isClosed()) {
         $status_icon = 'fa-times';
         $status_color = 'bluegrey';
     } else {
         $status_icon = 'fa-check';
         $status_color = 'bluegrey';
     }
     $status_name = idx(FundInitiative::getStatusNameMap(), $initiative->getStatus());
     $header = id(new PHUIHeaderView())->setHeader($initiative->getName())->setUser($viewer)->setPolicyObject($initiative)->setStatus($status_icon, $status_color, $status_name)->setHeaderIcon('fa-heart');
     $properties = $this->buildPropertyListView($initiative);
     $actions = $this->buildActionListView($initiative);
     $details = $this->buildPropertySectionView($initiative);
     $timeline = $this->buildTransactionTimeline($initiative, new FundInitiativeTransactionQuery());
     $timeline->setShouldTerminate(true);
     $view = id(new PHUITwoColumnView())->setHeader($header)->setMainColumn($timeline)->setPropertyList($properties)->addPropertySection(pht('DETAILS'), $details)->setActionList($actions);
     return $this->newPage()->setTitle($title)->setCrumbs($crumbs)->setPageObjectPHIDs(array($initiative->getPHID()))->appendChild(array($view));
 }
コード例 #2
0
 public function handleRequest(AphrontRequest $request)
 {
     $viewer = $request->getViewer();
     $id = $request->getURIData('id');
     $initiative = id(new FundInitiativeQuery())->setViewer($viewer)->withIDs(array($id))->executeOne();
     if (!$initiative) {
         return new Aphront404Response();
     }
     $crumbs = $this->buildApplicationCrumbs();
     $crumbs->addTextCrumb($initiative->getMonogram());
     $title = pht('%s %s', $initiative->getMonogram(), $initiative->getName());
     if ($initiative->isClosed()) {
         $status_icon = 'fa-times';
         $status_color = 'bluegrey';
     } else {
         $status_icon = 'fa-check';
         $status_color = 'bluegrey';
     }
     $status_name = idx(FundInitiative::getStatusNameMap(), $initiative->getStatus());
     $header = id(new PHUIHeaderView())->setHeader($initiative->getName())->setUser($viewer)->setPolicyObject($initiative)->setStatus($status_icon, $status_color, $status_name);
     $properties = $this->buildPropertyListView($initiative);
     $actions = $this->buildActionListView($initiative);
     $properties->setActionList($actions);
     $box = id(new PHUIObjectBoxView())->setHeader($header)->addPropertyList($properties);
     $timeline = $this->buildTransactionTimeline($initiative, new FundInitiativeTransactionQuery());
     $timeline->setShouldTerminate(true);
     return $this->buildApplicationPage(array($crumbs, $box, $timeline), array('title' => $title, 'pageObjects' => array($initiative->getPHID())));
 }
コード例 #3
0
 public function processRequest()
 {
     $request = $this->getRequest();
     $viewer = $request->getUser();
     $initiative = id(new FundInitiativeQuery())->setViewer($viewer)->withIDs(array($this->id))->executeOne();
     if (!$initiative) {
         return new Aphront404Response();
     }
     $crumbs = $this->buildApplicationCrumbs();
     $crumbs->addTextCrumb($initiative->getMonogram());
     $title = pht('%s %s', $initiative->getMonogram(), $initiative->getName());
     if ($initiative->isClosed()) {
         $status_icon = 'fa-times';
         $status_color = 'bluegrey';
     } else {
         $status_icon = 'fa-check';
         $status_color = 'bluegrey';
     }
     $status_name = idx(FundInitiative::getStatusNameMap(), $initiative->getStatus());
     $header = id(new PHUIHeaderView())->setObjectName($initiative->getMonogram())->setHeader($initiative->getName())->setUser($viewer)->setPolicyObject($initiative)->setStatus($status_icon, $status_color, $status_name);
     $properties = $this->buildPropertyListView($initiative);
     $actions = $this->buildActionListView($initiative);
     $properties->setActionList($actions);
     $box = id(new PHUIObjectBoxView())->setHeader($header)->appendChild($properties);
     $xactions = id(new FundInitiativeTransactionQuery())->setViewer($viewer)->withObjectPHIDs(array($initiative->getPHID()))->execute();
     $timeline = id(new PhabricatorApplicationTransactionView())->setUser($viewer)->setObjectPHID($initiative->getPHID())->setTransactions($xactions);
     return $this->buildApplicationPage(array($crumbs, $box, $timeline), array('title' => $title));
 }
コード例 #4
0
 public function buildSearchForm(AphrontFormView $form, PhabricatorSavedQuery $saved)
 {
     $statuses = $saved->getParameter('statuses', array());
     $statuses = array_fuse($statuses);
     $owner_phids = $saved->getParameter('ownerPHIDs', array());
     $status_map = FundInitiative::getStatusNameMap();
     $status_control = id(new AphrontFormCheckboxControl())->setLabel(pht('Statuses'));
     foreach ($status_map as $status => $name) {
         $status_control->addCheckbox('statuses[]', $status, $name, isset($statuses[$status]));
     }
     $form->appendControl(id(new AphrontFormTokenizerControl())->setLabel(pht('Owners'))->setName('owners')->setDatasource(new PhabricatorPeopleDatasource())->setValue($owner_phids))->appendChild($status_control);
 }