@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
at recaptime-dev/main 100 lines 2.9 kB view raw
1<?php 2 3final class PhortunePaymentMethodEditController 4 extends PhortuneController { 5 6 public function handleRequest(AphrontRequest $request) { 7 $viewer = $request->getViewer(); 8 $method_id = $request->getURIData('id'); 9 10 $method = id(new PhortunePaymentMethodQuery()) 11 ->setViewer($viewer) 12 ->withIDs(array($method_id)) 13 ->requireCapabilities( 14 array( 15 PhabricatorPolicyCapability::CAN_VIEW, 16 PhabricatorPolicyCapability::CAN_EDIT, 17 )) 18 ->executeOne(); 19 if (!$method) { 20 return new Aphront404Response(); 21 } 22 23 $next_uri = $method->getURI(); 24 25 $account = $method->getAccount(); 26 $v_name = $method->getName(); 27 28 if ($request->isFormPost()) { 29 $v_name = $request->getStr('name'); 30 31 $xactions = array(); 32 33 $xactions[] = $method->getApplicationTransactionTemplate() 34 ->setTransactionType( 35 PhortunePaymentMethodNameTransaction::TRANSACTIONTYPE) 36 ->setNewValue($v_name); 37 38 $editor = id(new PhortunePaymentMethodEditor()) 39 ->setActor($viewer) 40 ->setContentSourceFromRequest($request) 41 ->setContinueOnNoEffect(true) 42 ->setContinueOnMissingFields(true); 43 44 $editor->applyTransactions($method, $xactions); 45 46 return id(new AphrontRedirectResponse())->setURI($next_uri); 47 } 48 49 $provider = $method->buildPaymentProvider(); 50 51 $form = id(new AphrontFormView()) 52 ->setViewer($viewer) 53 ->appendChild( 54 id(new AphrontFormTextControl()) 55 ->setLabel(pht('Name')) 56 ->setName('name') 57 ->setValue($method->getName())) 58 ->appendChild( 59 id(new AphrontFormStaticControl()) 60 ->setLabel(pht('Details')) 61 ->setValue($method->getSummary())) 62 ->appendChild( 63 id(new AphrontFormStaticControl()) 64 ->setLabel(pht('Expires')) 65 ->setValue($method->getDisplayExpires())) 66 ->appendChild( 67 id(new AphrontFormSubmitControl()) 68 ->addCancelButton($next_uri) 69 ->setValue(pht('Save Changes'))); 70 71 $box = id(new PHUIObjectBoxView()) 72 ->setHeaderText(pht('Payment Method')) 73 ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) 74 ->setForm($form); 75 76 $crumbs = $this->buildApplicationCrumbs() 77 ->addTextCrumb($account->getName(), $account->getURI()) 78 ->addTextCrumb(pht('Payment Methods'), $account->getPaymentMethodsURI()) 79 ->addTextCrumb($method->getObjectName(), $method->getURI()) 80 ->addTextCrumb(pht('Edit')) 81 ->setBorder(true); 82 83 $header = id(new PHUIHeaderView()) 84 ->setHeader(pht('Edit Payment Method')) 85 ->setHeaderIcon('fa-pencil'); 86 87 $view = id(new PHUITwoColumnView()) 88 ->setHeader($header) 89 ->setFooter( 90 array( 91 $box, 92 )); 93 94 return $this->newPage() 95 ->setTitle(pht('Edit Payment Method')) 96 ->setCrumbs($crumbs) 97 ->appendChild($view); 98 } 99 100}