Differential D20733 Diff 49429 src/applications/phortune/controller/merchant/PhortuneMerchantManagersController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/phortune/controller/merchant/PhortuneMerchantManagersController.php
- This file was moved from src/applications/phortune/controller/merchant/PhortuneMerchantManagerController.php.
<?php | <?php | ||||
final class PhortuneMerchantManagerController | final class PhortuneMerchantManagersController | ||||
extends PhortuneMerchantProfileController { | extends PhortuneMerchantProfileController { | ||||
public function handleRequest(AphrontRequest $request) { | protected function shouldRequireMerchantEditCapability() { | ||||
$viewer = $request->getViewer(); | return false; | ||||
$id = $request->getURIData('id'); | |||||
$merchant = id(new PhortuneMerchantQuery()) | |||||
->setViewer($viewer) | |||||
->withIDs(array($id)) | |||||
->needProfileImage(true) | |||||
->executeOne(); | |||||
if (!$merchant) { | |||||
return new Aphront404Response(); | |||||
} | } | ||||
$this->setMerchant($merchant); | protected function handleMerchantRequest(AphrontRequest $request) { | ||||
$header = $this->buildHeaderView(); | $viewer = $request->getViewer(); | ||||
$merchant = $this->getMerchant(); | |||||
$crumbs = $this->buildApplicationCrumbs(); | $crumbs = $this->buildApplicationCrumbs() | ||||
$crumbs->addTextCrumb(pht('Managers')); | ->addTextCrumb(pht('Managers')) | ||||
->setBorder(true); | |||||
$header = $this->buildHeaderView(); | $header = $this->buildHeaderView(); | ||||
$members = $this->buildMembersSection($merchant); | $members = $this->buildMembersSection($merchant); | ||||
$view = id(new PHUITwoColumnView()) | $view = id(new PHUITwoColumnView()) | ||||
->setHeader($header) | ->setHeader($header) | ||||
->setFooter(array( | ->setFooter( | ||||
array( | |||||
$members, | $members, | ||||
)); | )); | ||||
$navigation = $this->buildSideNavView('managers'); | $navigation = $this->buildSideNavView('managers'); | ||||
return $this->newPage() | return $this->newPage() | ||||
->setTitle(pht('Managers')) | ->setTitle(pht('Managers')) | ||||
->setCrumbs($crumbs) | ->setCrumbs($crumbs) | ||||
->setNavigation($navigation) | ->setNavigation($navigation) | ||||
->appendChild($view); | ->appendChild($view); | ||||
} | } | ||||
private function buildMembersSection(PhortuneMerchant $merchant) { | private function buildMembersSection(PhortuneMerchant $merchant) { | ||||
$viewer = $this->getViewer(); | $viewer = $this->getViewer(); | ||||
$can_edit = PhabricatorPolicyFilter::hasCapability( | $can_edit = PhabricatorPolicyFilter::hasCapability( | ||||
$viewer, | $viewer, | ||||
$merchant, | $merchant, | ||||
PhabricatorPolicyCapability::CAN_EDIT); | PhabricatorPolicyCapability::CAN_EDIT); | ||||
$id = $merchant->getID(); | $id = $merchant->getID(); | ||||
$add_uri = urisprintf( | |||||
'merchant/%d/managers/new/', | |||||
$merchant->getID()); | |||||
$add_uri = $this->getApplicationURI($add_uri); | |||||
$add = id(new PHUIButtonView()) | $add = id(new PHUIButtonView()) | ||||
->setTag('a') | ->setTag('a') | ||||
->setText(pht('New Manager')) | ->setText(pht('New Manager')) | ||||
->setIcon('fa-plus') | ->setIcon('fa-plus') | ||||
->setWorkflow(true) | ->setWorkflow(true) | ||||
->setHref("/phortune/merchant/manager/add/{$id}/"); | ->setDisabled(!$can_edit) | ||||
->setHref($add_uri); | |||||
$header = id(new PHUIHeaderView()) | $header = id(new PHUIHeaderView()) | ||||
->setHeader(pht('Merchant Account Managers')) | ->setHeader(pht('Merchant Account Managers')) | ||||
->addActionLink($add); | ->addActionLink($add); | ||||
$list = id(new PHUIObjectItemListView()) | $list = id(new PHUIObjectItemListView()) | ||||
->setUser($viewer); | ->setUser($viewer); | ||||
Show All 24 Lines |