@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at upstream/main 80 lines 2.3 kB view raw
1<?php 2 3final class PhabricatorBadgesEditRecipientsController 4 extends PhabricatorBadgesController { 5 6 public function handleRequest(AphrontRequest $request) { 7 $viewer = $request->getViewer(); 8 $id = $request->getURIData('id'); 9 $xactions = array(); 10 $errors = array(); 11 $e_recipient = true; 12 13 $badge = id(new PhabricatorBadgesQuery()) 14 ->setViewer($viewer) 15 ->withIDs(array($id)) 16 ->requireCapabilities( 17 array( 18 PhabricatorPolicyCapability::CAN_EDIT, 19 PhabricatorPolicyCapability::CAN_VIEW, 20 )) 21 ->executeOne(); 22 if (!$badge) { 23 return new Aphront404Response(); 24 } 25 26 $view_uri = $this->getApplicationURI('recipients/'.$badge->getID().'/'); 27 28 if ($request->isFormPost()) { 29 $award_phids = array(); 30 31 $add_recipients = $request->getArr('phids'); 32 if ($add_recipients) { 33 foreach ($add_recipients as $phid) { 34 $award_phids[$phid] = $phid; 35 } 36 } else { 37 $errors[] = pht('Recipient name is required.'); 38 $e_recipient = pht('Required'); 39 } 40 41 if (!$errors) { 42 $xactions[] = id(new PhabricatorBadgesTransaction()) 43 ->setTransactionType( 44 PhabricatorBadgesBadgeAwardTransaction::TRANSACTIONTYPE) 45 ->setNewValue($award_phids); 46 47 $editor = id(new PhabricatorBadgesEditor()) 48 ->setActor($viewer) 49 ->setContentSourceFromRequest($request) 50 ->setContinueOnNoEffect(true) 51 ->setContinueOnMissingFields(true) 52 ->applyTransactions($badge, $xactions); 53 54 return id(new AphrontRedirectResponse()) 55 ->setURI($view_uri); 56 } 57 } 58 59 $form = new AphrontFormView(); 60 $form 61 ->setUser($viewer) 62 ->setFullWidth(true) 63 ->appendControl( 64 id(new AphrontFormTokenizerControl()) 65 ->setName('phids') 66 ->setLabel(pht('Recipients')) 67 ->setError($e_recipient) 68 ->setDatasource(new PhabricatorPeopleDatasource())); 69 70 $dialog = id(new AphrontDialogView()) 71 ->setUser($viewer) 72 ->setTitle(pht('Add Recipients')) 73 ->appendForm($form) 74 ->addCancelButton($view_uri) 75 ->addSubmitButton(pht('Add Recipients')); 76 77 return $dialog; 78 } 79 80}