[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class PhabricatorProjectColumnHideController 4 extends PhabricatorProjectBoardController { 5 6 private $id; 7 private $projectID; 8 9 public function willProcessRequest(array $data) { 10 $this->projectID = $data['projectID']; 11 $this->id = idx($data, 'id'); 12 } 13 14 public function processRequest() { 15 $request = $this->getRequest(); 16 $viewer = $request->getUser(); 17 $project = id(new PhabricatorProjectQuery()) 18 ->setViewer($viewer) 19 ->requireCapabilities( 20 array( 21 PhabricatorPolicyCapability::CAN_VIEW, 22 PhabricatorPolicyCapability::CAN_EDIT, 23 )) 24 ->withIDs(array($this->projectID)) 25 ->executeOne(); 26 27 if (!$project) { 28 return new Aphront404Response(); 29 } 30 $this->setProject($project); 31 32 $column = id(new PhabricatorProjectColumnQuery()) 33 ->setViewer($viewer) 34 ->withIDs(array($this->id)) 35 ->requireCapabilities( 36 array( 37 PhabricatorPolicyCapability::CAN_VIEW, 38 PhabricatorPolicyCapability::CAN_EDIT, 39 )) 40 ->executeOne(); 41 if (!$column) { 42 return new Aphront404Response(); 43 } 44 45 $column_phid = $column->getPHID(); 46 47 $view_uri = $this->getApplicationURI('/board/'.$this->projectID.'/'); 48 $view_uri = new PhutilURI($view_uri); 49 foreach ($request->getPassthroughRequestData() as $key => $value) { 50 $view_uri->setQueryParam($key, $value); 51 } 52 53 if ($column->isDefaultColumn()) { 54 return $this->newDialog() 55 ->setTitle(pht('Can Not Hide Default Column')) 56 ->appendParagraph( 57 pht('You can not hide the default/backlog column on a board.')) 58 ->addCancelButton($view_uri, pht('Okay')); 59 } 60 61 if ($request->isFormPost()) { 62 if ($column->isHidden()) { 63 $new_status = PhabricatorProjectColumn::STATUS_ACTIVE; 64 } else { 65 $new_status = PhabricatorProjectColumn::STATUS_HIDDEN; 66 } 67 68 $type_status = PhabricatorProjectColumnTransaction::TYPE_STATUS; 69 $xactions = array(id(new PhabricatorProjectColumnTransaction()) 70 ->setTransactionType($type_status) 71 ->setNewValue($new_status), 72 ); 73 74 $editor = id(new PhabricatorProjectColumnTransactionEditor()) 75 ->setActor($viewer) 76 ->setContinueOnNoEffect(true) 77 ->setContentSourceFromRequest($request) 78 ->applyTransactions($column, $xactions); 79 80 return id(new AphrontRedirectResponse())->setURI($view_uri); 81 } 82 83 if ($column->isHidden()) { 84 $title = pht('Show Column'); 85 } else { 86 $title = pht('Hide Column'); 87 } 88 89 if ($column->isHidden()) { 90 $body = pht( 91 'Are you sure you want to show this column?'); 92 } else { 93 $body = pht( 94 'Are you sure you want to hide this column? It will no longer '. 95 'appear on the workboard.'); 96 } 97 98 $dialog = $this->newDialog() 99 ->setWidth(AphrontDialogView::WIDTH_FORM) 100 ->setTitle($title) 101 ->appendChild($body) 102 ->setDisableWorkflowOnCancel(true) 103 ->addCancelButton($view_uri) 104 ->addSubmitButton($title); 105 106 foreach ($request->getPassthroughRequestData() as $key => $value) { 107 $dialog->addHiddenInput($key, $value); 108 } 109 110 return $dialog; 111 } 112 }
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 |