@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 "Staging Area" repository section to new management UI

Summary: Ref T10748. Brings this over and adds EditEngine support for it.

Test Plan: Viewed and edited staging area information.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T10748

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

+67
+2
src/__phutil_library_map__.php
··· 779 779 'DiffusionRepositoryRef' => 'applications/diffusion/data/DiffusionRepositoryRef.php', 780 780 'DiffusionRepositoryRemarkupRule' => 'applications/diffusion/remarkup/DiffusionRepositoryRemarkupRule.php', 781 781 'DiffusionRepositorySearchConduitAPIMethod' => 'applications/diffusion/conduit/DiffusionRepositorySearchConduitAPIMethod.php', 782 + 'DiffusionRepositoryStagingManagementPanel' => 'applications/diffusion/management/DiffusionRepositoryStagingManagementPanel.php', 782 783 'DiffusionRepositoryStatusManagementPanel' => 'applications/diffusion/management/DiffusionRepositoryStatusManagementPanel.php', 783 784 'DiffusionRepositoryStorageManagementPanel' => 'applications/diffusion/management/DiffusionRepositoryStorageManagementPanel.php', 784 785 'DiffusionRepositorySymbolsController' => 'applications/diffusion/controller/DiffusionRepositorySymbolsController.php', ··· 4991 4992 'DiffusionRepositoryRef' => 'Phobject', 4992 4993 'DiffusionRepositoryRemarkupRule' => 'PhabricatorObjectRemarkupRule', 4993 4994 'DiffusionRepositorySearchConduitAPIMethod' => 'PhabricatorSearchEngineAPIMethod', 4995 + 'DiffusionRepositoryStagingManagementPanel' => 'DiffusionRepositoryManagementPanel', 4994 4996 'DiffusionRepositoryStatusManagementPanel' => 'DiffusionRepositoryManagementPanel', 4995 4997 'DiffusionRepositoryStorageManagementPanel' => 'DiffusionRepositoryManagementPanel', 4996 4998 'DiffusionRepositorySymbolsController' => 'DiffusionRepositoryEditController',
+10
src/applications/diffusion/editor/DiffusionRepositoryEditEngine.php
··· 152 152 ->setConduitDescription(pht('Set the default branch name.')) 153 153 ->setConduitTypeDescription(pht('New default branch name.')) 154 154 ->setValue($object->getDetail('default-branch')), 155 + id(new PhabricatorTextEditField()) 156 + ->setKey('stagingAreaURI') 157 + ->setLabel(pht('Staging Area URI')) 158 + ->setTransactionType( 159 + PhabricatorRepositoryTransaction::TYPE_STAGING_URI) 160 + ->setIsCopyable(true) 161 + ->setDescription(pht('Staging area URI.')) 162 + ->setConduitDescription(pht('Set the staging area URI.')) 163 + ->setConduitTypeDescription(pht('New staging area URI.')) 164 + ->setValue($object->getStagingURI()), 155 165 id(new PhabricatorPolicyEditField()) 156 166 ->setKey('policy.push') 157 167 ->setLabel(pht('Push Policy'))
+55
src/applications/diffusion/management/DiffusionRepositoryStagingManagementPanel.php
··· 1 + <?php 2 + 3 + final class DiffusionRepositoryStagingManagementPanel 4 + extends DiffusionRepositoryManagementPanel { 5 + 6 + const PANELKEY = 'staging'; 7 + 8 + public function getManagementPanelLabel() { 9 + return pht('Staging Area'); 10 + } 11 + 12 + public function getManagementPanelOrder() { 13 + return 700; 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 + $staging_uri = $repository->getPathURI('edit/staging/'); 26 + 27 + return array( 28 + id(new PhabricatorActionView()) 29 + ->setIcon('fa-pencil') 30 + ->setName(pht('Edit Staging')) 31 + ->setHref($staging_uri) 32 + ->setDisabled(!$can_edit) 33 + ->setWorkflow(!$can_edit), 34 + ); 35 + } 36 + 37 + public function buildManagementPanelContent() { 38 + $repository = $this->getRepository(); 39 + $viewer = $this->getViewer(); 40 + 41 + $view = id(new PHUIPropertyListView()) 42 + ->setViewer($viewer) 43 + ->setActionList($this->newActions()); 44 + 45 + $staging_uri = $repository->getStagingURI(); 46 + if (!$staging_uri) { 47 + $staging_uri = phutil_tag('em', array(), pht('No Staging Area')); 48 + } 49 + 50 + $view->addProperty(pht('Staging Area URI'), $staging_uri); 51 + 52 + return $this->newBox(pht('Staging Area'), $view); 53 + } 54 + 55 + }