[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class PhabricatorFlagEditController extends PhabricatorFlagController { 4 5 private $phid; 6 7 public function willProcessRequest(array $data) { 8 $this->phid = $data['phid']; 9 } 10 11 public function processRequest() { 12 $request = $this->getRequest(); 13 $user = $request->getUser(); 14 15 $phid = $this->phid; 16 $handle = id(new PhabricatorHandleQuery()) 17 ->setViewer($user) 18 ->withPHIDs(array($phid)) 19 ->executeOne(); 20 21 if (!$handle->isComplete()) { 22 return new Aphront404Response(); 23 } 24 25 $flag = PhabricatorFlagQuery::loadUserFlag($user, $phid); 26 27 if (!$flag) { 28 $flag = new PhabricatorFlag(); 29 $flag->setOwnerPHID($user->getPHID()); 30 $flag->setType($handle->getType()); 31 $flag->setObjectPHID($handle->getPHID()); 32 $flag->setReasonPHID($user->getPHID()); 33 } 34 35 if ($request->isDialogFormPost()) { 36 $flag->setColor($request->getInt('color')); 37 $flag->setNote($request->getStr('note')); 38 $flag->save(); 39 40 return id(new AphrontReloadResponse())->setURI('/flag/'); 41 } 42 43 $type_name = $handle->getTypeName(); 44 45 $dialog = new AphrontDialogView(); 46 $dialog->setUser($user); 47 48 $dialog->setTitle(pht('Flag %s', $type_name)); 49 50 require_celerity_resource('phabricator-flag-css'); 51 52 $form = new PHUIFormLayoutView(); 53 54 $is_new = !$flag->getID(); 55 56 if ($is_new) { 57 $form 58 ->appendChild(hsprintf( 59 '<p>%s</p><br />', 60 pht('You can flag this %s if you want to remember to look '. 61 'at it later.', 62 $type_name))); 63 } 64 65 $radio = new AphrontFormRadioButtonControl(); 66 foreach (PhabricatorFlagColor::getColorNameMap() as $color => $text) { 67 $class = 'phabricator-flag-radio phabricator-flag-color-'.$color; 68 $radio->addButton($color, $text, '', $class); 69 } 70 71 $form 72 ->appendChild( 73 $radio 74 ->setName('color') 75 ->setLabel(pht('Flag Color')) 76 ->setValue($flag->getColor())) 77 ->appendChild( 78 id(new AphrontFormTextAreaControl()) 79 ->setHeight(AphrontFormTextAreaControl::HEIGHT_VERY_SHORT) 80 ->setName('note') 81 ->setLabel(pht('Note')) 82 ->setValue($flag->getNote())); 83 84 $dialog->appendChild($form); 85 86 $dialog->addCancelButton($handle->getURI()); 87 $dialog->addSubmitButton( 88 $is_new ? pht('Create Flag') : pht('Save')); 89 90 return id(new AphrontDialogResponse())->setDialog($dialog); 91 } 92 93 }
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 |