@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.

Port "Automation" panel to new Repository Manage UI

Summary: Ref T10748. Ports this UI and exposes it on the EditEngine.

Test Plan:
- Edited via EditEngine.
- Viewed new manage UI.

Reviewers: chad

Reviewed By: chad

Subscribers: hach-que

Maniphest Tasks: T10748

Differential Revision: https://secure.phabricator.com/D15804

+82
+2
src/__phutil_library_map__.php
··· 743 743 'DiffusionRefTableController' => 'applications/diffusion/controller/DiffusionRefTableController.php', 744 744 'DiffusionRefsQueryConduitAPIMethod' => 'applications/diffusion/conduit/DiffusionRefsQueryConduitAPIMethod.php', 745 745 'DiffusionRenameHistoryQuery' => 'applications/diffusion/query/DiffusionRenameHistoryQuery.php', 746 + 'DiffusionRepositoryAutomationManagementPanel' => 'applications/diffusion/management/DiffusionRepositoryAutomationManagementPanel.php', 746 747 'DiffusionRepositoryBasicsManagementPanel' => 'applications/diffusion/management/DiffusionRepositoryBasicsManagementPanel.php', 747 748 'DiffusionRepositoryByIDRemarkupRule' => 'applications/diffusion/remarkup/DiffusionRepositoryByIDRemarkupRule.php', 748 749 'DiffusionRepositoryClusterEngine' => 'applications/diffusion/protocol/DiffusionRepositoryClusterEngine.php', ··· 4959 4960 'DiffusionRefTableController' => 'DiffusionController', 4960 4961 'DiffusionRefsQueryConduitAPIMethod' => 'DiffusionQueryConduitAPIMethod', 4961 4962 'DiffusionRenameHistoryQuery' => 'Phobject', 4963 + 'DiffusionRepositoryAutomationManagementPanel' => 'DiffusionRepositoryManagementPanel', 4962 4964 'DiffusionRepositoryBasicsManagementPanel' => 'DiffusionRepositoryManagementPanel', 4963 4965 'DiffusionRepositoryByIDRemarkupRule' => 'PhabricatorObjectRemarkupRule', 4964 4966 'DiffusionRepositoryClusterEngine' => 'Phobject',
+11
src/applications/diffusion/editor/DiffusionRepositoryEditEngine.php
··· 162 162 ->setConduitDescription(pht('Set the staging area URI.')) 163 163 ->setConduitTypeDescription(pht('New staging area URI.')) 164 164 ->setValue($object->getStagingURI()), 165 + id(new PhabricatorDatasourceEditField()) 166 + ->setKey('automationBlueprintPHIDs') 167 + ->setLabel(pht('Use Blueprints')) 168 + ->setTransactionType( 169 + PhabricatorRepositoryTransaction::TYPE_AUTOMATION_BLUEPRINTS) 170 + ->setIsCopyable(true) 171 + ->setDatasource(new DrydockBlueprintDatasource()) 172 + ->setDescription(pht('Automation blueprints.')) 173 + ->setConduitDescription(pht('Change automation blueprints.')) 174 + ->setConduitTypeDescription(pht('New blueprint PHIDs.')) 175 + ->setValue($object->getAutomationBlueprintPHIDs()), 165 176 id(new PhabricatorPolicyEditField()) 166 177 ->setKey('policy.push') 167 178 ->setLabel(pht('Push Policy'))
+69
src/applications/diffusion/management/DiffusionRepositoryAutomationManagementPanel.php
··· 1 + <?php 2 + 3 + final class DiffusionRepositoryAutomationManagementPanel 4 + extends DiffusionRepositoryManagementPanel { 5 + 6 + const PANELKEY = 'automation'; 7 + 8 + public function getManagementPanelLabel() { 9 + return pht('Automation'); 10 + } 11 + 12 + public function getManagementPanelOrder() { 13 + return 800; 14 + } 15 + 16 + protected function buildManagementPanelActions() { 17 + $repository = $this->getRepository(); 18 + $viewer = $this->getViewer(); 19 + 20 + $can_edit = PhabricatorPolicyFilter::hasCapability( 21 + $viewer, 22 + $repository, 23 + PhabricatorPolicyCapability::CAN_EDIT); 24 + 25 + $can_test = $can_edit && $repository->canPerformAutomation(); 26 + 27 + $automation_uri = $repository->getPathURI('edit/automation/'); 28 + $test_uri = $repository->getPathURI('edit/testautomation/'); 29 + 30 + return array( 31 + id(new PhabricatorActionView()) 32 + ->setIcon('fa-pencil') 33 + ->setName(pht('Edit Automation')) 34 + ->setHref($automation_uri) 35 + ->setDisabled(!$can_edit) 36 + ->setWorkflow(!$can_edit), 37 + id(new PhabricatorActionView()) 38 + ->setIcon('fa-gamepad') 39 + ->setName(pht('Test Configuration')) 40 + ->setWorkflow(true) 41 + ->setDisabled(!$can_test) 42 + ->setHref($test_uri), 43 + ); 44 + } 45 + 46 + public function buildManagementPanelContent() { 47 + $repository = $this->getRepository(); 48 + $viewer = $this->getViewer(); 49 + 50 + $view = id(new PHUIPropertyListView()) 51 + ->setViewer($viewer) 52 + ->setActionList($this->newActions()); 53 + 54 + $blueprint_phids = $repository->getAutomationBlueprintPHIDs(); 55 + if (!$blueprint_phids) { 56 + $blueprint_view = phutil_tag('em', array(), pht('Not Configured')); 57 + } else { 58 + $blueprint_view = id(new DrydockObjectAuthorizationView()) 59 + ->setUser($viewer) 60 + ->setObjectPHID($repository->getPHID()) 61 + ->setBlueprintPHIDs($blueprint_phids); 62 + } 63 + 64 + $view->addProperty(pht('Automation'), $blueprint_view); 65 + 66 + return $this->newBox(pht('Automation'), $view); 67 + } 68 + 69 + }