3 final class PhabricatorBadgesEditRecipientsController
4 extends PhabricatorBadgesController
{
6 public function handleRequest(AphrontRequest
$request) {
7 $viewer = $request->getViewer();
8 $id = $request->getURIData('id');
11 $badge = id(new PhabricatorBadgesQuery())
14 ->requireCapabilities(
16 PhabricatorPolicyCapability
::CAN_EDIT
,
17 PhabricatorPolicyCapability
::CAN_VIEW
,
21 return new Aphront404Response();
24 $view_uri = $this->getApplicationURI('recipients/'.$badge->getID().'/');
26 if ($request->isFormPost()) {
27 $award_phids = array();
29 $add_recipients = $request->getArr('phids');
30 if ($add_recipients) {
31 foreach ($add_recipients as $phid) {
32 $award_phids[] = $phid;
36 $xactions[] = id(new PhabricatorBadgesTransaction())
38 PhabricatorBadgesBadgeAwardTransaction
::TRANSACTIONTYPE
)
39 ->setNewValue($award_phids);
41 $editor = id(new PhabricatorBadgesEditor())
43 ->setContentSourceFromRequest($request)
44 ->setContinueOnNoEffect(true)
45 ->setContinueOnMissingFields(true)
46 ->applyTransactions($badge, $xactions);
48 return id(new AphrontRedirectResponse())
52 $can_edit = PhabricatorPolicyFilter
::hasCapability(
55 PhabricatorPolicyCapability
::CAN_EDIT
);
58 $title = pht('Add Recipient');
60 $header_name = pht('Edit Recipients');
62 $form = new AphrontFormView();
67 id(new AphrontFormTokenizerControl())
69 ->setLabel(pht('Recipients'))
70 ->setDatasource(new PhabricatorPeopleDatasource()));
73 $dialog = id(new AphrontDialogView())
75 ->setTitle(pht('Add Recipients'))
77 ->addCancelButton($view_uri)
78 ->addSubmitButton(pht('Add Recipients'));