Path: blob/master/src/applications/diffusion/management/DiffusionRepositoryAutomationManagementPanel.php
13395 views
<?php12final class DiffusionRepositoryAutomationManagementPanel3extends DiffusionRepositoryManagementPanel {45const PANELKEY = 'automation';67public function getManagementPanelLabel() {8return pht('Automation');9}1011public function getManagementPanelOrder() {12return 800;13}1415public function getManagementPanelGroupKey() {16return DiffusionRepositoryManagementBuildsPanelGroup::PANELGROUPKEY;17}1819public function shouldEnableForRepository(20PhabricatorRepository $repository) {21return $repository->isGit();22}2324protected function getEditEngineFieldKeys() {25return array(26'automationBlueprintPHIDs',27);28}2930public function getManagementPanelIcon() {31$repository = $this->getRepository();3233if (!$repository->canPerformAutomation()) {34return 'fa-truck grey';35}3637$blueprint_phids = $repository->getAutomationBlueprintPHIDs();38if (!$blueprint_phids) {39return 'fa-truck grey';40}4142$is_authorized = DrydockAuthorizationQuery::isFullyAuthorized(43$repository->getPHID(),44$blueprint_phids);45if (!$is_authorized) {46return 'fa-exclamation-triangle yellow';47}4849return 'fa-truck';50}5152public function buildManagementPanelCurtain() {53$repository = $this->getRepository();54$viewer = $this->getViewer();55$action_list = $this->newActionList();5657$can_edit = PhabricatorPolicyFilter::hasCapability(58$viewer,59$repository,60PhabricatorPolicyCapability::CAN_EDIT);6162$can_test = $can_edit && $repository->canPerformAutomation();6364$automation_uri = $this->getEditPageURI();65$test_uri = $repository->getPathURI('edit/testautomation/');6667$action_list->addAction(68id(new PhabricatorActionView())69->setIcon('fa-pencil')70->setName(pht('Edit Automation'))71->setHref($automation_uri)72->setDisabled(!$can_edit)73->setWorkflow(!$can_edit));7475$action_list->addAction(76id(new PhabricatorActionView())77->setIcon('fa-gamepad')78->setName(pht('Test Configuration'))79->setWorkflow(true)80->setDisabled(!$can_test)81->setHref($test_uri));8283return $this->newCurtainView()84->setActionList($action_list);85}8687public function buildManagementPanelContent() {88$repository = $this->getRepository();89$viewer = $this->getViewer();9091$view = id(new PHUIPropertyListView())92->setViewer($viewer);9394$blueprint_phids = $repository->getAutomationBlueprintPHIDs();95if (!$blueprint_phids) {96$blueprint_view = phutil_tag('em', array(), pht('Not Configured'));97} else {98$blueprint_view = id(new DrydockObjectAuthorizationView())99->setUser($viewer)100->setObjectPHID($repository->getPHID())101->setBlueprintPHIDs($blueprint_phids);102}103104$view->addProperty(pht('Automation'), $blueprint_view);105106return $this->newBox(pht('Automation'), $view);107}108109}110111112