@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 recaptime-dev/main 92 lines 2.5 kB view raw
1<?php 2 3final class PhortuneAccountEmailAddressesController 4 extends PhortuneAccountProfileController { 5 6 protected function shouldRequireAccountEditCapability() { 7 return true; 8 } 9 10 protected function handleAccountRequest(AphrontRequest $request) { 11 $account = $this->getAccount(); 12 $title = $account->getName(); 13 14 $crumbs = $this->buildApplicationCrumbs() 15 ->addTextCrumb(pht('Email Addresses')) 16 ->setBorder(true); 17 18 $header = $this->buildHeaderView(); 19 $authority = $this->newAccountAuthorityView(); 20 $addresses = $this->buildAddressesSection($account); 21 22 $view = id(new PHUITwoColumnView()) 23 ->setHeader($header) 24 ->setFooter( 25 array( 26 $authority, 27 $addresses, 28 )); 29 30 $navigation = $this->buildSideNavView('addresses'); 31 32 return $this->newPage() 33 ->setTitle($title) 34 ->setCrumbs($crumbs) 35 ->setNavigation($navigation) 36 ->appendChild($view); 37 } 38 39 private function buildAddressesSection(PhortuneAccount $account) { 40 $viewer = $this->getViewer(); 41 42 $can_edit = PhabricatorPolicyFilter::hasCapability( 43 $viewer, 44 $account, 45 PhabricatorPolicyCapability::CAN_EDIT); 46 47 $id = $account->getID(); 48 49 $add = id(new PHUIButtonView()) 50 ->setTag('a') 51 ->setText(pht('Add Address')) 52 ->setIcon('fa-plus') 53 ->setWorkflow(!$can_edit) 54 ->setDisabled(!$can_edit) 55 ->setHref("/phortune/account/{$id}/addresses/edit/"); 56 57 $header = id(new PHUIHeaderView()) 58 ->setHeader(pht('Billing Email Addresses')) 59 ->addActionLink($add); 60 61 $addresses = id(new PhortuneAccountEmailQuery()) 62 ->setViewer($viewer) 63 ->withAccountPHIDs(array($account->getPHID())) 64 ->execute(); 65 66 $list = id(new PHUIObjectItemListView()) 67 ->setUser($viewer) 68 ->setNoDataString( 69 pht( 70 'There are no billing email addresses associated '. 71 'with this account.')); 72 73 $addresses = id(new PhortuneAccountEmailQuery()) 74 ->setViewer($viewer) 75 ->withAccountPHIDs(array($account->getPHID())) 76 ->execute(); 77 foreach ($addresses as $address) { 78 $item = id(new PHUIObjectItemView()) 79 ->setObjectName($address->getObjectName()) 80 ->setHeader($address->getAddress()) 81 ->setHref($address->getURI()); 82 83 $list->addItem($item); 84 } 85 86 return id(new PHUIObjectBoxView()) 87 ->setHeader($header) 88 ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) 89 ->setObjectList($list); 90 } 91 92}