Differential D19826 Diff 47381 src/applications/diffusion/management/DiffusionRepositoryAutomationManagementPanel.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/diffusion/management/DiffusionRepositoryAutomationManagementPanel.php
Show All 21 Lines | protected function getEditEngineFieldKeys() { | ||||
return array( | return array( | ||||
'automationBlueprintPHIDs', | 'automationBlueprintPHIDs', | ||||
); | ); | ||||
} | } | ||||
public function getManagementPanelIcon() { | public function getManagementPanelIcon() { | ||||
$repository = $this->getRepository(); | $repository = $this->getRepository(); | ||||
if (!$repository->canPerformAutomation()) { | |||||
return 'fa-truck grey'; | |||||
} | |||||
$blueprint_phids = $repository->getAutomationBlueprintPHIDs(); | $blueprint_phids = $repository->getAutomationBlueprintPHIDs(); | ||||
if (!$blueprint_phids) { | |||||
return 'fa-truck grey'; | |||||
} | |||||
$is_authorized = DrydockAuthorizationQuery::isFullyAuthorized( | $is_authorized = DrydockAuthorizationQuery::isFullyAuthorized( | ||||
$repository->getPHID(), | $repository->getPHID(), | ||||
$blueprint_phids); | $blueprint_phids); | ||||
if (!$is_authorized) { | if (!$is_authorized) { | ||||
return 'fa-exclamation-triangle'; | return 'fa-exclamation-triangle yellow'; | ||||
} | } | ||||
return 'fa-truck'; | return 'fa-truck'; | ||||
} | } | ||||
public function buildManagementPanelContent() { | public function buildManagementPanelCurtain() { | ||||
$repository = $this->getRepository(); | $repository = $this->getRepository(); | ||||
$viewer = $this->getViewer(); | $viewer = $this->getViewer(); | ||||
$action_list = $this->newActionList(); | |||||
$view = id(new PHUIPropertyListView()) | |||||
->setViewer($viewer); | |||||
$blueprint_phids = $repository->getAutomationBlueprintPHIDs(); | |||||
if (!$blueprint_phids) { | |||||
$blueprint_view = phutil_tag('em', array(), pht('Not Configured')); | |||||
} else { | |||||
$blueprint_view = id(new DrydockObjectAuthorizationView()) | |||||
->setUser($viewer) | |||||
->setObjectPHID($repository->getPHID()) | |||||
->setBlueprintPHIDs($blueprint_phids); | |||||
} | |||||
$view->addProperty(pht('Automation'), $blueprint_view); | |||||
$can_edit = PhabricatorPolicyFilter::hasCapability( | $can_edit = PhabricatorPolicyFilter::hasCapability( | ||||
$viewer, | $viewer, | ||||
$repository, | $repository, | ||||
PhabricatorPolicyCapability::CAN_EDIT); | PhabricatorPolicyCapability::CAN_EDIT); | ||||
$can_test = $can_edit && $repository->canPerformAutomation(); | $can_test = $can_edit && $repository->canPerformAutomation(); | ||||
$automation_uri = $this->getEditPageURI(); | $automation_uri = $this->getEditPageURI(); | ||||
$test_uri = $repository->getPathURI('edit/testautomation/'); | $test_uri = $repository->getPathURI('edit/testautomation/'); | ||||
$edit = id(new PHUIButtonView()) | $action_list->addAction( | ||||
->setTag('a') | id(new PhabricatorActionView()) | ||||
->setIcon('fa-pencil') | ->setIcon('fa-pencil') | ||||
->setText(pht('Edit')) | ->setName(pht('Edit Automation')) | ||||
->setHref($automation_uri) | ->setHref($automation_uri) | ||||
->setDisabled(!$can_edit) | ->setDisabled(!$can_edit) | ||||
->setWorkflow(!$can_edit); | ->setWorkflow(!$can_edit)); | ||||
$test = id(new PHUIButtonView()) | $action_list->addAction( | ||||
->setTag('a') | id(new PhabricatorActionView()) | ||||
->setIcon('fa-gamepad') | ->setIcon('fa-gamepad') | ||||
->setText(pht('Test Config')) | ->setName(pht('Test Configuration')) | ||||
->setWorkflow(true) | ->setWorkflow(true) | ||||
->setDisabled(!$can_test) | ->setDisabled(!$can_test) | ||||
->setHref($test_uri); | ->setHref($test_uri)); | ||||
return $this->newCurtainView() | |||||
->setActionList($action_list); | |||||
} | |||||
public function buildManagementPanelContent() { | |||||
$repository = $this->getRepository(); | |||||
$viewer = $this->getViewer(); | |||||
$view = id(new PHUIPropertyListView()) | |||||
->setViewer($viewer); | |||||
$blueprint_phids = $repository->getAutomationBlueprintPHIDs(); | |||||
if (!$blueprint_phids) { | |||||
$blueprint_view = phutil_tag('em', array(), pht('Not Configured')); | |||||
} else { | |||||
$blueprint_view = id(new DrydockObjectAuthorizationView()) | |||||
->setUser($viewer) | |||||
->setObjectPHID($repository->getPHID()) | |||||
->setBlueprintPHIDs($blueprint_phids); | |||||
} | |||||
$view->addProperty(pht('Automation'), $blueprint_view); | |||||
return $this->newBox(pht('Automation'), $view, array($edit, $test)); | return $this->newBox(pht('Automation'), $view); | ||||
} | } | ||||
} | } |