Path: blob/master/src/applications/flag/controller/PhabricatorFlagEditController.php
12256 views
<?php12final class PhabricatorFlagEditController extends PhabricatorFlagController {34public function handleRequest(AphrontRequest $request) {5$viewer = $request->getViewer();6$phid = $request->getURIData('phid');78$handle = id(new PhabricatorHandleQuery())9->setViewer($viewer)10->withPHIDs(array($phid))11->executeOne();1213if (!$handle->isComplete()) {14return new Aphront404Response();15}1617$flag = PhabricatorFlagQuery::loadUserFlag($viewer, $phid);1819if (!$flag) {20$flag = new PhabricatorFlag();21$flag->setOwnerPHID($viewer->getPHID());22$flag->setType($handle->getType());23$flag->setObjectPHID($handle->getPHID());24$flag->setReasonPHID($viewer->getPHID());25}2627if ($request->isDialogFormPost()) {28$flag->setColor($request->getInt('color'));29$flag->setNote($request->getStr('note'));30$flag->save();3132return id(new AphrontReloadResponse())->setURI('/flag/');33}3435$type_name = $handle->getTypeName();3637$dialog = new AphrontDialogView();38$dialog->setUser($viewer);3940$dialog->setTitle(pht('Flag %s', $type_name));4142require_celerity_resource('phabricator-flag-css');4344$form = new PHUIFormLayoutView();4546$is_new = !$flag->getID();4748if ($is_new) {49$form50->appendChild(hsprintf(51'<p>%s</p><br />',52pht('You can flag this %s if you want to remember to look '.53'at it later.',54$type_name)));55}5657$radio = new AphrontFormRadioButtonControl();58foreach (PhabricatorFlagColor::getColorNameMap() as $color => $text) {59$class = 'phabricator-flag-radio phabricator-flag-color-'.$color;60$radio->addButton($color, $text, '', $class);61}6263$form64->appendChild(65$radio66->setName('color')67->setLabel(pht('Flag Color'))68->setValue($flag->getColor()))69->appendChild(70id(new AphrontFormTextAreaControl())71->setHeight(AphrontFormTextAreaControl::HEIGHT_VERY_SHORT)72->setName('note')73->setLabel(pht('Note'))74->setValue($flag->getNote()));7576$dialog->appendChild($form);7778$dialog->addCancelButton($handle->getURI());79$dialog->addSubmitButton(80$is_new ? pht('Create Flag') : pht('Save'));8182return id(new AphrontDialogResponse())->setDialog($dialog);83}8485}868788