Differential D18523 Diff 44527 src/applications/diffusion/management/DiffusionRepositoryStagingManagementPanel.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/diffusion/management/DiffusionRepositoryStagingManagementPanel.php
Show All 14 Lines | final class DiffusionRepositoryStagingManagementPanel | ||||
public function shouldEnableForRepository( | public function shouldEnableForRepository( | ||||
PhabricatorRepository $repository) { | PhabricatorRepository $repository) { | ||||
return $repository->isGit(); | return $repository->isGit(); | ||||
} | } | ||||
public function getManagementPanelIcon() { | public function getManagementPanelIcon() { | ||||
$repository = $this->getRepository(); | |||||
$staging_uri = $repository->getStagingURI(); | |||||
if ($staging_uri) { | |||||
return 'fa-upload'; | return 'fa-upload'; | ||||
} else { | |||||
return 'fa-upload grey'; | |||||
} | |||||
} | } | ||||
protected function getEditEngineFieldKeys() { | protected function getEditEngineFieldKeys() { | ||||
return array( | return array( | ||||
'stagingAreaURI', | 'stagingAreaURI', | ||||
); | ); | ||||
} | } | ||||
public function buildManagementPanelCurtain() { | |||||
$repository = $this->getRepository(); | |||||
$viewer = $this->getViewer(); | |||||
$action_list = $this->getNewActionList(); | |||||
$can_edit = PhabricatorPolicyFilter::hasCapability( | |||||
$viewer, | |||||
$repository, | |||||
PhabricatorPolicyCapability::CAN_EDIT); | |||||
$staging_uri = $this->getEditPageURI(); | |||||
$action_list->addAction( | |||||
id(new PhabricatorActionView()) | |||||
->setIcon('fa-pencil') | |||||
->setName(pht('Edit Staging')) | |||||
->setHref($staging_uri) | |||||
->setDisabled(!$can_edit) | |||||
->setWorkflow(!$can_edit)); | |||||
return $this->getNewCurtainView($action_list); | |||||
} | |||||
public function buildManagementPanelContent() { | public function buildManagementPanelContent() { | ||||
$repository = $this->getRepository(); | $repository = $this->getRepository(); | ||||
$viewer = $this->getViewer(); | $viewer = $this->getViewer(); | ||||
$view = id(new PHUIPropertyListView()) | $view = id(new PHUIPropertyListView()) | ||||
->setViewer($viewer); | ->setViewer($viewer); | ||||
$staging_uri = $repository->getStagingURI(); | $staging_uri = $repository->getStagingURI(); | ||||
if (!$staging_uri) { | if (!$staging_uri) { | ||||
$staging_uri = phutil_tag('em', array(), pht('No Staging Area')); | $staging_uri = phutil_tag('em', array(), pht('No Staging Area')); | ||||
} | } | ||||
$view->addProperty(pht('Staging Area URI'), $staging_uri); | $view->addProperty(pht('Staging Area URI'), $staging_uri); | ||||
return $this->newBox(pht('Staging Area'), $view); | $can_edit = PhabricatorPolicyFilter::hasCapability( | ||||
$viewer, | |||||
$repository, | |||||
PhabricatorPolicyCapability::CAN_EDIT); | |||||
$staging_uri = $this->getEditPageURI(); | |||||
$button = id(new PHUIButtonView()) | |||||
->setTag('a') | |||||
->setIcon('fa-pencil') | |||||
->setText(pht('Edit')) | |||||
->setHref($staging_uri) | |||||
->setDisabled(!$can_edit) | |||||
->setWorkflow(!$can_edit); | |||||
return $this->newBox(pht('Staging Area'), $view, array($button)); | |||||
} | } | ||||
} | } |