[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class FundInitiativeCloseController 4 extends FundController { 5 6 private $id; 7 8 public function willProcessRequest(array $data) { 9 $this->id = $data['id']; 10 } 11 12 public function processRequest() { 13 $request = $this->getRequest(); 14 $viewer = $request->getUser(); 15 16 $initiative = id(new FundInitiativeQuery()) 17 ->setViewer($viewer) 18 ->withIDs(array($this->id)) 19 ->requireCapabilities( 20 array( 21 PhabricatorPolicyCapability::CAN_VIEW, 22 PhabricatorPolicyCapability::CAN_EDIT, 23 )) 24 ->executeOne(); 25 if (!$initiative) { 26 return new Aphront404Response(); 27 } 28 29 $initiative_uri = '/'.$initiative->getMonogram(); 30 31 $is_close = !$initiative->isClosed(); 32 33 if ($request->isFormPost()) { 34 $type_status = FundInitiativeTransaction::TYPE_STATUS; 35 36 if ($is_close) { 37 $new_status = FundInitiative::STATUS_CLOSED; 38 } else { 39 $new_status = FundInitiative::STATUS_OPEN; 40 } 41 42 $xaction = id(new FundInitiativeTransaction()) 43 ->setTransactionType($type_status) 44 ->setNewValue($new_status); 45 46 $editor = id(new FundInitiativeEditor()) 47 ->setActor($viewer) 48 ->setContentSourceFromRequest($request) 49 ->setContinueOnMissingFields(true); 50 51 $editor->applyTransactions($initiative, array($xaction)); 52 53 return id(new AphrontRedirectResponse())->setURI($initiative_uri); 54 } 55 56 if ($is_close) { 57 $title = pht('Close Initiative?'); 58 $body = pht( 59 'Really close this initiative? Users will no longer be able to '. 60 'back it.'); 61 $button_text = pht('Close Initiative'); 62 } else { 63 $title = pht('Reopen Initiative?'); 64 $body = pht('Really reopen this initiative?'); 65 $button_text = pht('Reopen Initiative'); 66 } 67 68 return $this->newDialog() 69 ->setTitle($title) 70 ->appendParagraph($body) 71 ->addCancelButton($initiative_uri) 72 ->addSubmitButton($button_text); 73 } 74 75 }
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 |